project(QuaZip_Library VERSION ${QUAZIP_LIB_VERSION}) include(GNUInstallDirs) # configurable CMAKE_INSTALL_*DIR set(QUAZIP_HEADERS JlCompress.h ioapi.h minizip_crypt.h quaadler32.h quachecksum32.h quacrc32.h quagzipfile.h quaziodevice.h quazip.h quazip_global.h quazip_qt_compat.h quazipdir.h quazipfile.h quazipfileinfo.h quazipnewinfo.h unzip.h zip.h ) set(QUAZIP_SOURCES ${QUAZIP_HEADERS} unzip.c zip.c JlCompress.cpp qioapi.cpp quaadler32.cpp quachecksum32.cpp quacrc32.cpp quagzipfile.cpp quaziodevice.cpp quazip.cpp quazipdir.cpp quazipfile.cpp quazipfileinfo.cpp quazipnewinfo.cpp ) set(QUAZIP_INCLUDE_PATH ${QUAZIP_DIR_NAME}/quazip) set(QUAZIP_INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake) set(QUAZIP_PKGCONFIG_NAME quazip${QuaZip_VERSION_MAJOR}-qt${QUAZIP_QT_MAJOR_VERSION}) add_library(${QUAZIP_LIB_TARGET_NAME} ${QUAZIP_SOURCES}) add_library(QuaZip::QuaZip ALIAS ${QUAZIP_LIB_TARGET_NAME}) set_target_properties(${QUAZIP_LIB_TARGET_NAME} PROPERTIES VERSION ${QUAZIP_LIB_VERSION} SOVERSION ${QUAZIP_LIB_SOVERSION} OUTPUT_NAME ${QUAZIP_LIB_FILE_NAME} PUBLIC_HEADER "${QUAZIP_HEADERS}" ) target_include_directories(${QUAZIP_LIB_TARGET_NAME} PUBLIC $ $ $ $ ) target_link_libraries(${QUAZIP_LIB_TARGET_NAME} ${QUAZIP_LIB_LIBRARIES}) if(BUILD_SHARED_LIBS) target_compile_definitions(${QUAZIP_LIB_TARGET_NAME} PRIVATE QUAZIP_BUILD) # dllexport else() target_compile_definitions(${QUAZIP_LIB_TARGET_NAME} PUBLIC QUAZIP_STATIC) # suppress dllimport endif() include(CMakePackageConfigHelpers) if(QUAZIP_INSTALL) if(BUILD_SHARED_LIBS) set(Flavor Shared) else() set(Flavor Static) endif() set(QUAZIP_EXPORT_SET ${QUAZIP_PACKAGE_NAME}_${Flavor}Targets) write_basic_package_version_file(${PROJECT_BINARY_DIR}/${QUAZIP_PACKAGE_NAME}ConfigVersion.cmake COMPATIBILITY SameMajorVersion ) configure_package_config_file(QuaZipConfig.cmake.in ${QUAZIP_PACKAGE_NAME}Config.cmake INSTALL_DESTINATION ${QUAZIP_INSTALL_CONFIGDIR}/${QUAZIP_DIR_NAME} ) install(TARGETS ${QUAZIP_LIB_TARGET_NAME} EXPORT ${QUAZIP_EXPORT_SET} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${QUAZIP_INCLUDE_PATH} ) install(EXPORT ${QUAZIP_EXPORT_SET} NAMESPACE QuaZip:: DESTINATION ${QUAZIP_INSTALL_CONFIGDIR}/${QUAZIP_DIR_NAME} ) install(FILES ${PROJECT_BINARY_DIR}/${QUAZIP_PACKAGE_NAME}Config.cmake ${PROJECT_BINARY_DIR}/${QUAZIP_PACKAGE_NAME}ConfigVersion.cmake DESTINATION ${QUAZIP_INSTALL_CONFIGDIR}/${QUAZIP_DIR_NAME} ) configure_file(quazip.pc.cmakein ${QUAZIP_PKGCONFIG_NAME}.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${QUAZIP_PKGCONFIG_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) endif()