mirror of
https://github.com/ran-j/PS2Recomp.git
synced 2026-09-26 08:51:05 -04:00
e27a658b32
feat: added parallel gs feat: optmized IOP emulator feat: added guest and game fps count feat: small vu1 optmization and guards
81 lines
2.8 KiB
CMake
81 lines
2.8 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
|
|
project(ps2xIOP LANGUAGES CXX)
|
|
|
|
option(PS2X_IOP_BUILD_TESTS "Build ps2xIOP emulator smoke tests" OFF)
|
|
|
|
add_library(ps2_iop STATIC
|
|
src/ps2_path.cpp
|
|
src/iop_module_manager.cpp
|
|
src/iop_subsystem.cpp
|
|
src/emulator/iop_emulator.cpp
|
|
src/emulator/core/iop_cpu.cpp
|
|
src/emulator/core/iop_kernel.cpp
|
|
src/emulator/core/iop_memory.cpp
|
|
src/emulator/services/iop_module_loader.cpp
|
|
src/emulator/services/iop_rpc.cpp
|
|
src/emulator/imports/iop_cdvd.cpp
|
|
src/emulator/imports/iop_heaplib.cpp
|
|
src/emulator/imports/iop_imports.cpp
|
|
src/emulator/imports/iop_intrman.cpp
|
|
src/emulator/imports/iop_ioman.cpp
|
|
src/emulator/imports/iop_loadcore.cpp
|
|
src/emulator/imports/iop_stdio.cpp
|
|
src/emulator/imports/iop_sysclib.cpp
|
|
src/emulator/imports/iop_sysmem.cpp
|
|
src/emulator/imports/iop_timrman.cpp
|
|
src/emulator/imports/iop_vblank.cpp
|
|
src/modules/dbcman.cpp
|
|
src/modules/libsd.cpp
|
|
src/modules/mcserv.cpp
|
|
)
|
|
|
|
target_compile_features(ps2_iop PUBLIC cxx_std_20)
|
|
|
|
target_include_directories(ps2_iop
|
|
PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:include>
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
)
|
|
|
|
add_library(ps2x::iop ALIAS ps2_iop)
|
|
|
|
if(PS2X_IOP_BUILD_TESTS)
|
|
enable_testing()
|
|
add_executable(ps2_iop_emulator_tests tests/iop_emulator_tests.cpp)
|
|
target_link_libraries(ps2_iop_emulator_tests PRIVATE ps2_iop)
|
|
add_test(NAME ps2_iop_emulator_tests COMMAND ps2_iop_emulator_tests)
|
|
|
|
add_executable(ps2_iop_import_tests tests/iop_import_tests.cpp)
|
|
target_link_libraries(ps2_iop_import_tests PRIVATE ps2_iop)
|
|
target_include_directories(ps2_iop_import_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
add_test(NAME ps2_iop_import_tests COMMAND ps2_iop_import_tests)
|
|
|
|
add_executable(ps2_iop_compatibility_tests tests/iop_compatibility_tests.cpp)
|
|
target_link_libraries(ps2_iop_compatibility_tests PRIVATE ps2_iop)
|
|
add_test(NAME ps2_iop_compatibility_tests COMMAND ps2_iop_compatibility_tests)
|
|
|
|
add_executable(ps2_iop_import_version_tests tests/iop_import_version_tests.cpp)
|
|
target_link_libraries(ps2_iop_import_version_tests PRIVATE ps2_iop)
|
|
target_include_directories(ps2_iop_import_version_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
add_test(NAME ps2_iop_import_version_tests COMMAND ps2_iop_import_version_tests)
|
|
|
|
add_executable(ps2_iop_execution_tests tests/iop_execution_tests.cpp)
|
|
target_link_libraries(ps2_iop_execution_tests PRIVATE ps2_iop)
|
|
target_include_directories(ps2_iop_execution_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
add_test(NAME ps2_iop_execution_tests COMMAND ps2_iop_execution_tests)
|
|
|
|
endif()
|
|
|
|
install(TARGETS ps2_iop
|
|
ARCHIVE DESTINATION lib
|
|
LIBRARY DESTINATION lib
|
|
RUNTIME DESTINATION bin
|
|
)
|
|
|
|
install(DIRECTORY include/
|
|
DESTINATION include
|
|
)
|