@@ -107,7 +107,8 @@ function( godotcpp_options )
107107 set ( GODOT_ARCH "" CACHE STRING "Target CPU Architecture" )
108108 set_property ( CACHE GODOT_ARCH PROPERTY STRINGS ${ARCH_LIST} )
109109
110- #TODO threads
110+ set ( GODOT_THREADS "" CACHE BOOL "Enable threading support" )
111+
111112 #TODO compiledb
112113 #TODO compiledb_file
113114
@@ -262,6 +263,8 @@ function( godotcpp_generate )
262263
263264 set ( DISABLE_EXCEPTIONS "$<BOOL :${GODOT_DISABLE_EXCEPTIONS} >" )
264265
266+ set ( THREADS_ENABLED "$<BOOL :${GODOT_THREADS} >" )
267+
265268 # GODOT_DEV_BUILD
266269 set ( RELEASE_TYPES "Release;MinSizeRel" )
267270 get_property ( IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG )
@@ -271,8 +274,6 @@ function( godotcpp_generate )
271274 message ( WARNING "=> GODOT_DEV_BUILD implies a Debug-like build but CMAKE_BUILD_TYPE is '${CMAKE_BUILD_TYPE} '" )
272275 endif ()
273276 set ( IS_DEV_BUILD "$<BOOL :${GODOT_DEV_BUILD} >" )
274- # The .dev portion of the name if GODOT_DEV_BUILD is true.
275- set ( DEV_TAG "$<${IS_DEV_BUILD} :.dev >" )
276277
277278 ### Define our godot-cpp library targets
278279 foreach ( TARGET_ALIAS template_debug template_release editor )
@@ -282,6 +283,17 @@ function( godotcpp_generate )
282283 set ( DEBUG_FEATURES "$<NOT :$<STREQUAL :${TARGET_ALIAS} ,template_release >>" )
283284 set ( HOT_RELOAD "$<IF :${HOT_RELOAD -UNSET },${DEBUG_FEATURES} ,$<BOOL :${GODOT_USE_HOT_RELOAD} >>" )
284285
286+ # Suffix
287+ string ( JOIN "" GODOT_SUFFIX
288+ "$<1:.${SYSTEM_NAME} >"
289+ "$<1:.${TARGET_ALIAS} >"
290+ "$<${IS_DEV_BUILD} :.dev >"
291+ "$<$<STREQUAL :${GODOT_PRECISION} ,double >:.double >"
292+ "$<1:.${SYSTEM_ARCH} >"
293+ # TODO IOS_SIMULATOR
294+ "$<$<NOT :${THREADS_ENABLED} >:.nothreads >"
295+ )
296+
285297 # the godot-cpp.* library targets
286298 add_library ( ${TARGET_NAME} STATIC EXCLUDE_FROM_ALL )
287299 add_library ( godot-cpp::${TARGET_ALIAS} ALIAS ${TARGET_NAME} )
@@ -310,14 +322,17 @@ function( godotcpp_generate )
310322 POSITION_INDEPENDENT_CODE ON
311323 BUILD_RPATH_USE_ORIGIN ON
312324
313- PREFIX lib
314- OUTPUT_NAME "${PROJECT_NAME} .${SYSTEM_NAME} .${TARGET_ALIAS}${DEV_TAG} .${SYSTEM_ARCH} "
325+ PREFIX "lib"
326+ OUTPUT_NAME "${PROJECT_NAME}${GODOT_SUFFIX} "
327+
315328 ARCHIVE_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR} /bin >"
316329
317330 # Things that are handy to know for dependent targets
318- GODOT_PLATFORM "${SYSTEM_NAME} "
319- GODOT_TARGET "${TARGET_ALIAS} "
320- GODOT_ARCH "${SYSTEM_ARCH} "
331+ GODOT_PLATFORM "${SYSTEM_NAME} "
332+ GODOT_TARGET "${TARGET_ALIAS} "
333+ GODOT_ARCH "${SYSTEM_ARCH} "
334+ GODOT_PRECISION "${GODOT_PRECISION} "
335+ GODOT_SUFFIX "${GODOT_SUFFIX} "
321336
322337 # Some IDE's respect this property to logically group targets
323338 FOLDER "godot-cpp"
0 commit comments