From d1316e499e28b3ffd2d83458278535eb42562329 Mon Sep 17 00:00:00 2001 From: neru Date: Tue, 28 Apr 2026 14:43:25 -0300 Subject: [PATCH] chore: reimplement CUE4Parse build --- CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b3e5e50..221678c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,14 +97,38 @@ add_custom_command(TARGET dbd-unlocker POST_BUILD ) # ------------------------------ -# dumper (VS only) +# VS only # ------------------------------ if(CMAKE_GENERATOR MATCHES "Visual Studio") - include_external_msproject(dbd-dumper "${CMAKE_CURRENT_SOURCE_DIR}/src/dumper/dbd-dumper.csproj") - include_external_msproject(CUE4Parse "${CMAKE_CURRENT_SOURCE_DIR}/vendor/CUE4Parse/CUE4Parse/CUE4Parse.csproj") - set_target_properties(dbd-dumper PROPERTIES VS_PROJECT_TYPE "9A19103F-16F7-4668-BE54-9A1E7A4F7556") - set_target_properties(CUE4Parse PROPERTIES VS_PROJECT_TYPE "9A19103F-16F7-4668-BE54-9A1E7A4F7556") - add_dependencies(dbd-dumper CUE4Parse) - set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT dbd-unlocker) -endif() + # ------------------------------ + # CUE4Parse + # ------------------------------ + set(CUE4PARSE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vendor/CUE4Parse") + # CUE4Parse natives + set(CUE4PARSE_NATIVE_DIR "${CUE4PARSE_DIR}/CUE4Parse-Natives") + add_subdirectory(${CUE4PARSE_NATIVE_DIR}) + + # CUE4Parse C# + set(CUE4PARSE_NET_DIR "${CUE4PARSE_DIR}/CUE4Parse") + set(CUE4PARSE_OUTPUT_DIR "${CUE4PARSE_NET_DIR}/bin/$(Configuration)/net8.0") + + add_custom_target(CUE4Parse-Net + COMMAND dotnet build "${CUE4PARSE_NET_DIR}/CUE4Parse.csproj" + --configuration $(Configuration) + -p:BuildNatives=false + -p:SkipNativeBuild=true + -p:CMakeExitCode=0 + --output "${CUE4PARSE_OUTPUT_DIR}" + WORKING_DIRECTORY "${CUE4PARSE_NET_DIR}" + COMMENT "Building CUE4Parse C# library" + ) + + # dumper + include_external_msproject(dbd-dumper "${CMAKE_CURRENT_SOURCE_DIR}/src/dumper/dbd-dumper.csproj") + set_target_properties(dbd-dumper PROPERTIES VS_PROJECT_TYPE "9A19103F-16F7-4668-BE54-9A1E7A4F7556") + add_dependencies(dbd-dumper CUE4Parse-Natives CUE4Parse-Net) + + # startup project + set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT dbd-unlocker) +endif() \ No newline at end of file