86 lines
2.7 KiB
CMake
86 lines
2.7 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
project(kaizen)
|
|
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
find_package(SDL2 REQUIRED)
|
|
find_package(fmt REQUIRED)
|
|
find_package(mio REQUIRED)
|
|
find_package(nlohmann_json REQUIRED)
|
|
|
|
option(RAPIDJSON_BUILD_DOC "Build rapidjson documentation." OFF)
|
|
option(RAPIDJSON_BUILD_EXAMPLES "Build rapidjson examples." OFF)
|
|
option(RAPIDJSON_BUILD_TESTS "Build rapidjson perftests and unittests." OFF)
|
|
|
|
include_directories(
|
|
src
|
|
src/utils
|
|
src/frontend
|
|
src/frontend/imgui
|
|
src/backend
|
|
src/backend/core
|
|
src/backend/core/mmio
|
|
src/backend/core/registers
|
|
src/backend/core/rsp
|
|
external
|
|
external/xbyak
|
|
external/parallel-rdp
|
|
external/parallel-rdp/parallel-rdp-standalone/parallel-rdp
|
|
external/parallel-rdp/parallel-rdp-standalone/volk
|
|
external/parallel-rdp/parallel-rdp-standalone/spirv-cross
|
|
external/parallel-rdp/parallel-rdp-standalone/vulkan
|
|
external/parallel-rdp/parallel-rdp-standalone/vulkan-headers/include
|
|
external/parallel-rdp/parallel-rdp-standalone/util
|
|
external/nativefiledialog-extended/src/include
|
|
external/imgui/imgui
|
|
external/imgui/imgui/backends
|
|
external/discord-rpc/include
|
|
external/unarr
|
|
${SDL2_INCLUDE_DIRS}
|
|
)
|
|
|
|
add_compile_definitions(SIMD_SUPPORT)
|
|
if(WIN32)
|
|
add_definitions(-DNOMINMAX)
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
endif ()
|
|
add_compile_options(-mssse3 -msse4.1)
|
|
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
|
|
#add_compile_options(-fsanitize=address -fsanitize=undefined)
|
|
#add_link_options(-fsanitize=address -fsanitize=undefined)
|
|
endif()
|
|
|
|
add_subdirectory(src/frontend)
|
|
add_subdirectory(src/frontend/imgui)
|
|
add_subdirectory(src/backend)
|
|
add_subdirectory(src/backend/netplay)
|
|
add_subdirectory(src/backend/core)
|
|
add_subdirectory(src/backend/core/interpreter)
|
|
add_subdirectory(src/backend/core/JIT)
|
|
add_subdirectory(src/backend/core/mem)
|
|
add_subdirectory(src/backend/core/mmio)
|
|
add_subdirectory(src/backend/core/registers)
|
|
add_subdirectory(src/backend/core/rsp)
|
|
add_subdirectory(external/discord-rpc)
|
|
add_subdirectory(external/imgui)
|
|
add_subdirectory(external/nativefiledialog-extended)
|
|
add_subdirectory(external/parallel-rdp)
|
|
add_subdirectory(external/unarr)
|
|
|
|
add_executable(kaizen main.cpp)
|
|
|
|
if(MSVC)
|
|
target_compile_options(parallel-rdp PUBLIC /EHa)
|
|
endif()
|
|
|
|
file(COPY ${PROJECT_SOURCE_DIR}/resources/ DESTINATION ${PROJECT_BINARY_DIR}/resources/)
|
|
file(REMOVE
|
|
${PROJECT_BINARY_DIR}/resources/mario.png
|
|
${PROJECT_BINARY_DIR}/resources/shader.frag
|
|
${PROJECT_BINARY_DIR}/resources/shader.vert)
|
|
|
|
target_link_libraries(kaizen PUBLIC frontend frontend-imgui
|
|
discord-rpc imgui nfd parallel-rdp backend fmt::fmt mio::mio nlohmann_json::nlohmann_json core registers jit interpreter mem unarr mmio rsp SDL2::SDL2main SDL2::SDL2)
|
|
target_compile_options(kaizen PUBLIC -Wextra)
|