add_modules.cmake 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. set(core_modules
  2. "modules/AlignedData.cppm"
  3. "modules/Array.cppm"
  4. "modules/Assert.cppm"
  5. "modules/ArrayList.cppm"
  6. "modules/BitArray.cppm"
  7. "modules/Box.cppm"
  8. "modules/Buffer.cppm"
  9. "modules/Clock.cppm"
  10. "modules/Color.cppm"
  11. "modules/Components.cppm"
  12. "modules/File.cppm"
  13. "modules/Frustum.cppm"
  14. "modules/HashMap.cppm"
  15. "modules/HashedString.cppm"
  16. "modules/List.cppm"
  17. "modules/Logger.cppm"
  18. "modules/Math.cppm"
  19. "modules/Matrix.cppm"
  20. "modules/Meta.cppm"
  21. "modules/New.cppm"
  22. "modules/Plane.cppm"
  23. "modules/Quaternion.cppm"
  24. "modules/Queue.cppm"
  25. "modules/Random.cppm"
  26. "modules/ReadLine.cppm"
  27. "modules/Std.cppm"
  28. "modules/StringFormat.cppm"
  29. "modules/StringJoin.cppm"
  30. "modules/Terminal.cppm"
  31. "modules/TerminalConstants.cppm"
  32. "modules/Test.cppm"
  33. "modules/Thread.cppm"
  34. "modules/ToString.cppm"
  35. "modules/Types.cppm"
  36. "modules/Unicode.cppm"
  37. "modules/UniquePointer.cppm"
  38. "modules/Utility.cppm"
  39. "modules/Vector.cppm"
  40. "modules/View.cppm"
  41. )
  42. function(add_modules)
  43. cmake_parse_arguments(args
  44. "" "TARGET;NAME;PREFIX" "FILES" ${ARGN}
  45. )
  46. if("${args_TARGET}" STREQUAL "")
  47. message( FATAL_ERROR "add_modules misses TARGET" )
  48. endif()
  49. if("${args_NAME}" STREQUAL "")
  50. message( FATAL_ERROR "add_modules misses NAME" )
  51. endif()
  52. list(TRANSFORM args_FILES PREPEND ${args_PREFIX}./)
  53. target_sources(${args_TARGET} PUBLIC
  54. FILE_SET ${args_NAME}
  55. TYPE CXX_MODULES
  56. BASE_DIRS ${args_PREFIX}
  57. FILES ${args_FILES}
  58. )
  59. endfunction()