From 299a736b5422f40b9999ba370cba2125549ec53f Mon Sep 17 00:00:00 2001 From: SandstromPL Date: Wed, 14 Oct 2026 00:44:56 +0530 Subject: [PATCH] feat(libSceCesCs): build libSceCesCs-module from the libSceCesCs source Titles that link the character conversion library under its module name need libSceCesCs-module.prx, which nothing built: Void Terrarium (PPSA03061, #5055) and Call of Duty: Black Ops (PPSA34501, #5389) were run with a copy of libSceCesCs.prx under that name. Both libraries are now built from the same source by add_sce_ces_library, as libScePsml and libSceFont-module are, and guest_ces_module runs the CesCs test against the module-named library. Co-Authored-By: Claude Opus 5.5 --- core/libs/prx/libSceCesCs-module/CMakeLists.txt | 2 ++ core/libs/prx/libSceCesCs/CMakeLists.txt | 11 +++++++---- core/libs/prx/libSceCesCs/CesLibrary.cmake | 5 +++++ 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 core/libs/prx/libSceCesCs-module/CMakeLists.txt create mode 100644 core/libs/prx/libSceCesCs/CesLibrary.cmake diff --git a/core/libs/prx/libSceCesCs-module/CMakeLists.txt b/core/libs/prx/libSceCesCs-module/CMakeLists.txt new file mode 100644 index 000000000..64ae3a7a2 --- /dev/null +++ b/core/libs/prx/libSceCesCs-module/CMakeLists.txt @@ -0,0 +1,2 @@ +include(${CMAKE_CURRENT_SOURCE_DIR}/../libSceCesCs/CesLibrary.cmake) +add_sce_ces_library(libSceCesCs-module) diff --git a/core/libs/prx/libSceCesCs/CMakeLists.txt b/core/libs/prx/libSceCesCs/CMakeLists.txt index 82fbba577..674db3453 100644 --- a/core/libs/prx/libSceCesCs/CMakeLists.txt +++ b/core/libs/prx/libSceCesCs/CMakeLists.txt @@ -1,14 +1,17 @@ -add_library(libSceCesCs SHARED EXCLUDE_FROM_ALL Export.cpp) -target_include_directories(libSceCesCs PRIVATE ${LIBS_INCLUDE_DIR}) -configure_windows_unwind(libSceCesCs) +include(${CMAKE_CURRENT_SOURCE_DIR}/CesLibrary.cmake) +add_sce_ces_library(libSceCesCs) if(BUILD_TESTING) add_test_executable(guest_ces_tests ${LIBS_INCLUDE_DIR}/tests/GuestCes.cpp) target_include_directories(guest_ces_tests PRIVATE ${LIBS_INCLUDE_DIR}) target_link_libraries(guest_ces_tests PRIVATE libSceCesCs) add_test(NAME guest_ces COMMAND guest_ces_tests) + add_test_executable(guest_ces_module_tests ${LIBS_INCLUDE_DIR}/tests/GuestCes.cpp) + target_include_directories(guest_ces_module_tests PRIVATE ${LIBS_INCLUDE_DIR}) + target_link_libraries(guest_ces_module_tests PRIVATE libSceCesCs-module) + add_test(NAME guest_ces_module COMMAND guest_ces_module_tests) if(WIN32) - set_tests_properties(guest_ces PROPERTIES ENVIRONMENT_MODIFICATION + set_tests_properties(guest_ces guest_ces_module PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$") endif() endif() diff --git a/core/libs/prx/libSceCesCs/CesLibrary.cmake b/core/libs/prx/libSceCesCs/CesLibrary.cmake new file mode 100644 index 000000000..dcad1c7bd --- /dev/null +++ b/core/libs/prx/libSceCesCs/CesLibrary.cmake @@ -0,0 +1,5 @@ +function(add_sce_ces_library target) + add_library(${target} SHARED EXCLUDE_FROM_ALL ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/Export.cpp) + target_include_directories(${target} PRIVATE ${LIBS_INCLUDE_DIR}) + configure_windows_unwind(${target}) +endfunction()