diff --git a/CMakeLists.txt b/CMakeLists.txt index c3f8e281..842c2522 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ # It should also work without this option, but we do not test with it. cmake_minimum_required(VERSION 3.20) -project(basisu C CXX) +project(basisu LANGUAGES C CXX VERSION 1.60) # pybind11: allow old Python finder modules without complaining if (POLICY CMP0148) @@ -343,7 +343,7 @@ if (BASISU_BUILD_WASM) endif() - # 256 MB initial, 3.5 GB max — safe defaults for BasisU + # 256 MB initial, 3.5 GB max � safe defaults for BasisU target_link_options(basisu PRIVATE -Wl,--initial-memory=268435456 -Wl,--max-memory=3758096384 @@ -667,3 +667,44 @@ if (BASISU_BUILD_PYTHON AND NOT BASISU_BUILD_WASM) ) endif() endif() + +# Package configuration +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/basisuConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/basisuConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/basisuConfig.cmake" + INSTALL_DESTINATION lib/cmake/basisu +) + +# Installation targets + +install(TARGETS basisu basisu_encoder examples + EXPORT basisuTargets + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + INCLUDES DESTINATION include +) + +install(DIRECTORY encoder/ transcoder/ + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) + +install(EXPORT basisuTargets + FILE basisuTargets.cmake + NAMESPACE basisu:: + DESTINATION lib/cmake/basisu +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/basisuConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/basisuConfigVersion.cmake" + DESTINATION lib/cmake/basisu +) diff --git a/cmake/basisuConfig.cmake.in b/cmake/basisuConfig.cmake.in new file mode 100644 index 00000000..dd3c233f --- /dev/null +++ b/cmake/basisuConfig.cmake.in @@ -0,0 +1,3 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/basisuTargets.cmake")