make build from root dir as to simplify where the binary ends up being
This commit is contained in:
141
CMakeLists.txt
141
CMakeLists.txt
@@ -1,3 +1,142 @@
|
|||||||
cmake_minimum_required(VERSION 3.20)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
project(kaizen)
|
||||||
|
|
||||||
add_subdirectory(src/frontend)
|
if (WIN32)
|
||||||
|
add_compile_definitions(NOMINMAX)
|
||||||
|
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_compile_definitions(VK_NO_PROTOTYPES)
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0)
|
||||||
|
enable_language(OBJC)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
src/frontend
|
||||||
|
src/
|
||||||
|
.
|
||||||
|
src/utils
|
||||||
|
src/backend
|
||||||
|
src/backend/core
|
||||||
|
src/backend/core/mmio
|
||||||
|
src/backend/core/mmio/PIF
|
||||||
|
src/backend/core/registers
|
||||||
|
src/backend/core/rsp
|
||||||
|
external
|
||||||
|
external/discord_rpc/include
|
||||||
|
external/xbyak
|
||||||
|
external/mio/include
|
||||||
|
external/json/include
|
||||||
|
external/parallel-rdp
|
||||||
|
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/unarr
|
||||||
|
external/SDL/include
|
||||||
|
external/sse2neon
|
||||||
|
external/capstone/include
|
||||||
|
external/imgui
|
||||||
|
external/imgui/backends
|
||||||
|
external/cflags/include
|
||||||
|
external/mINI/src/
|
||||||
|
src/frontend/ImGuiImpl/
|
||||||
|
)
|
||||||
|
|
||||||
|
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)
|
||||||
|
option(BUILD_SHARED_LIBS OFF)
|
||||||
|
|
||||||
|
include(CheckCCompilerFlag)
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
|
||||||
|
set(X86 TRUE)
|
||||||
|
message("Compiling on x86")
|
||||||
|
else()
|
||||||
|
set(X86 FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64)|(AARCH64)|(arm64)|(ARM64)")
|
||||||
|
set(ARM64 TRUE)
|
||||||
|
message("Compiling on Arm64")
|
||||||
|
else()
|
||||||
|
set(ARM64 FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(SIMD_FLAG NULL)
|
||||||
|
|
||||||
|
if(ARM64 AND APPLE)
|
||||||
|
message("Defining USE_NEON...")
|
||||||
|
add_compile_definitions(USE_NEON)
|
||||||
|
add_compile_definitions(SIMD_SUPPORT)
|
||||||
|
elseif(NOT ARM64)
|
||||||
|
if(MSVC)
|
||||||
|
set(SIMD_FLAG /arch:AVX)
|
||||||
|
else()
|
||||||
|
set(SIMD_FLAG -msse4.1)
|
||||||
|
endif()
|
||||||
|
check_c_compiler_flag(${SIMD_FLAG} HAS_SIMD)
|
||||||
|
else()
|
||||||
|
message("Compiling on an unsupported Arm device! Good Luck!")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (HAS_SIMD)
|
||||||
|
message("Defining SIMD_SUPPORT...")
|
||||||
|
add_compile_definitions(SIMD_SUPPORT)
|
||||||
|
add_compile_options(${SIMD_FLAG})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (${CMAKE_BUILD_TYPE} MATCHES Debug)
|
||||||
|
add_compile_definitions(VULKAN_DEBUG)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_subdirectory(external/discord_rpc)
|
||||||
|
add_subdirectory(external/mio)
|
||||||
|
add_subdirectory(src/backend)
|
||||||
|
add_subdirectory(external/parallel-rdp)
|
||||||
|
add_subdirectory(external/unarr)
|
||||||
|
add_subdirectory(external/SDL)
|
||||||
|
add_subdirectory(external/cflags)
|
||||||
|
add_subdirectory(external/imgui)
|
||||||
|
add_subdirectory(external/mINI)
|
||||||
|
set(CAPSTONE_ARCHITECTURE_DEFAULT OFF)
|
||||||
|
set(CAPSTONE_MIPS_SUPPORT ON)
|
||||||
|
set(CAPSTONE_X86_SUPPORT ON)
|
||||||
|
add_subdirectory(external/capstone)
|
||||||
|
|
||||||
|
add_executable(kaizen
|
||||||
|
src/frontend/main.cpp
|
||||||
|
src/frontend/KaizenGui.hpp
|
||||||
|
src/frontend/KaizenGui.cpp
|
||||||
|
src/frontend/RenderWidget.cpp
|
||||||
|
src/frontend/RenderWidget.hpp
|
||||||
|
src/frontend/EmuThread.hpp
|
||||||
|
src/frontend/EmuThread.cpp
|
||||||
|
src/frontend/SettingsWindow.hpp
|
||||||
|
src/frontend/SettingsWindow.cpp
|
||||||
|
src/frontend/CPUSettings.hpp
|
||||||
|
src/frontend/CPUSettings.cpp
|
||||||
|
src/frontend/AudioSettings.hpp
|
||||||
|
src/frontend/AudioSettings.cpp
|
||||||
|
src/frontend/NativeWindow.hpp
|
||||||
|
src/utils/Options.cpp
|
||||||
|
src/frontend/Debugger.hpp
|
||||||
|
src/frontend/Debugger.cpp)
|
||||||
|
|
||||||
|
target_link_libraries(kaizen PUBLIC imgui SDL3::SDL3 SDL3::SDL3-static cflags::cflags discord-rpc mio parallel-rdp capstone backend)
|
||||||
|
target_compile_definitions(kaizen PUBLIC SDL_MAIN_HANDLED)
|
||||||
|
|
||||||
|
file(COPY 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)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ cmake --build build/ --config Release
|
|||||||
|
|
||||||
## Running:
|
## Running:
|
||||||
```
|
```
|
||||||
./path/to/kaizen [ROM] [Mupen Movie]
|
./build/kaizen [ROM] [Mupen Movie]
|
||||||
```
|
```
|
||||||
|
|
||||||
Your GPU needs to support Vulkan 1.3+, because the RDP is implemented via [ParaLLEl-RDP](https://github.com/Themaister/parallel-rdp).
|
Your GPU needs to support Vulkan 1.3+, because the RDP is implemented via [ParaLLEl-RDP](https://github.com/Themaister/parallel-rdp).
|
||||||
|
|||||||
@@ -1,142 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.20)
|
|
||||||
project(kaizen)
|
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
add_compile_definitions(NOMINMAX)
|
|
||||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
add_compile_definitions(VK_NO_PROTOTYPES)
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0)
|
|
||||||
enable_language(OBJC)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 23)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
|
|
||||||
include_directories(
|
|
||||||
.
|
|
||||||
../
|
|
||||||
../../
|
|
||||||
../utils
|
|
||||||
../backend
|
|
||||||
../backend/core
|
|
||||||
../backend/core/mmio
|
|
||||||
../backend/core/mmio/PIF
|
|
||||||
../backend/core/registers
|
|
||||||
../backend/core/rsp
|
|
||||||
../../external
|
|
||||||
../../external/discord_rpc/include
|
|
||||||
../../external/xbyak
|
|
||||||
../../external/mio/include
|
|
||||||
../../external/json/include
|
|
||||||
../../external/parallel-rdp
|
|
||||||
../../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/unarr
|
|
||||||
../../external/SDL/include
|
|
||||||
../../external/sse2neon
|
|
||||||
../../external/capstone/include
|
|
||||||
../../external/imgui
|
|
||||||
../../external/imgui/backends
|
|
||||||
../../external/cflags/include
|
|
||||||
../../external/mINI/src/
|
|
||||||
ImGuiImpl/
|
|
||||||
)
|
|
||||||
|
|
||||||
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)
|
|
||||||
option(BUILD_SHARED_LIBS OFF)
|
|
||||||
|
|
||||||
include(CheckCCompilerFlag)
|
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
|
|
||||||
set(X86 TRUE)
|
|
||||||
message("Compiling on x86")
|
|
||||||
else()
|
|
||||||
set(X86 FALSE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64)|(AARCH64)|(arm64)|(ARM64)")
|
|
||||||
set(ARM64 TRUE)
|
|
||||||
message("Compiling on Arm64")
|
|
||||||
else()
|
|
||||||
set(ARM64 FALSE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(SIMD_FLAG NULL)
|
|
||||||
|
|
||||||
if(ARM64 AND APPLE)
|
|
||||||
message("Defining USE_NEON...")
|
|
||||||
add_compile_definitions(USE_NEON)
|
|
||||||
add_compile_definitions(SIMD_SUPPORT)
|
|
||||||
elseif(NOT ARM64)
|
|
||||||
if(MSVC)
|
|
||||||
set(SIMD_FLAG /arch:AVX)
|
|
||||||
else()
|
|
||||||
set(SIMD_FLAG -msse4.1)
|
|
||||||
endif()
|
|
||||||
check_c_compiler_flag(${SIMD_FLAG} HAS_SIMD)
|
|
||||||
else()
|
|
||||||
message("Compiling on an unsupported Arm device! Good Luck!")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (HAS_SIMD)
|
|
||||||
message("Defining SIMD_SUPPORT...")
|
|
||||||
add_compile_definitions(SIMD_SUPPORT)
|
|
||||||
add_compile_options(${SIMD_FLAG})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (${CMAKE_BUILD_TYPE} MATCHES Debug)
|
|
||||||
add_compile_definitions(VULKAN_DEBUG)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
add_subdirectory(../../external/discord_rpc discord_rpc)
|
|
||||||
add_subdirectory(../../external/mio mio)
|
|
||||||
add_subdirectory(../backend backend)
|
|
||||||
add_subdirectory(../../external/parallel-rdp parallel-rdp)
|
|
||||||
add_subdirectory(../../external/unarr unarr)
|
|
||||||
add_subdirectory(../../external/SDL SDL)
|
|
||||||
add_subdirectory(../../external/cflags cflags)
|
|
||||||
add_subdirectory(../../external/imgui imgui)
|
|
||||||
add_subdirectory(../../external/mINI mINI)
|
|
||||||
set(CAPSTONE_ARCHITECTURE_DEFAULT OFF)
|
|
||||||
set(CAPSTONE_MIPS_SUPPORT ON)
|
|
||||||
set(CAPSTONE_X86_SUPPORT ON)
|
|
||||||
add_subdirectory(../../external/capstone capstone)
|
|
||||||
|
|
||||||
add_executable(kaizen
|
|
||||||
main.cpp
|
|
||||||
KaizenGui.hpp
|
|
||||||
KaizenGui.cpp
|
|
||||||
RenderWidget.cpp
|
|
||||||
RenderWidget.hpp
|
|
||||||
EmuThread.hpp
|
|
||||||
EmuThread.cpp
|
|
||||||
SettingsWindow.hpp
|
|
||||||
SettingsWindow.cpp
|
|
||||||
CPUSettings.hpp
|
|
||||||
CPUSettings.cpp
|
|
||||||
AudioSettings.hpp
|
|
||||||
AudioSettings.cpp
|
|
||||||
NativeWindow.hpp
|
|
||||||
../utils/Options.cpp
|
|
||||||
Debugger.hpp
|
|
||||||
Debugger.cpp)
|
|
||||||
|
|
||||||
target_link_libraries(kaizen PUBLIC imgui SDL3::SDL3 SDL3::SDL3-static cflags::cflags discord-rpc mio parallel-rdp capstone backend)
|
|
||||||
target_compile_definitions(kaizen PUBLIC SDL_MAIN_HANDLED)
|
|
||||||
|
|
||||||
file(COPY ../../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)
|
|
||||||
Reference in New Issue
Block a user