Skip to content

Commit 952bde1

Browse files
committed
Merge pull request #1002 from asmaloney/cmake-system-includes
{cmake} Add GODOT_CPP_SYSTEM_HEADERS option to mark includes as SYSTEM
2 parents b0f9ca7 + 1351710 commit 952bde1

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

CMakeLists.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
# godot-cpp cmake arguments
55
# GODOT_GDEXTENSION_DIR: Path to the directory containing GDExtension interface header and API JSON file
6+
# GODOT_CPP_SYSTEM_HEADERS Mark the header files as SYSTEM. This may be useful to supress warnings in projects including this one.
67
# GODOT_CUSTOM_API_FILE: Path to a custom GDExtension API JSON file (takes precedence over `gdextension_dir`)
78
# FLOAT_PRECISION: Floating-point precision level ("single", "double")
89
#
@@ -39,6 +40,7 @@ project(godot-cpp LANGUAGES CXX)
3940
cmake_minimum_required(VERSION 3.12)
4041

4142
option(GENERATE_TEMPLATE_GET_NODE "Generate a template version of the Node class's get_node." ON)
43+
option(GODOT_CPP_SYSTEM_HEADERS "Expose headers as SYSTEM." OFF)
4244

4345
# Default build type is Debug in the SConstruct
4446
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
@@ -169,11 +171,19 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
169171
target_compile_definitions(${PROJECT_NAME} PUBLIC TYPED_METHOD_BIND)
170172
endif()
171173

172-
target_include_directories(${PROJECT_NAME} PUBLIC
174+
# Optionally mark headers as SYSTEM
175+
set(GODOT_CPP_SYSTEM_HEADERS_ATTRIBUTE "")
176+
if (GODOT_CPP_SYSTEM_HEADERS)
177+
set(GODOT_CPP_SYSTEM_HEADERS_ATTRIBUTE SYSTEM)
178+
endif ()
179+
180+
target_include_directories(${PROJECT_NAME} ${GODOT_CPP_SYSTEM_HEADERS_ATTRIBUTE} PUBLIC
173181
include
174182
${CMAKE_CURRENT_BINARY_DIR}/gen/include
175183
)
176184

185+
unset( GODOT_CPP_SYSTEM_HEADERS_ATTRIBUTE )
186+
177187
# Put godot headers as SYSTEM PUBLIC to exclude warnings from irrelevant headers
178188
target_include_directories(${PROJECT_NAME}
179189
SYSTEM PUBLIC

0 commit comments

Comments
 (0)