cmake_minimum_required(VERSION 3.9) project(casclib) set(PROJECT_VERSION_MAJOR 1) set(PROJECT_VERSION_MINOR 50) option(INSTALL_HEADERS "Install header files" ON) set(SRC_FILES src/CascLib.def src/CascCommon.cpp src/CascDecompress.cpp src/CascDecrypt.cpp src/CascDumpData.cpp src/CascFiles.cpp src/CascFindFile.cpp src/CascIndexFiles.cpp src/CascOpenFile.cpp src/CascOpenStorage.cpp src/CascReadFile.cpp src/CascRootFile_Diablo3.cpp src/CascRootFile_Install.cpp src/CascRootFile_MNDX.cpp src/CascRootFile_OW.cpp src/CascRootFile_Text.cpp src/CascRootFile_TVFS.cpp src/CascRootFile_WoW.cpp src/common/Common.cpp src/common/Csv.cpp src/common/Directory.cpp src/common/FileStream.cpp src/common/FileTree.cpp src/common/ListFile.cpp src/common/RootHandler.cpp src/jenkins/lookup3.c ) set(MD5_FILES src/md5/md5.cpp ) set(ZLIB_FILES src/zlib/adler32.c src/zlib/crc32.c src/zlib/inffast.c src/zlib/inflate.c src/zlib/inftrees.c src/zlib/zutil.c ) add_library(casclib ${SRC_FILES} ${ZLIB_FILES} ${MD5_FILES}) target_include_directories(casclib PUBLIC $ $) if(WIN32) target_compile_definitions(casclib PRIVATE UNICODE _UNICODE) endif() install(TARGETS casclib EXPORT casclibTargets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) include(CMakePackageConfigHelpers) set(VERSION_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/temp/casclibConfigVersion.cmake") set(PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/temp/casclibConfig.cmake") set(INSTALL_DIR "share/casclib") write_basic_package_version_file("${VERSION_CONFIG}" VERSION 1.50 COMPATIBILITY SameMajorVersion) configure_package_config_file("Config.cmake.in" "${PROJECT_CONFIG}" INSTALL_DESTINATION "${INSTALL_DIR}") install(FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" DESTINATION "${INSTALL_DIR}") install(EXPORT casclibTargets DESTINATION "${INSTALL_DIR}") if(INSTALL_HEADERS) install(FILES "src/CascLib.h" "src/CascPort.h" DESTINATION include/casclib) endif()