CMakeLists.txt 693 B

123456789101112131415161718192021222324252627282930
  1. cmake_minimum_required(VERSION 3.24)
  2. project(cxx_modules_library CXX)
  3. include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake")
  4. include(GenerateExportHeader)
  5. add_library(library)
  6. generate_export_header(library)
  7. target_sources(library
  8. PUBLIC
  9. FILE_SET HEADERS
  10. BASE_DIRS
  11. "${CMAKE_CURRENT_BINARY_DIR}"
  12. FILES
  13. "${CMAKE_CURRENT_BINARY_DIR}/library_export.h"
  14. FILE_SET CXX_MODULES
  15. BASE_DIRS
  16. "${CMAKE_CURRENT_SOURCE_DIR}"
  17. FILES
  18. importable.cxx)
  19. target_compile_features(library PUBLIC cxx_std_20)
  20. add_executable(exe)
  21. target_link_libraries(exe PRIVATE library)
  22. target_sources(exe
  23. PRIVATE
  24. main.cxx)
  25. add_test(NAME exe COMMAND exe)