Export cmake target config to build directory

Zhehang Ding 2023-02-14 19:35:16 -08:00
parent 0068320ff1
commit 826c50e162
2 changed files with 29 additions and 0 deletions

View File

@ -210,3 +210,27 @@ set_target_properties(${PROJECT_NAME}
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
OUTPUT_NAME "${OUTPUT_NAME}" 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)