CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #[=======================================================================[.rst:
  2. Integration Testing
  3. -------------------
  4. The Test target used to validate changes in the GitHub CI.
  5. ]=======================================================================]
  6. message(STATUS "Testing Integration targets are enabled.")
  7. set(TARGET_NAME "godot-cpp-test")
  8. add_library(${TARGET_NAME} SHARED EXCLUDE_FROM_ALL)
  9. target_sources(
  10. ${TARGET_NAME}
  11. PRIVATE src/example.cpp src/example.h src/register_types.cpp src/register_types.h src/tests.h
  12. )
  13. # conditionally add doc data to compile output
  14. if(GODOTCPP_TARGET MATCHES "editor|template_debug")
  15. file(GLOB_RECURSE DOC_XML LIST_DIRECTORIES NO CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/doc_classes/*.xml")
  16. target_doc_sources( ${TARGET_NAME} ${DOC_XML} )
  17. endif()
  18. set(OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/project/bin/")
  19. # Link to godot-cpp target
  20. target_link_libraries(${TARGET_NAME} PRIVATE godot-cpp)
  21. ### Get useful properties from godot-cpp target
  22. get_target_property(GODOTCPP_SUFFIX godot-cpp GODOTCPP_SUFFIX)
  23. # gersemi: off
  24. set_target_properties(
  25. ${TARGET_NAME}
  26. PROPERTIES
  27. CXX_STANDARD 17
  28. CXX_EXTENSIONS OFF
  29. CXX_VISIBILITY_PRESET ${GODOTCPP_SYMBOL_VISIBILITY}
  30. POSITION_INDEPENDENT_CODE ON
  31. BUILD_RPATH_USE_ORIGIN ON
  32. # Try to ensure only static libraries are selected to be linked to.
  33. LINK_SEARCH_START_STATIC ON
  34. LINK_SEARCH_END_STATIC ON
  35. # NOTE: Wrapping the output variables inside a generator expression
  36. # prevents msvc generator from adding addition Config Directories
  37. LIBRARY_OUTPUT_DIRECTORY "$<1:${OUTPUT_DIR}>"
  38. RUNTIME_OUTPUT_DIRECTORY "$<1:${OUTPUT_DIR}>"
  39. PDB_OUTPUT_DIRECTORY "$<1:${OUTPUT_DIR}>" #MSVC Only, ignored on other platforms
  40. PREFIX "lib"
  41. OUTPUT_NAME "gdexample${GODOTCPP_SUFFIX}"
  42. # TODO rename the file for both CMake and SCons
  43. # Some IDE's respect this property to logically group targets
  44. FOLDER "godot-cpp"
  45. )
  46. # gersemi: on
  47. # CMAKE_SYSTEM_NAME refers to the target system
  48. if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
  49. set_target_properties(
  50. ${TARGET_NAME}
  51. PROPERTIES SUFFIX "" OUTPUT_DIR "${OUTPUT_DIR}/libgdexample.macos.${GODOTCPP_TARGET}.framework"
  52. )
  53. endif()