diff options
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 247 |
1 files changed, 125 insertions, 122 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d1f47dc..cdb0587 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,142 +1,145 @@ -project(core) - set (CMAKE_CXX_STANDARD 17) +include(FixInterfaceIncludes) + add_library(core STATIC - ARCodeFile.cpp - AREngine.cpp - ARM.cpp - ARM_InstrTable.h - ARMInterpreter.cpp - ARMInterpreter_ALU.cpp - ARMInterpreter_Branch.cpp - ARMInterpreter_LoadStore.cpp - CP15.cpp - CRC32.cpp - DMA.cpp - DMA_Timings.h - DSi.cpp - DSi_AES.cpp - DSi_Camera.cpp - DSi_DSP.cpp - DSi_I2C.cpp - DSi_NAND.cpp - DSi_NDMA.cpp - DSi_NWifi.cpp - DSi_SD.cpp - DSi_SPI_TSC.cpp - FATStorage.cpp - FIFO.h - GBACart.cpp - GPU.cpp - GPU2D.cpp - GPU2D_Soft.cpp - GPU3D.cpp - GPU3D_Soft.cpp - melonDLDI.h - NDS.cpp - NDSCart.cpp - NDSCart_SRAMManager.cpp - Platform.h - ROMList.h - FreeBIOS.h - RTC.cpp - Savestate.cpp - SPI.cpp - SPU.cpp - types.h - version.h - Wifi.cpp - WifiAP.cpp - - fatfs/diskio.c - fatfs/ff.c - fatfs/ffsystem.c - fatfs/ffunicode.c - fatfs/ffconf.h - - sha1/sha1.c - tiny-AES-c/aes.c - xxhash/xxhash.c -) + ARCodeFile.cpp + AREngine.cpp + ARM.cpp + ARM_InstrTable.h + ARMInterpreter.cpp + ARMInterpreter_ALU.cpp + ARMInterpreter_Branch.cpp + ARMInterpreter_LoadStore.cpp + CP15.cpp + CRC32.cpp + DMA.cpp + DMA_Timings.h + DSi.cpp + DSi_AES.cpp + DSi_Camera.cpp + DSi_DSP.cpp + DSi_I2C.cpp + DSi_NAND.cpp + DSi_NDMA.cpp + DSi_NWifi.cpp + DSi_SD.cpp + DSi_SPI_TSC.cpp + FATStorage.cpp + FIFO.h + GBACart.cpp + GPU.cpp + GPU2D.cpp + GPU2D_Soft.cpp + GPU3D.cpp + GPU3D_Soft.cpp + melonDLDI.h + NDS.cpp + NDSCart.cpp + Platform.h + ROMList.h + FreeBIOS.h + RTC.cpp + Savestate.cpp + SPI.cpp + SPU.cpp + types.h + version.h + Wifi.cpp + WifiAP.cpp + + fatfs/diskio.c + fatfs/ff.c + fatfs/ffsystem.c + fatfs/ffunicode.c + fatfs/ffconf.h + + sha1/sha1.c + tiny-AES-c/aes.c + xxhash/xxhash.c) if (ENABLE_OGLRENDERER) - target_sources(core PRIVATE - GPU_OpenGL.cpp - GPU_OpenGL_shaders.h - GPU3D_OpenGL.cpp - GPU3D_OpenGL_shaders.h - OpenGLSupport.cpp - ) + target_sources(core PRIVATE + GPU_OpenGL.cpp + GPU_OpenGL_shaders.h + GPU3D_OpenGL.cpp + GPU3D_OpenGL_shaders.h + OpenGLSupport.cpp) endif() if (ENABLE_JIT) - enable_language(ASM) - - target_sources(core PRIVATE - ARM_InstrInfo.cpp - - ARMJIT.cpp - ARMJIT_Memory.cpp - - dolphin/CommonFuncs.cpp - ) - - if (ARCHITECTURE STREQUAL x86_64) - target_sources(core PRIVATE - dolphin/x64ABI.cpp - dolphin/x64CPUDetect.cpp - dolphin/x64Emitter.cpp - - ARMJIT_x64/ARMJIT_Compiler.cpp - ARMJIT_x64/ARMJIT_ALU.cpp - ARMJIT_x64/ARMJIT_LoadStore.cpp - ARMJIT_x64/ARMJIT_Branch.cpp - - ARMJIT_x64/ARMJIT_Linkage.S - ) - endif() - if (ARCHITECTURE STREQUAL ARM64) - target_sources(core PRIVATE - dolphin/Arm64Emitter.cpp - dolphin/MathUtil.cpp - - ARMJIT_A64/ARMJIT_Compiler.cpp - ARMJIT_A64/ARMJIT_ALU.cpp - ARMJIT_A64/ARMJIT_LoadStore.cpp - ARMJIT_A64/ARMJIT_Branch.cpp - - ARMJIT_A64/ARMJIT_Linkage.S - ) - endif() + enable_language(ASM) + + target_sources(core PRIVATE + ARM_InstrInfo.cpp + + ARMJIT.cpp + ARMJIT_Memory.cpp + + dolphin/CommonFuncs.cpp) + + if (ARCHITECTURE STREQUAL x86_64) + target_sources(core PRIVATE + dolphin/x64ABI.cpp + dolphin/x64CPUDetect.cpp + dolphin/x64Emitter.cpp + + ARMJIT_x64/ARMJIT_Compiler.cpp + ARMJIT_x64/ARMJIT_ALU.cpp + ARMJIT_x64/ARMJIT_LoadStore.cpp + ARMJIT_x64/ARMJIT_Branch.cpp + + ARMJIT_x64/ARMJIT_Linkage.S) + endif() + if (ARCHITECTURE STREQUAL ARM64) + target_sources(core PRIVATE + dolphin/Arm64Emitter.cpp + dolphin/MathUtil.cpp + + ARMJIT_A64/ARMJIT_Compiler.cpp + ARMJIT_A64/ARMJIT_ALU.cpp + ARMJIT_A64/ARMJIT_LoadStore.cpp + ARMJIT_A64/ARMJIT_Branch.cpp + + ARMJIT_A64/ARMJIT_Linkage.S) + endif() endif() add_subdirectory(teakra EXCLUDE_FROM_ALL) -target_link_libraries(core teakra) +target_link_libraries(core PRIVATE teakra) +find_library(m MATH_LIBRARY) + +if (MATH_LIBRARY) + target_link_libraries(core PRIVATE ${MATH_LIBRARY}) +endif() if (ENABLE_OGLRENDERER) find_package(PkgConfig REQUIRED) - pkg_check_modules(EPOXY REQUIRED epoxy) - - target_include_directories(core PRIVATE ${EPOXY_INCLUDE_DIRS}) - if (WIN32) - target_link_libraries(core ole32 comctl32 ws2_32 ${EPOXY_LIBRARIES}) - elseif (APPLE) - target_link_libraries(core ${EPOXY_LIBRARIES}) - else() - target_link_libraries(core rt ${EPOXY_LIBRARIES}) + pkg_check_modules(Epoxy REQUIRED IMPORTED_TARGET epoxy) + fix_interface_includes(PkgConfig::Epoxy) + + target_link_libraries(core PUBLIC PkgConfig::Epoxy) + + target_compile_definitions(core PUBLIC OGLRENDERER_ENABLED) +endif() + +if (ENABLE_JIT) + target_compile_definitions(core PUBLIC JIT_ENABLED) + + + if (ENABLE_JIT_PROFILING) + include(cmake/FindVTune.cmake) + add_definitions(-DJIT_PROFILING_ENABLED) endif() -else() - if (WIN32) - target_link_libraries(core ole32 comctl32 ws2_32) - elseif (APPLE) - target_link_libraries(core) - else() - target_link_libraries(core rt) - endif() +endif() + +if (WIN32) + target_link_libraries(core PRIVATE ole32 comctl32 ws2_32) +elseif(NOT APPLE) + target_link_libraries(core PRIVATE rt) endif() if (ENABLE_JIT_PROFILING) - target_link_libraries(core jitprofiling) + target_link_libraries(core PRIVATE jitprofiling) endif() |