Files
ReSkate/cmake/Core.cmake
T
AyeZeeBB 43b998f285 Built-in content: Board Break and Road Rash, replacing their Thunderstore mods, packed with zstd
Fourth Studio's Board Break pack (ten decks and every sound) and Road Rash wounds are built into
ReSkate.dll beside the FPV drone, unpacked under Mods/.reskate-builtin and always on.

- The Thunderstore copies (Fourth_Studio-Board_Break_Pack, Fourth_Studio-Road_Rash and the
  deprecated Fourth_Studio-Board_Break, or the same put in by hand) are moved to the Recycle Bin
  as the launcher starts and dropped from mods.json; the merge leaves them out should one still
  be there, and the Thunderstore browser no longer lists, updates or installs them, a dependency
  on one included.
- Board Break's deck list, sounds and deck settings look in the built-in packs too.
- Names with spaces inside them (Board Break's "Body Impact 1.wav") unpack.
- The build makes each zip in assets/builtin into one zstd stream (ReSkateBuiltinPacker,
  Engine/Vfs/builtin_pack_format.h), which the DLL carries: repeated files across a pack cost next
  to nothing. Board Break 15.0 -> 5.4 MB, the drone 6.0 -> 5.4 MB, Road Rash 36.1 -> 34.2 MB;
  ReSkate.dll 86 -> 70 MB. Plain zips still unpack.
- Tests: the mods taken for built-in ones and their retirement, and a pack unpacking to exactly
  its files, refusing one that leaves its folder or is cut short (RESKATE_BUILTIN_PACKS also
  unpacks the packs a build made).
2026-10-16 18:38:46 -05:00

132 lines
5.7 KiB
CMake

if(WIN32)
add_library(dingosdk_hooks STATIC
Engine/Core/Hooks/hooks.cpp)
target_link_libraries(dingosdk_hooks PRIVATE dingosdk_detours)
endif()
add_library(dingosdk_launcher_support STATIC
Engine/Core/Platform/launcher_support.cpp
Engine/Core/Platform/launcher_pe.cpp
$<$<BOOL:${WIN32}>:Engine/Core/Platform/launcher_injection.cpp>)
if(WIN32)
target_link_libraries(dingosdk_launcher_support PUBLIC bcrypt)
else()
find_package(OpenSSL REQUIRED)
target_link_libraries(dingosdk_launcher_support PUBLIC OpenSSL::Crypto)
endif()
if(WIN32)
# Checks that the running game is the supported Skate.exe build.
add_library(dingosdk_supported_build STATIC Engine/Game/Build/image_identity.cpp)
target_link_libraries(dingosdk_supported_build PUBLIC bcrypt)
endif()
add_library(dingosdk_console_core STATIC
Engine/Core/Console/console_core.cpp
Engine/Core/Console/command_registry.cpp
Engine/Core/Console/console_activity.cpp)
add_library(dingosdk_json STATIC
Engine/Core/Json/json.cpp)
# The bad-word filter (Engine/Core/Text/word_filter.h); its words come from the backend.
add_library(dingosdk_word_filter STATIC Engine/Core/Text/word_filter.cpp)
target_include_directories(dingosdk_json SYSTEM PRIVATE External)
if(WIN32)
add_library(dingosdk_logging STATIC
Engine/Core/Log/logger.cpp
Engine/Core/Log/banner.cpp
Engine/Core/Log/events.cpp
Engine/Core/Log/paths.cpp
Engine/Core/Log/crash.cpp)
target_link_libraries(dingosdk_logging PUBLIC dingosdk_console_core PRIVATE shell32 ole32)
target_include_directories(dingosdk_logging SYSTEM PRIVATE External/spdlog/include External)
target_compile_definitions(dingosdk_logging PRIVATE SPDLOG_USE_STD_FORMAT SPDLOG_WCHAR_FILENAMES)
# The performance profiler: zones, frame timing, thread CPU use and the stack sampler
# (Engine/Core/Profiling/profiler.h). Shared by the overlay and the runtime.
add_library(dingosdk_profiler STATIC
Engine/Core/Profiling/profiler.cpp
Engine/Core/Profiling/sampler.cpp)
target_link_libraries(dingosdk_profiler PUBLIC dingosdk_logging PRIVATE dbghelp)
add_library(dingosdk_storage STATIC Engine/Core/Storage/save_database.cpp)
target_link_libraries(dingosdk_storage PUBLIC dingosdk_json PRIVATE dingosdk_sqlite)
endif()
add_library(dingosdk_frostbite STATIC
Engine/Resource/binary_io.cpp
Engine/Resource/binary_bundle.cpp
Engine/Resource/cas_codec.cpp
Engine/Resource/ebx_document.cpp
Engine/Resource/ebx_merge.cpp
Engine/Resource/material_grid.cpp
Engine/Resource/shader_lookup.cpp
Engine/Resource/bundle_ref_table.cpp
Engine/Resource/ebx_writer.cpp
Engine/Resource/toc.cpp
Engine/Resource/texture.cpp
Engine/Resource/mesh_set.cpp
Engine/Resource/skeleton_asset.cpp)
target_include_directories(dingosdk_frostbite SYSTEM PRIVATE External/bcdec)
target_link_libraries(dingosdk_frostbite PRIVATE dingosdk_lz4 dingosdk_zstd dingosdk_miniz)
add_library(dingosdk_native_db STATIC Engine/Vfs/native_db.cpp)
if(WIN32)
add_library(dingosdk_initfs STATIC Engine/Vfs/initfs.cpp)
target_link_libraries(dingosdk_initfs PUBLIC dingosdk_launcher_support dingosdk_json PRIVATE dingosdk_native_db bcrypt)
# The Mods folder list and mods.json writer, without the merge: shared with
# the launcher's mod manager.
add_library(dingosdk_mod_list STATIC Engine/Vfs/mod_list.cpp)
target_link_libraries(dingosdk_mod_list PUBLIC dingosdk_json)
endif()
# Read access to the installed game's cas archives.
add_library(dingosdk_game_archives STATIC Engine/Vfs/game_archives.cpp Engine/Vfs/game_bundles.cpp
Engine/Vfs/item_thumbnails.cpp Engine/Vfs/game_textures.cpp)
target_link_libraries(dingosdk_game_archives PUBLIC dingosdk_native_db dingosdk_frostbite)
if(WIN32)
add_library(dingosdk_mods STATIC
Engine/Vfs/mod_catalog.cpp
Engine/Vfs/mod_merge.cpp
Engine/Vfs/mod_merge_files.cpp
Engine/Vfs/mod_merge_stamp.cpp
Engine/Vfs/mod_merge_cas_store.cpp
Engine/Vfs/mod_merge_combine.cpp
Engine/Vfs/mod_merge_overrides.cpp
Engine/Vfs/mod_merge_grid.cpp
Engine/Vfs/mod_merge_load_screens.cpp
Engine/Vfs/mod_music.cpp
Engine/Vfs/mod_scoring.cpp
Engine/Vfs/mod_store_copies.cpp
Engine/Vfs/builtin_packs.cpp)
target_link_libraries(dingosdk_mods PUBLIC dingosdk_json dingosdk_mod_list PRIVATE dingosdk_game_archives dingosdk_native_db dingosdk_frostbite dingosdk_content_cache dingosdk_miniz dingosdk_zstd shell32 bcrypt)
add_library(dingosdk_custom_scripts STATIC Engine/Scripting/custom_scripts.cpp)
target_link_libraries(dingosdk_custom_scripts PUBLIC dingosdk_json PRIVATE dingosdk_initfs)
# HTTPS downloads shared by the park preview and content cache packs.
add_library(dingosdk_https STATIC Engine/Vfs/https_download.cpp)
target_link_libraries(dingosdk_https PUBLIC winhttp)
endif()
# The live game's content cache: the launcher installs it, the runtime reads
# catalogues from it (Engine/Vfs/content_cache.h).
add_library(dingosdk_content_cache STATIC Engine/Vfs/content_cache.cpp Engine/Vfs/content_catalogs.cpp)
target_link_libraries(dingosdk_content_cache PUBLIC dingosdk_json)
if(WIN32)
add_library(dingosdk_content_cache_install STATIC Engine/Vfs/content_cache_install.cpp)
target_link_libraries(dingosdk_content_cache_install PUBLIC dingosdk_content_cache
PRIVATE dingosdk_launcher_support dingosdk_https dingosdk_miniz)
endif()
# World layers read from the installed level data, cached per game build.
add_library(dingosdk_world_layer_scan STATIC Engine/Vfs/world_layer_scan.cpp)
target_link_libraries(dingosdk_world_layer_scan PUBLIC dingosdk_json PRIVATE dingosdk_game_archives dingosdk_content_cache)