diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ebfe29dc2..f826a1d86b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -384,20 +384,31 @@ if (CMAKE_CXX_LINK_GROUP_USING_RESCAN_SUPPORTED OR CMAKE_LINK_GROUP_USING_RESCAN set(JSYSTEM_LINK_LIBRARIES "$") endif () -set(DUSK_FILES src/dusk/main.cpp ${GAME_BASE_FILES} ${GAME_DEBUG_FILES} ${miniz_SOURCE_DIR}/miniz.c) +set(_dusklight_all_files src/dusk/main.cpp ${GAME_BASE_FILES} ${GAME_DEBUG_FILES}) +set(DUSK_INTERNAL_FILES ${_dusklight_all_files}) +list(FILTER DUSK_INTERNAL_FILES INCLUDE REGEX "^src/dusk/") +set(GAME_FILES ${_dusklight_all_files}) +list(FILTER GAME_FILES EXCLUDE REGEX "^src/dusk/") + +add_library(dusk_internal OBJECT ${DUSK_INTERNAL_FILES}) +if (ENABLE_ASAN) + target_sources(dusk_internal PRIVATE src/dusk/asan_options.c) +endif () +target_compile_definitions(dusk_internal PRIVATE ${GAME_COMPILE_DEFS}) +target_include_directories(dusk_internal PRIVATE ${miniz_SOURCE_DIR}) +target_link_libraries(dusk_internal PRIVATE aurora::main ${GAME_LIBS} ${JSYSTEM_LIBRARIES}) +target_precompile_headers(dusk_internal PRIVATE "$<$:${CMAKE_SOURCE_DIR}/include/dusk_pch.hpp>") + if(ANDROID) - add_library(dusklight SHARED ${DUSK_FILES}) + add_library(dusklight SHARED ${GAME_FILES} ${miniz_SOURCE_DIR}/miniz.c) else () - add_executable(dusklight ${DUSK_FILES}) + add_executable(dusklight ${GAME_FILES} ${miniz_SOURCE_DIR}/miniz.c) endif () borealis_configure_android_application(dusklight) -if (ENABLE_ASAN) - target_sources(dusklight PRIVATE src/dusk/asan_options.c) -endif () target_compile_definitions(dusklight PRIVATE ${GAME_COMPILE_DEFS}) target_include_directories(dusklight PRIVATE ${miniz_SOURCE_DIR}) -target_link_libraries(dusklight PRIVATE aurora::main ${GAME_LIBS} ${JSYSTEM_LINK_LIBRARIES}) +target_link_libraries(dusklight PRIVATE dusk_internal aurora::main ${GAME_LIBS} ${JSYSTEM_LINK_LIBRARIES}) target_precompile_headers(dusklight PRIVATE "$<$:${CMAKE_SOURCE_DIR}/include/dusk_pch.hpp>") if (DUSK_ENABLE_CODE_MODS) @@ -433,10 +444,7 @@ if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU") endif () if (DUSK_GAME_ABI_INLINE_OPTIONS) - set(_game_abi_files ${GAME_BASE_FILES} ${GAME_DEBUG_FILES}) - list(FILTER _game_abi_files EXCLUDE REGEX "^src/dusk/") - set_property(SOURCE ${_game_abi_files} APPEND PROPERTY - COMPILE_OPTIONS ${DUSK_GAME_ABI_INLINE_OPTIONS}) + target_compile_options(dusklight PRIVATE ${DUSK_GAME_ABI_INLINE_OPTIONS}) foreach(jsystem_lib IN LISTS JSYSTEM_LIBRARIES) target_compile_options(${jsystem_lib} PRIVATE ${DUSK_GAME_ABI_INLINE_OPTIONS}) diff --git a/CMakePresets.json b/CMakePresets.json index 45a6522625..500fb5de77 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -19,7 +19,11 @@ "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", - "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreadedDLL" + "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreadedDLL", + "TRACY_ENABLE": { + "type": "BOOL", + "value": false + } } }, { diff --git a/cmake/AndroidExports.cmake b/cmake/AndroidExports.cmake index 66e80d3f4a..a71c18a02b 100644 --- a/cmake/AndroidExports.cmake +++ b/cmake/AndroidExports.cmake @@ -39,8 +39,6 @@ function(setup_android_exports target) --format version-script --exclude cmake_pch --exclude miniz - --exclude asan_options - --exclude src/dusk # Resolved from the Java side; the SDL ones live in the statically-linked # SDL archive, outside the provenance scan. --extra-sym JNI_OnLoad diff --git a/cmake/AppleExports.cmake b/cmake/AppleExports.cmake index 2c78939811..6397e353a5 100644 --- a/cmake/AppleExports.cmake +++ b/cmake/AppleExports.cmake @@ -46,8 +46,6 @@ function(setup_apple_exports target) --out "${_exp}" --exclude cmake_pch --exclude miniz - --exclude asan_options - --exclude src/dusk ${_sdk_args} COMMENT "Generating dusklight exports" VERBATIM) diff --git a/cmake/SymbolManifest.cmake b/cmake/SymbolManifest.cmake index 48935acdf6..7c7e09eaa1 100644 --- a/cmake/SymbolManifest.cmake +++ b/cmake/SymbolManifest.cmake @@ -2,7 +2,7 @@ include_guard(GLOBAL) get_filename_component(_SYMBOL_MANIFEST_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) -set(_SYMGEN_VERSION "1.3.3") +set(_SYMGEN_VERSION "1.3.4") set(_SYMGEN_RELEASE_BASE_URL "https://github.com/encounter/symgen/releases/download/v${_SYMGEN_VERSION}") set(SYMGEN_PATH "" CACHE FILEPATH "Path to a symgen executable; empty downloads the pinned release") mark_as_advanced(SYMGEN_PATH) @@ -15,32 +15,32 @@ function(symgen_host_asset out_name out_hash) if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") if (_host_processor MATCHES "^(arm64|aarch64)$") set(_asset "symgen-macos-arm64") - set(_asset_hash "SHA256=e8420df1160242c83bd0e5197efeeb25ceb9fecc69dbc82bdc4927476381e948") + set(_asset_hash "SHA256=983ef6278d30bee38f240f451ca736fd294da0e5705ee15029accac5c7a33829") elseif (_host_processor MATCHES "^(x86_64|amd64)$") set(_asset "symgen-macos-x86_64") - set(_asset_hash "SHA256=e51d13bbf0e982d1519f56850ff3c7b5910ca5a7095dd5a82cd8e59750e2d013") + set(_asset_hash "SHA256=b6ab1720a4f04fadcf291f42d133e2ee68ef2e9a75d143e51584929e808af8a2") endif () elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") if (_host_processor MATCHES "^(aarch64|arm64)$") set(_asset "symgen-linux-aarch64") - set(_asset_hash "SHA256=331190dd21ecee12a52e857b7f90a8b3e0a114608173813f7df74a31cf783f70") + set(_asset_hash "SHA256=ba84486ff1ceb753973e6213c9bc5f195b5ff6f220f5d3322fd861966cdc791c") elseif (_host_processor MATCHES "^(x86_64|amd64)$") set(_asset "symgen-linux-x86_64") - set(_asset_hash "SHA256=d727e0ba43242f92a92865af1b69c47aa9d81a0242c4570ce53b90e1ecd15e84") + set(_asset_hash "SHA256=8b81a00a2ef8f5dd4b59adba1badfaca57e472bf272516bc12c4625cefb37718") elseif (_host_processor MATCHES "^(i[3-6]86|x86)$") set(_asset "symgen-linux-i686") - set(_asset_hash "SHA256=0c9f94d36b7fa46d15a199c9d0f1a633b73eb7d9c02621a6a76a676b83a135c7") + set(_asset_hash "SHA256=01aa85d84148a6806fdf69839dea7e962e6ac46956aed63b9ecb7d596f179f93") endif () elseif (CMAKE_HOST_WIN32) if (_host_processor MATCHES "^(arm64|aarch64)$") set(_asset "symgen-windows-arm64.exe") - set(_asset_hash "SHA256=c699192957e2086ed68912ed39fa77858e1ae894476ab8b557711804cf2aa7cb") + set(_asset_hash "SHA256=e116099f859177d7e29fc3444d67083596330e5c4fb3a0461b21402c89249d96") elseif (_host_processor MATCHES "^(x86_64|amd64)$") set(_asset "symgen-windows-x86_64.exe") - set(_asset_hash "SHA256=6d56a45617c75065ab7a3192d09ca52ff735baf5637b0899f446138d46acc310") + set(_asset_hash "SHA256=57ef1c2f563e33fa4915c40194c4ced540f985c48d9cf081047c6bbcb585fa37") elseif (_host_processor MATCHES "^(i[3-6]86|x86)$") set(_asset "symgen-windows-x86.exe") - set(_asset_hash "SHA256=6cccc3a8d29e7525a4d1ade1dc4d89327b7c3002a604ab1c7decb43eea6fd4ab") + set(_asset_hash "SHA256=cc0ba337c798d3f63d8acbb2d16d531d0c2da878fbdd2b6307702334ec880528") endif () endif () diff --git a/cmake/WindowsExports.cmake b/cmake/WindowsExports.cmake index 4596ac7b69..dae7f067c0 100644 --- a/cmake/WindowsExports.cmake +++ b/cmake/WindowsExports.cmake @@ -62,8 +62,6 @@ function(setup_windows_exports target) --out "${_def}" --exclude cmake_pch --exclude miniz - --exclude asan_options - --exclude src/dusk --max-exports 58000 ${_sdk_args} ${_forward_args} diff --git a/extern/aurora b/extern/aurora index 2c9c95cfed..f8573d34e6 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit 2c9c95cfed9a06610addcb0c00ad5e366e4e8c0d +Subproject commit f8573d34e632aea81039526a728b34f373d247ef