CMake: default target when godot-cpp is top level

People seem to want to build godot-cpp without any arguments, not even specifying a target.

We have to detect if we are top level though because it conflicts with being consumed.

(cherry picked from commit 8b33e73353)
This commit is contained in:
Samuel Nicholas
2025-03-05 17:36:27 +10:30
committed by David Snopek
parent 4b5d800596
commit 5ba2d9c9f6
2 changed files with 17 additions and 2 deletions

View File

@@ -40,11 +40,17 @@ For example; the tools/godotcpp.py is matched by the cmake/godotcpp.cmake file
The CMake equivalent is below.
]=======================================================================]
include(cmake/godotcpp.cmake)
godotcpp_options()
#[[ People are compiling godot by itself and expecting template_debug
Replace this with PROJECT_IS_TOP_LEVEL, <PROJECT-NAME>_IS_TOP_LEVEL when minimum reaches 3.21
]]
if(NOT PROJECT_NAME)
set(GODOTCPP_IS_TOP_LEVEL ON)
endif()
# Define our project.
project(
godot-cpp

View File

@@ -325,8 +325,17 @@ function(godotcpp_generate)
"$<$<NOT:${THREADS_ENABLED}>:.nothreads>"
)
# People are compiling godot by itself.
set(EXCLUDE EXCLUDE_FROM_ALL)
if(GODOTCPP_IS_TOP_LEVEL)
if(TARGET_ALIAS STREQUAL template_debug)
set(EXCLUDE "")
endif()
endif()
# the godot-cpp.* library targets
add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL)
add_library(${TARGET_NAME} STATIC ${EXCLUDE})
add_library(godot-cpp::${TARGET_ALIAS} ALIAS ${TARGET_NAME})
file(GLOB_RECURSE GODOTCPP_SOURCES LIST_DIRECTORIES NO CONFIGURE_DEPENDS src/*.cpp)