mirror of
https://github.com/decaf-emu/decaf-emu.git
synced 2025-04-02 10:42:13 -04:00
117 lines
4.3 KiB
CMake
117 lines
4.3 KiB
CMake
# addrlib
|
|
add_library(addrlib STATIC
|
|
"addrlib/src/addrinterface.cpp"
|
|
"addrlib/src/core/addrelemlib.cpp"
|
|
"addrlib/src/core/addrlib.cpp"
|
|
"addrlib/src/core/addrobject.cpp"
|
|
"addrlib/src/r600/r600addrlib.cpp")
|
|
set_target_properties(addrlib PROPERTIES FOLDER libraries)
|
|
target_include_directories(addrlib
|
|
PRIVATE "addrlib/src"
|
|
PUBLIC "addrlib/include")
|
|
|
|
# libbinrec
|
|
set(BINREC_ENABLE_RTL_DEBUG_OPTIMIZE FALSE CACHE BOOL "Enable debug output from optimization passes")
|
|
set(BINREC_ENABLE_ASSERT FALSE CACHE BOOL "Enable basic assertion checks")
|
|
add_subdirectory(libbinrec)
|
|
set_target_properties(binrec PROPERTIES FOLDER libraries)
|
|
|
|
# catch
|
|
add_library(catch2 INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(catch2 PROPERTIES
|
|
INTERFACE_COMPILE_DEFINITIONS "CATCH_CONFIG_ENABLE_BENCHMARKING"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/catch/single_include/catch2")
|
|
|
|
# cereal
|
|
add_library(cereal INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(cereal PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/cereal/include")
|
|
|
|
# cnl
|
|
add_library(cnl INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(cnl PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/cnl/include")
|
|
|
|
# excmd
|
|
add_library(excmd INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(excmd PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/excmd/src")
|
|
|
|
# fmt
|
|
add_subdirectory(fmt)
|
|
set_target_properties(fmt PROPERTIES FOLDER libraries)
|
|
|
|
# glslang
|
|
if(DECAF_VULKAN OR DECAF_BUILD_TOOLS)
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "glslang: BUILD_SHARED_LIBS" FORCE)
|
|
set(BUILD_TESTING OFF CACHE BOOL "glslang: BUILD_TESTING" FORCE)
|
|
set(ENABLE_HLSL OFF CACHE BOOL "glslang: ENABLE_HLSL" FORCE)
|
|
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "glslang: ENABLE_GLSLANG_BINARIES" FORCE)
|
|
set(ENABLE_OPT ON CACHE BOOL "glslang: ENABLE_OPT" FORCE)
|
|
set(ENABLE_SPVREMAPPER OFF CACHE BOOL "glslang: ENABLE_SPVREMAPPER" FORCE)
|
|
set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "glslang: SKIP_GLSLANG_INSTALL" FORCE)
|
|
add_subdirectory(glslang)
|
|
|
|
macro(remove_flag_from_target _target _flag)
|
|
get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS)
|
|
if(_target_cxx_flags)
|
|
list(REMOVE_ITEM _target_cxx_flags ${_flag})
|
|
set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${_target_cxx_flags}")
|
|
endif()
|
|
endmacro()
|
|
|
|
# As we inherit spv::Builder in libgpu, we must remove -fno-rtti
|
|
remove_flag_from_target(SPIRV -fno-rtti)
|
|
endif()
|
|
|
|
# gsl
|
|
add_library(gsl INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(gsl PROPERTIES
|
|
INTERFACE_COMPILE_DEFINITIONS "GSL_THROWS_FOR_TESTING"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/gsl-lite/include")
|
|
|
|
# imgui
|
|
add_library(imgui STATIC
|
|
"imgui/imgui.cpp"
|
|
"imgui/imgui_draw.cpp")
|
|
set_target_properties(imgui PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/imgui"
|
|
FOLDER libraries)
|
|
|
|
# ovsocket
|
|
add_library(ovsocket INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(ovsocket PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/ovsocket/ovsocket")
|
|
|
|
# peglib
|
|
add_library(peglib INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(peglib PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/cpp-peglib")
|
|
|
|
# pugixml
|
|
add_library(pugixml STATIC
|
|
"pugixml/src/pugixml.cpp")
|
|
set_target_properties(pugixml PROPERTIES
|
|
FOLDER libraries
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src")
|
|
|
|
# spdlog
|
|
set(SPDLOG_FMT_EXTERNAL ON CACHE BOOL "Use external fmt library instead of bundled" FORCE)
|
|
add_subdirectory(spdlog)
|
|
set_target_properties(spdlog PROPERTIES FOLDER libraries)
|
|
|
|
# tomlplusplus
|
|
add_library(tomlplusplus INTERFACE IMPORTED GLOBAL)
|
|
set_target_properties(tomlplusplus PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/tomlplusplus/include")
|
|
|
|
# Qt Advanced Docking System
|
|
if(DECAF_QT)
|
|
set(BUILD_STATIC TRUE CACHE BOOL "ADS: Build the static library")
|
|
set(BUILD_EXAMPLES FALSE CACHE BOOL "ADS: Build the examples")
|
|
set(ADS_VERSION "3.8.1" CACHE STRING "ADS: Version")
|
|
add_subdirectory(qtads EXCLUDE_FROM_ALL)
|
|
set_target_properties(qtadvanceddocking PROPERTIES
|
|
INTERFACE_COMPILE_DEFINITIONS "ADS_STATIC"
|
|
FOLDER libraries)
|
|
endif()
|