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)
    add_test_executable(guest_ces_dbcs_tests ${LIBS_INCLUDE_DIR}/tests/GuestCesDbcs.cpp)
    target_include_directories(guest_ces_dbcs_tests PRIVATE ${LIBS_INCLUDE_DIR})
    target_link_libraries(guest_ces_dbcs_tests PRIVATE libSceCesCs)
    add_test(NAME guest_ces_dbcs COMMAND guest_ces_dbcs_tests)
    add_test_executable(guest_ces_dbcs_module_tests ${LIBS_INCLUDE_DIR}/tests/GuestCesDbcs.cpp)
    target_include_directories(guest_ces_dbcs_module_tests PRIVATE ${LIBS_INCLUDE_DIR})
    target_link_libraries(guest_ces_dbcs_module_tests PRIVATE libSceCesCs-module)
    add_test(NAME guest_ces_dbcs_module COMMAND guest_ces_dbcs_module_tests)
    if(WIN32)
        set_tests_properties(guest_ces guest_ces_module guest_ces_dbcs guest_ces_dbcs_module PROPERTIES ENVIRONMENT_MODIFICATION
            "PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceCesCs>")
    endif()
endif()

if(BUILD_TESTING)
    foreach(variant IN ITEMS unicode unicode_module)
        add_test_executable(guest_ces_${variant}_tests ${LIBS_INCLUDE_DIR}/tests/GuestCesUnicode.cpp)
        target_include_directories(guest_ces_${variant}_tests PRIVATE ${LIBS_INCLUDE_DIR})
        if(variant STREQUAL "unicode_module")
            target_link_libraries(guest_ces_${variant}_tests PRIVATE libSceCesCs-module)
        else()
            target_link_libraries(guest_ces_${variant}_tests PRIVATE libSceCesCs)
        endif()
        add_test(NAME guest_ces_${variant} COMMAND guest_ces_${variant}_tests)
    endforeach()
    if(WIN32)
        set_tests_properties(guest_ces_unicode guest_ces_unicode_module PROPERTIES ENVIRONMENT_MODIFICATION
            "PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceCesCs>")
    endif()
endif()
