cmake_minimum_required(VERSION 3.30) set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "d0edc3af-4c50-42ea-a356-e2862fe7a444") set(CMAKE_CXX_MODULE_STD ON) project(greeter VERSION 0.1.0 LANGUAGES CXX) include(GNUInstallDirs) include(CMakePackageConfigHelpers) # Generated by cargoxx — do not edit. # Source of truth: ../Cargoxx.toml set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) set(CMAKE_CXX_SCAN_FOR_MODULES ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) add_compile_options(-Wall -Wextra -Wpedantic -Wconversion -Wno-missing-field-initializers) # ----- library target ----- add_library(greeter STATIC) target_sources(greeter PUBLIC FILE_SET CXX_MODULES BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/.. FILES ../src/lib.cppm ) target_compile_features(greeter PUBLIC cxx_std_23) # ----- install + package-config + pkg-config ----- install(TARGETS greeter EXPORT greeterTargets FILE_SET CXX_MODULES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/greeter ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(EXPORT greeterTargets FILE greeterTargets.cmake NAMESPACE greeter:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/greeter) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake.in [[ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) include("${CMAKE_CURRENT_LIST_DIR}/greeterTargets.cmake") check_required_components(greeter) ]]) configure_package_config_file( ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/greeter) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/greeterConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/greeterConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/greeter) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/greeter.pc.in [[ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=${prefix}/${CMAKE_INSTALL_LIBDIR} includedir=${prefix}/${CMAKE_INSTALL_INCLUDEDIR} Name: @PROJECT_NAME@ Version: @PROJECT_VERSION@ Description: @PROJECT_NAME@ Cflags: -I${includedir} Libs: -L${libdir} -l@PROJECT_NAME@ ]]) configure_file(${CMAKE_CURRENT_BINARY_DIR}/greeter.pc.in ${CMAKE_CURRENT_BINARY_DIR}/greeter.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/greeter.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)