Ответ 1
В случае ZLib, FindZLIB.cmake предоставляется с CMake, и вы можете "просто" поместить вызов find_package в ваши cmakelists. При необходимости вы можете внести некоторые изменения в findzlib.cmake в соответствии с вашими потребностями. Например. добавление ZLIB_DIR в качестве дополнительного подсказки при поиске библиотеки. Этот ZLIB_DIR может быть установлен пользователем.
Предполагая, что ваша библиотека/исполняемый файл называется YourProject, вы можете использовать его следующим образом.
find_package( ZLIB REQUIRED )
if ( ZLIB_FOUND )
include_directories( ${ZLIB_INCLUDE_DIRS} )
target_link_libraries( YourProject ${ZLIB_LIBRARIES} )
endif( ZLIB_FOUND )
Вы должны использовать тот же подход для TagLib, но вместо этого должны написать свой собственный FindTagLib.cmake(или найти хороший).
Важная часть здесь заключается в том, что вы даете пользователю возможность установить переменную TagLib_DIR, которую вы используете для поиска TagLib, и что вы используете FindPackageHandleStandardArgs, чтобы сообщить об успехе или неудаче.