Files
kaizen/src/frontend/CMakeLists.txt
2025-02-06 23:42:57 +01:00

110 lines
3.0 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(kaizen-qt)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
if (WIN32)
add_compile_definitions(NOMINMAX)
endif ()
if(APPLE)
enable_language(OBJC)
endif()
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/fmt/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/capstone/include
)
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)
check_c_compiler_flag(-msse4.1 HAS_SSE4_1)
if (HAS_SSE4_1)
add_compile_definitions(SIMD_SUPPORT)
add_compile_options(-msse3 -msse4.1)
endif ()
if (${CMAKE_BUILD_TYPE} MATCHES Debug)
add_compile_definitions(VULKAN_DEBUG)
endif ()
add_subdirectory(../../external/discord_rpc discord_rpc)
add_subdirectory(../../external/json json)
add_subdirectory(../../external/fmt fmt)
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)
set(CAPSTONE_ARCHITECTURE_DEFAULT OFF)
set(CAPSTONE_MIPS_SUPPORT ON)
set(CAPSTONE_X86_SUPPORT ON)
add_subdirectory(../../external/capstone capstone)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
add_executable(kaizen-qt
main.cpp
KaizenQt.hpp
KaizenQt.cpp
RenderWidget.cpp
RenderWidget.hpp
EmuThread.hpp
EmuThread.cpp
MainWindow.hpp
MainWindow.cpp
SettingsWindow.hpp
SettingsWindow.cpp
CPUSettings.hpp
CPUSettings.cpp
JSONUtils.hpp
AudioSettings.hpp
AudioSettings.cpp
InputSettings.hpp
InputSettings.cpp
Debugger.hpp
Debugger.cpp
CodeModel.hpp)
target_link_libraries(kaizen-qt PUBLIC SDL3::SDL3 SDL3::SDL3-static Qt6::Core Qt6::Gui Qt6::Widgets discord-rpc fmt mio nlohmann_json parallel-rdp capstone backend)
target_compile_definitions(kaizen-qt 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)