36
36
# Test build for Windows, Mac and mingw.
37
37
38
38
project (godot-cpp LANGUAGES CXX)
39
- cmake_minimum_required (VERSION 3.6 )
39
+ cmake_minimum_required (VERSION 3.12 )
40
40
41
41
option (GENERATE_TEMPLATE_GET_NODE "Generate a template version of the Node class's get_node." ON )
42
42
43
- set (BUILD_PATH ${CMAKE_CURRENT_BINARY_DIR} /bin)
44
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${BUILD_PATH} " )
45
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${BUILD_PATH} " )
46
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${BUILD_PATH} " )
47
- SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BUILD_PATH} " )
48
- SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BUILD_PATH} " )
49
- SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BUILD_PATH} " )
50
- SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BUILD_PATH} " )
51
- SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BUILD_PATH} " )
52
- SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BUILD_PATH} " )
53
-
54
43
# Default build type is Debug in the SConstruct
55
44
if ("${CMAKE_BUILD_TYPE} " STREQUAL "" )
56
45
set (CMAKE_BUILD_TYPE Debug)
57
46
endif ()
58
47
59
- # Set the c++ standard to c++17
60
- set (CMAKE_CXX_STANDARD 17)
61
- set (CMAKE_CXX_STANDARD_REQUIRED ON )
62
- set (CMAKE_CXX_EXTENSIONS OFF )
63
-
64
48
set (FLOAT_TYPE_FLAG "float" CACHE STRING "" )
65
49
if (FLOAT_TYPE EQUAL 64)
66
50
set (FLOAT_TYPE_FLAG "double" CACHE STRING "" )
@@ -156,8 +140,8 @@ add_custom_command(OUTPUT ${GENERATED_FILES_LIST}
156
140
)
157
141
158
142
# Get Sources
159
- file (GLOB_RECURSE SOURCES src/*.c**)
160
- file (GLOB_RECURSE HEADERS include /*.h**)
143
+ file (GLOB_RECURSE SOURCES CONFIGURE_DEPENDS src/*.c**)
144
+ file (GLOB_RECURSE HEADERS CONFIGURE_DEPENDS include /*.h**)
161
145
162
146
# Define our godot-cpp library
163
147
add_library (${PROJECT_NAME}
@@ -166,6 +150,12 @@ add_library(${PROJECT_NAME}
166
150
${GENERATED_FILES_LIST}
167
151
)
168
152
add_library (godot::cpp ALIAS ${PROJECT_NAME} )
153
+
154
+ target_compile_features (${PROJECT_NAME}
155
+ PRIVATE
156
+ cxx_std_17
157
+ )
158
+
169
159
target_compile_definitions (${PROJECT_NAME} PUBLIC
170
160
$<$<CONFIG:Debug>:DEBUG_ENABLED>
171
161
$<$<CONFIG:Debug>:DEBUG_METHODS_ENABLED>
@@ -190,17 +180,25 @@ target_include_directories(${PROJECT_NAME}
190
180
set_property (TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY COMPILE_FLAGS ${GODOT_COMPILE_FLAGS} )
191
181
set_property (TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS ${GODOT_LINKER_FLAGS} )
192
182
193
-
194
183
# Create the correct name (godot.os.build_type.system_bits)
195
-
196
184
string (TOLOWER "${CMAKE_SYSTEM_NAME} " SYSTEM_NAME )
197
185
string (TOLOWER "${CMAKE_BUILD_TYPE} " BUILD_TYPE )
198
186
199
187
if (ANDROID)
200
188
# Added the android abi after system name
201
189
set (SYSTEM_NAME ${SYSTEM_NAME} .${ANDROID_ABI} )
190
+
202
191
# Android does not have the bits at the end if you look at the main godot repo build
203
- set_property ( TARGET ${PROJECT_NAME} PROPERTY OUTPUT_NAME "godot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} " )
192
+ set ( OUTPUT_NAME "godot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} " )
204
193
else ()
205
- set_property ( TARGET ${PROJECT_NAME} PROPERTY OUTPUT_NAME "godot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} .${BITS} " )
194
+ set ( OUTPUT_NAME "godot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} .${BITS} " )
206
195
endif ()
196
+
197
+ set_target_properties (${PROJECT_NAME}
198
+ PROPERTIES
199
+ CXX_EXTENSIONS OFF
200
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /bin"
201
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /bin"
202
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /bin"
203
+ OUTPUT_NAME "${OUTPUT_NAME} "
204
+ )
0 commit comments