Compare commits

...

4 Commits

Author SHA1 Message Date
Ding, Zhehang "Eox b13393e5dd
Merge 826c50e162 into 3f44e9b404 2024-01-02 21:04:58 -06:00
David Snopek 3f44e9b404
Merge pull request #1339 from aaronfranke/detect-gdext
Allow detecting when building as a GDExtension
2023-12-29 14:14:35 -06:00
Aaron Franke e17c7bf530
Allow detecting when building as a GDExtension 2023-12-18 09:13:20 -06:00
Zhehang Ding 826c50e162 Export cmake target config to build directory 2023-02-15 23:40:38 -08:00
3 changed files with 32 additions and 0 deletions

View File

@ -214,3 +214,27 @@ set_target_properties(${PROJECT_NAME}
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
OUTPUT_NAME "${OUTPUT_NAME}"
)
install(TARGETS ${PROJECT_NAME} EXPORT godot_cpp_targets)
# Export the target to the build directory.
# The target then can be imported by another cmake project like this:
# find_package(godot-cpp CONFIG REQUIRED)
#
# add_library(libfoo SHARED)
# set_target_properties(libfoo PROPERTIES POSITION_INDEPENDENT_CODE ON)
# target_link_libraries(libfoo PUBLIC godot::godot-cpp)
#
# And user provides the build directory to cmake:
# -DCMAKE_PREFIX_PATH=<absolute-path-to-godot-cpp-build-dir>.
export(EXPORT godot_cpp_targets
FILE "${PROJECT_BINARY_DIR}/cmake/godot-cpp.cmake"
NAMESPACE godot::
)
include(CMakePackageConfigHelpers)
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/config.cmake.in
"${PROJECT_BINARY_DIR}/cmake/godot-cpp-config.cmake"
INSTALL_DESTINATION "lib/cmake/godot-cpp"
)

5
cmake/config.cmake.in Normal file
View File

@ -0,0 +1,5 @@
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/godot-cpp.cmake")
check_required_components(godot-cpp)

View File

@ -295,6 +295,9 @@ def generate(env):
if env["precision"] == "double":
env.Append(CPPDEFINES=["REAL_T_IS_DOUBLE"])
# Allow detecting when building as a GDExtension.
env.Append(CPPDEFINES=["GDEXTENSION"])
# Suffix
suffix = ".{}.{}".format(env["platform"], env["target"])
if env.dev_build: