You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.5 KiB
86 lines
2.5 KiB
cmake_minimum_required(VERSION 3.29)
|
|
project(cxx_modules_export_build_database CXX)
|
|
|
|
include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake")
|
|
|
|
include("${CMAKE_SOURCE_DIR}/../export-build-database-setup.cmake")
|
|
|
|
add_compile_options(-Dfrom_compile_options)
|
|
add_compile_definitions(-Dfrom_compile_definitions)
|
|
include_directories(from_include_directories)
|
|
|
|
add_library(provide_flags INTERFACE)
|
|
target_compile_options(provide_flags
|
|
INTERFACE
|
|
-Ddep_interface_option)
|
|
target_compile_definitions(provide_flags
|
|
INTERFACE
|
|
dep_interface_define)
|
|
target_include_directories(provide_flags
|
|
INTERFACE
|
|
dep_interface_include)
|
|
|
|
add_library(export_build_database)
|
|
target_sources(export_build_database
|
|
PRIVATE
|
|
lib.cxx
|
|
PUBLIC
|
|
FILE_SET modules
|
|
TYPE CXX_MODULES
|
|
BASE_DIRS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
|
FILES
|
|
importable.cxx)
|
|
target_compile_features(export_build_database PUBLIC cxx_std_20)
|
|
target_link_libraries(export_build_database
|
|
PRIVATE
|
|
provide_flags)
|
|
|
|
set_property(SOURCE importable.cxx APPEND
|
|
PROPERTY COMPILE_FLAGS "-Dfrom_source_flag")
|
|
set_property(SOURCE importable.cxx APPEND
|
|
PROPERTY COMPILE_OPTIONS "-Dfrom_source_option")
|
|
set_property(SOURCE importable.cxx APPEND
|
|
PROPERTY COMPILE_DEFINITIONS "from_source_define")
|
|
|
|
set_property(TARGET export_build_database APPEND
|
|
PROPERTY COMPILE_FLAGS "-Dfrom_compile_flags")
|
|
target_compile_options(export_build_database
|
|
PRIVATE
|
|
-Dtarget_private_option
|
|
INTERFACE
|
|
-Dtarget_interface_option
|
|
PUBLIC
|
|
-Dtarget_public_option)
|
|
target_compile_definitions(export_build_database
|
|
PRIVATE
|
|
target_private_define
|
|
INTERFACE
|
|
target_interface_define
|
|
PUBLIC
|
|
target_public_define)
|
|
target_include_directories(export_build_database
|
|
PRIVATE
|
|
target_private_include
|
|
INTERFACE
|
|
target_interface_include
|
|
PUBLIC
|
|
target_public_include)
|
|
|
|
install(TARGETS export_build_database
|
|
EXPORT CXXModules
|
|
FILE_SET modules DESTINATION "lib/cxx/miu")
|
|
export(EXPORT CXXModules
|
|
NAMESPACE CXXModules::
|
|
FILE "${CMAKE_CURRENT_BINARY_DIR}/export_build_database-targets.cmake")
|
|
install(TARGETS provide_flags
|
|
EXPORT CXXModulesDeps)
|
|
export(EXPORT CXXModulesDeps
|
|
NAMESPACE CXXModules::
|
|
FILE "${CMAKE_CURRENT_BINARY_DIR}/export_build_database-dep-targets.cmake")
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/export_build_database-config.cmake"
|
|
"include(\"\${CMAKE_CURRENT_LIST_DIR}/export_build_database-dep-targets.cmake\")
|
|
include(\"\${CMAKE_CURRENT_LIST_DIR}/export_build_database-targets.cmake\")
|
|
set(\${CMAKE_FIND_PACKAGE_NAME}_FOUND 1)
|
|
")
|