NinjaDependInfoFileSet.cmake 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Fake out that we have dyndep; we only need to generate, not actually build
  2. # here.
  3. set(CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE "")
  4. enable_language(CXX)
  5. if (NOT CMAKE_GENERATOR MATCHES "Ninja")
  6. message(FATAL_ERROR
  7. "This test requires a 'Ninja' generator to be used.")
  8. endif ()
  9. add_library(ninja-file-sets-public)
  10. target_sources(ninja-file-sets-public
  11. PRIVATE
  12. sources/module-impl.cxx
  13. sources/module-internal-part-impl.cxx
  14. sources/module-part-impl.cxx
  15. sources/module-use.cxx
  16. PUBLIC
  17. FILE_SET modules TYPE CXX_MODULES
  18. BASE_DIRS
  19. "${CMAKE_CURRENT_SOURCE_DIR}/sources"
  20. FILES
  21. sources/module.cxx
  22. sources/module-part.cxx
  23. FILE_SET internal_partitions TYPE CXX_MODULES FILES
  24. sources/module-internal-part.cxx)
  25. target_compile_features(ninja-file-sets-public
  26. PRIVATE
  27. cxx_std_20)
  28. install(TARGETS ninja-file-sets-public
  29. FILE_SET modules
  30. DESTINATION "lib/cxx"
  31. COMPONENT "modules"
  32. FILE_SET internal_partitions
  33. DESTINATION "lib/cxx/internals"
  34. COMPONENT "modules-internal")
  35. add_library(ninja-file-sets-private)
  36. target_sources(ninja-file-sets-private
  37. PRIVATE
  38. sources/module-impl.cxx
  39. sources/module-internal-part-impl.cxx
  40. sources/module-part-impl.cxx
  41. sources/module-use.cxx
  42. PRIVATE
  43. FILE_SET modules TYPE CXX_MODULES
  44. BASE_DIRS
  45. "${CMAKE_CURRENT_SOURCE_DIR}/sources"
  46. FILES
  47. sources/module.cxx
  48. sources/module-part.cxx
  49. FILE_SET internal_partitions TYPE CXX_MODULES FILES
  50. sources/module-internal-part.cxx)
  51. target_compile_features(ninja-file-sets-private
  52. PRIVATE
  53. cxx_std_20)