Rework debug flags for CMake

* Attach debug flags to the target and mark as `PUBLIC`. This will allow all
  projects that use bindings not to add the same defines manually.
* Use generator-expressions to support multiconfig generators (such as
  MSVC).
* Remove excplitic `NDEBUG` and `_DEBUG` flags, CMake handles it
  automatically.
pull/639/head
Hennadii Chernyshchyk 2021-10-03 17:30:37 +03:00
parent 230fd4bc08
commit 2f92b4a37d
No known key found for this signature in database
GPG Key ID: 24623302B8395825
1 changed files with 5 additions and 10 deletions

View File

@ -44,14 +44,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE Debug)
endif()
if(CMAKE_BUILD_TYPE MATCHES Debug)
add_definitions(-D_DEBUG)
add_definitions(-DDEBUG_ENABLED)
add_definitions(-DDEBUG_METHODS_ENABLED)
else()
add_definitions(-DNDEBUG)
endif(CMAKE_BUILD_TYPE MATCHES Debug)
# Set the c++ standard to c++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@ -155,8 +147,11 @@ add_library(${PROJECT_NAME}
${GENERATED_FILES_LIST}
)
add_library(godot::cpp ALIAS ${PROJECT_NAME})
target_include_directories(${PROJECT_NAME}
PUBLIC
target_compile_definitions(${PROJECT_NAME} PUBLIC
$<$<CONFIG:Debug>:DEBUG_ENABLED>
$<$<CONFIG:Debug>:DEBUG_METHODS_ENABLED>
)
target_include_directories(${PROJECT_NAME} PUBLIC
include
${CMAKE_CURRENT_BINARY_DIR}/gen/include
)