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 <noreply@anthropic.com>
This commit is contained in:
SandstromPL 2026-10-14 00:44:56 +05:30
parent dacd78525e
commit 299a736b54
3 changed files with 14 additions and 4 deletions

View File

@ -0,0 +1,2 @@
include(${CMAKE_CURRENT_SOURCE_DIR}/../libSceCesCs/CesLibrary.cmake)
add_sce_ces_library(libSceCesCs-module)

View File

@ -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:$<TARGET_FILE_DIR:libSceCesCs>")
endif()
endif()

View File

@ -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()