1
1
project (godot-cpp-test )
2
2
cmake_minimum_required (VERSION 3.6)
3
3
4
- # Local dependency paths, adapt them to your setup
5
- set (GODOT_HEADERS_PATH ../godot-headers/)
6
- set (CPP_BINDINGS_PATH ../)
4
+ set (GODOT_HEADERS_PATH ../godot-headers/ CACHE STRING "Path to Godot headers" )
5
+ set (CPP_BINDINGS_PATH ../ CACHE STRING "Path to C++ bindings" )
7
6
8
7
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" )
9
- set (TARGET_PATH x11)
8
+ set (TARGET_PATH x11)
10
9
elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
11
- set (TARGET_PATH win64)
10
+ set (TARGET_PATH win64)
12
11
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
13
- set (TARGET_PATH osx)
12
+ set (TARGET_PATH osx)
14
13
else ()
15
- message (FATAL_ERROR "Not implemented support for ${CMAKE_SYSTEM_NAME} " )
14
+ message (FATAL_ERROR "Not implemented support for ${CMAKE_SYSTEM_NAME} " )
16
15
endif ()
17
16
18
17
# Change the output directory to the bin directory
@@ -37,7 +36,8 @@ set(GODOT_LINKER_FLAGS )
37
36
38
37
if ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "MSVC" )
39
38
# using Visual Studio C++
40
- set (GODOT_COMPILE_FLAGS "/EHsc /WX" ) # /GF /MP
39
+ set (GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /EHsc /WX" ) # /GF /MP
40
+ set (GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /DTYPED_METHOD_BIND" )
41
41
42
42
if (CMAKE_BUILD_TYPE MATCHES Debug)
43
43
set (GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /MDd" ) # /Od /RTC1 /Zi
@@ -101,52 +101,51 @@ file(GLOB_RECURSE HEADERS include/*.h**)
101
101
add_library (${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS} )
102
102
103
103
target_include_directories (${PROJECT_NAME} SYSTEM
104
- PRIVATE
105
- ${CPP_BINDINGS_PATH} /include
104
+ PRIVATE
105
+ ${CPP_BINDINGS_PATH} /include
106
106
${CPP_BINDINGS_PATH} /gen/include
107
- ${GODOT_HEADERS_PATH}
107
+ ${GODOT_HEADERS_PATH}
108
108
)
109
109
110
110
# Create the correct name (godot.os.build_type.system_bits)
111
111
# Synchronized with godot-cpp's CMakeLists.txt
112
112
113
113
set (BITS 32)
114
114
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
115
- set (BITS 64)
115
+ set (BITS 64)
116
116
endif (CMAKE_SIZEOF_VOID_P EQUAL 8)
117
117
118
118
if (CMAKE_BUILD_TYPE MATCHES Debug)
119
- set (GODOT_CPP_BUILD_TYPE Debug)
119
+ set (GODOT_CPP_BUILD_TYPE Debug)
120
120
else ()
121
- set (GODOT_CPP_BUILD_TYPE Release)
121
+ set (GODOT_CPP_BUILD_TYPE Release)
122
122
endif ()
123
123
124
124
string (TOLOWER ${CMAKE_SYSTEM_NAME} SYSTEM_NAME )
125
125
string (TOLOWER ${GODOT_CPP_BUILD_TYPE} BUILD_TYPE )
126
126
127
127
if (ANDROID)
128
- # Added the android abi after system name
129
- set (SYSTEM_NAME ${SYSTEM_NAME} .${ANDROID_ABI} )
128
+ # Added the android abi after system name
129
+ set (SYSTEM_NAME ${SYSTEM_NAME} .${ANDROID_ABI} )
130
130
endif ()
131
131
132
132
if (CMAKE_VERSION VERSION_GREATER "3.13" )
133
- target_link_directories (${PROJECT_NAME}
134
- PRIVATE
135
- ${CPP_BINDINGS_PATH} /bin/
136
- )
137
- target_link_libraries (${PROJECT_NAME}
138
- godot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} $<$<NOT :$<PLATFORM_ID:Android>>:.${BITS} >
139
- )
133
+ target_link_directories (${PROJECT_NAME}
134
+ PRIVATE
135
+ ${CPP_BINDINGS_PATH} /bin/
136
+ )
137
+
138
+ target_link_libraries (${PROJECT_NAME}
139
+ godot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} $<$<NOT :$<PLATFORM_ID:Android>>:.${BITS} >
140
+ )
140
141
else ()
141
- target_link_libraries (${PROJECT_NAME}
142
- ${CPP_BINDINGS_PATH} /bin/libgodot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} $<$<NOT :$<PLATFORM_ID:Android>>:.${BITS} >.a
143
- )
142
+ target_link_libraries (${PROJECT_NAME}
143
+ ${CPP_BINDINGS_PATH} /bin/libgodot-cpp.${SYSTEM_NAME} .${BUILD_TYPE} $<$<NOT :$<PLATFORM_ID:Android>>:.${BITS} >.a
144
+ )
144
145
endif ()
145
146
146
147
# Add the compile flags
147
148
set_property (TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY COMPILE_FLAGS ${GODOT_COMPILE_FLAGS} )
148
149
set_property (TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS ${GODOT_LINKER_FLAGS} )
149
150
150
151
set_property (TARGET ${PROJECT_NAME} PROPERTY OUTPUT_NAME "gdexample" )
151
-
152
-
0 commit comments