1
1
# Configuration can be used as a template for custom project, read comments
2
- cmake_minimum_required (VERSION 3.6 )
2
+ cmake_minimum_required (VERSION 3.13 )
3
3
project (gdexample LANGUAGES CXX )
4
4
5
5
set (CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;MinSizeRel" )
@@ -14,7 +14,7 @@ add_subdirectory(
14
14
file (GLOB_RECURSE SOURCES src/*.c** )
15
15
file (GLOB_RECURSE HEADERS src/*.h** )
16
16
17
- get_directory_property (LIBRARY_SUFFIX DIRECTORY ${GODOT_CPP_PATH} DEFINITION LIBRARY_SUFFIX )
17
+ get_target_property (LIBRARY_SUFFIX godot-cpp LIBRARY_SUFFIX )
18
18
19
19
# Define our godot-cpp library
20
20
if (${GODOT_PLATFORM} STREQUAL "WEB" )
@@ -26,17 +26,27 @@ if(${GODOT_PLATFORM} STREQUAL "WEB")
26
26
OUTPUT_NAME "${PROJECT_NAME}${LIBRARY_SUFFIX} "
27
27
)
28
28
elseif (${GODOT_PLATFORM} STREQUAL "MACOS" )
29
- # TODO: create framework with cmake FRAMEWORK property
30
- # or with template file
31
- message (WARNING "Mac/IOS framework configuration is not tested and may not work." )
32
-
33
29
add_library (${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS} )
30
+ set (OUTPUT_NAME "lib${PROJECT_NAME}${LIBRARY_SUFFIX} " )
34
31
set_target_properties (${PROJECT_NAME} PROPERTIES
35
32
FRAMEWORK TRUE
36
- MACOSX_FRAMEWORK_IDENTIFIER com.godotengine.${PROJECT_NAME}
37
- MACOSX_FRAMEWORK_INFO_PLIST ${GODOT_CPP_PATH} /cmake/Info.plist.in
38
- OUTPUT_NAME "lib${PROJECT_NAME}${LIBRARY_SUFFIX} "
33
+ MACOSX_FRAMEWORK_IDENTIFIER "org.godotengine.lib${PROJECT_NAME} "
34
+ MACOSX_BUNDLE_BUNDLE_NAME "lib${PROJECT_NAME}${LIBRARY_SUFFIX} "
35
+ MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0.0"
36
+ MACOS_BUNDLE_BUNDLE_VERSION "1.0.0"
37
+
38
+ OUTPUT_NAME "${OUTPUT_NAME} "
39
39
)
40
+
41
+ # Workaround of 'bin/***.framework/Resources' existing in godot-cpp repo by default'
42
+ set (RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR} /project/bin/${OUTPUT_NAME} .framework/Resources" )
43
+ if (IS_DIRECTORY ${RESOURCES_DIR} AND NOT IS_SYMLINK ${RESOURCES_DIR} )
44
+ message (STATUS "Removing '${RESOURCES_DIR} ' to create symlink ..." )
45
+ file (REMOVE_RECURSE ${RESOURCES_DIR} )
46
+ endif ()
47
+
48
+ # TODO: IOS configuration
49
+ #elseif(${GODOT_PLATFORM} STREQUAL "IOS")
40
50
else ()
41
51
add_library (${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS} )
42
52
set_target_properties (${PROJECT_NAME} PROPERTIES
@@ -46,18 +56,18 @@ endif()
46
56
47
57
target_link_libraries (${PROJECT_NAME} PUBLIC godot-cpp )
48
58
49
- get_directory_property ( GODOT_CC_FLAGS DIRECTORY ${GODOT_CPP_PATH} DEFINITION GODOT_CC_FLAGS )
50
- get_directory_property (GODOT_CXX_FLAGS DIRECTORY ${GODOT_CPP_PATH} DEFINITION GODOT_CXX_FLAGS )
59
+ get_target_property ( GODOT_C_FLAGS godot-cpp GODOT_C_FLAGS )
60
+ get_target_property (GODOT_CXX_FLAGS godot-cpp GODOT_CXX_FLAGS )
51
61
target_compile_options (${PROJECT_NAME} PRIVATE
52
- ${GODOT_CC_FLAGS }
62
+ ${GODOT_C_FLAGS }
53
63
${GODOT_CXX_FLAGS}
54
64
)
55
65
56
- get_directory_property (GODOT_LINK_FLAGS DIRECTORY ${GODOT_CPP_PATH} DEFINITION GODOT_LINK_FLAGS )
66
+ get_target_property (GODOT_LINK_FLAGS godot-cpp GODOT_LINK_FLAGS )
57
67
target_link_options (${PROJECT_NAME} PRIVATE ${GODOT_LINK_FLAGS} )
58
68
59
69
60
- get_directory_property (LIBRARY_SUFFIX DIRECTORY ${GODOT_CPP_PATH} DEFINITION LIBRARY_SUFFIX )
70
+ get_target_property (LIBRARY_SUFFIX godot-cpp LIBRARY_SUFFIX )
61
71
set_target_properties (${PROJECT_NAME}
62
72
PROPERTIES
63
73
PREFIX "lib"
0 commit comments