dolphin/Source/Core/Common/CMakeLists.txt

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

388 lines
7.9 KiB
CMake
Raw Normal View History

add_library(common
Analytics.cpp
Analytics.h
2022-12-18 01:43:28 -07:00
Assembler/AssemblerShared.cpp
Assembler/AssemblerShared.h
Assembler/AssemblerTables.cpp
Assembler/AssemblerTables.h
Assembler/GekkoAssembler.cpp
Assembler/GekkoAssembler.h
Assembler/GekkoIRGen.cpp
Assembler/GekkoIRGen.h
Assembler/GekkoLexer.cpp
Assembler/GekkoLexer.h
Assembler/GekkoParser.cpp
Assembler/GekkoParser.h
Assert.h
BitField.h
BitSet.h
BitUtils.h
BlockingLoop.h
ChunkFile.h
CodeBlock.h
ColorUtil.cpp
ColorUtil.h
Common.h
CommonFuncs.cpp
CommonFuncs.h
CommonPaths.h
CommonTypes.h
Config/Config.cpp
Config/Config.h
Config/ConfigInfo.cpp
Config/ConfigInfo.h
Config/Enums.h
Config/Layer.cpp
Config/Layer.h
CPUDetect.h
2017-08-07 00:25:14 -06:00
Crypto/AES.cpp
Crypto/AES.h
2017-08-07 00:25:14 -06:00
Crypto/bn.cpp
Crypto/bn.h
2017-08-07 00:25:14 -06:00
Crypto/ec.cpp
Crypto/ec.h
2023-08-14 19:02:57 -06:00
Crypto/HMAC.cpp
Crypto/HMAC.h
Crypto/SHA1.cpp
Crypto/SHA1.h
Debug/MemoryPatches.cpp
Debug/MemoryPatches.h
Debug/Threads.h
Debug/Watches.cpp
Debug/Watches.h
DynamicLibrary.cpp
DynamicLibrary.h
ENet.cpp
ENet.h
2021-02-10 13:46:32 -07:00
EnumFormatter.h
2021-04-24 20:26:27 -06:00
EnumMap.h
EnumUtils.h
Event.h
FatFsUtil.cpp
FatFsUtil.h
FileSearch.cpp
FileSearch.h
FileUtil.cpp
FileUtil.h
FixedSizeQueue.h
Flag.h
FloatUtils.cpp
FloatUtils.h
FormatUtil.h
FPURoundMode.h
GekkoDisassembler.cpp
GekkoDisassembler.h
Hash.cpp
Hash.h
HookableEvent.h
HostDisassembler.cpp
HostDisassembler.h
HttpRequest.cpp
HttpRequest.h
Image.cpp
Image.h
IniFile.cpp
IniFile.h
Inline.h
2020-09-15 04:29:41 -06:00
IOFile.cpp
IOFile.h
JitRegister.cpp
JitRegister.h
JsonUtil.h
JsonUtil.cpp
Lazy.h
LinearDiskCache.h
Logging/ConsoleListener.h
Logging/Log.h
2017-08-07 00:25:14 -06:00
Logging/LogManager.cpp
Logging/LogManager.h
MathUtil.h
Matrix.cpp
Matrix.h
MemArena.h
MemoryUtil.cpp
MemoryUtil.h
MinizipUtil.h
MsgHandler.cpp
MsgHandler.h
NandPaths.cpp
NandPaths.h
Network.cpp
Network.h
PcapFile.cpp
PcapFile.h
2014-11-19 11:57:12 -07:00
Profiler.cpp
Profiler.h
2017-10-27 17:42:25 -06:00
QoSSession.cpp
QoSSession.h
Random.cpp
Random.h
Result.h
ScopeGuard.h
SDCardUtil.cpp
SDCardUtil.h
Semaphore.h
SettingsHandler.cpp
SettingsHandler.h
2020-09-15 04:29:41 -06:00
SFMLHelper.cpp
SFMLHelper.h
SmallVector.h
SocketContext.cpp
SocketContext.h
SpanUtils.h
SPSCQueue.h
StringLiteral.h
StringUtil.cpp
StringUtil.h
SymbolDB.cpp
SymbolDB.h
Thread.cpp
Thread.h
Timer.cpp
Timer.h
TimeUtil.cpp
TimeUtil.h
TraversalClient.cpp
TraversalClient.h
TraversalProto.h
TypeUtils.h
Unreachable.h
UPnP.cpp
UPnP.h
VariantUtil.h
Version.cpp
Version.h
WindowSystemInfo.h
WorkQueueThread.h
)
add_dependencies(common dolphin_scmrev)
2022-07-27 02:51:19 -06:00
if(NOT MSVC AND _M_ARM_64)
set_source_files_properties(
Crypto/AES.cpp
Crypto/SHA1.cpp
2022-07-27 02:51:19 -06:00
PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
endif()
target_link_libraries(common
PUBLIC
${CMAKE_THREAD_LIBS_INIT}
enet::enet
fmt::fmt
MbedTLS::mbedtls
minizip::minizip
sfml-network
PRIVATE
CURL::libcurl
FatFs
Iconv::Iconv
spng::spng
${VTUNE_LIBRARIES}
)
if ((DEFINED CMAKE_ANDROID_ARCH_ABI AND CMAKE_ANDROID_ARCH_ABI MATCHES "x86|x86_64") OR
(NOT DEFINED CMAKE_ANDROID_ARCH_ABI AND _M_X86_64))
target_link_libraries(common PRIVATE bdisasm)
endif()
if (APPLE)
target_link_libraries(common
PRIVATE
${APPKIT_LIBRARY}
${COREFOUNDATION_LIBRARY}
${IOK_LIBRARY}
)
2019-05-08 13:41:07 -06:00
elseif(WIN32)
target_link_libraries(common
PRIVATE
kernel32.lib
shlwapi.lib
winmm.lib
)
2020-02-11 16:07:56 -07:00
if (_M_X86_64)
target_link_libraries(common PRIVATE opengl32.lib)
2020-02-11 16:07:56 -07:00
endif()
elseif (ANDROID)
target_link_libraries(common
PRIVATE
androidcommon
)
2020-12-12 13:25:51 -07:00
elseif(HAIKU)
target_link_libraries(common PRIVATE be GL)
endif()
if(ANDROID)
target_sources(common PRIVATE
AndroidAnalytics.cpp
AndroidAnalytics.h
Logging/ConsoleListenerDroid.cpp
MemArenaAndroid.cpp
)
elseif(WIN32)
target_sources(common PRIVATE
2019-05-08 13:41:07 -06:00
LdrWatcher.cpp
LdrWatcher.h
Logging/ConsoleListenerWin.cpp
MemArenaWin.cpp
)
else()
target_sources(common PRIVATE
Logging/ConsoleListenerNix.cpp
MemArenaUnix.cpp
)
endif()
2015-06-07 21:44:13 -06:00
if(_M_ARM_64)
target_sources(common PRIVATE
2015-06-07 21:44:13 -06:00
Arm64Emitter.cpp
Arm64Emitter.h
ArmCommon.h
2015-06-07 21:44:13 -06:00
ArmCPUDetect.cpp
ArmFPURoundMode.cpp
2015-06-07 21:44:13 -06:00
)
else()
2022-08-07 18:18:36 -06:00
if(_M_X86_64) #X86
target_sources(common PRIVATE
x64ABI.cpp
x64ABI.h
x64Emitter.cpp
x64Emitter.h
x64FPURoundMode.cpp
x64CPUDetect.cpp
x64Reg.h
)
else() # Generic
target_sources(common PRIVATE
GenericFPURoundMode.cpp
GenericCPUDetect.cpp
)
endif()
2013-02-26 12:49:00 -07:00
endif()
# OpenGL Interface
target_sources(common PRIVATE
GL/GLContext.cpp
GL/GLContext.h
GL/GLUtil.cpp
GL/GLUtil.h
GL/GLExtensions/GLExtensions.cpp
GL/GLExtensions/GLExtensions.h
)
2018-10-14 07:17:31 -06:00
if(ENABLE_EGL AND EGL_FOUND)
target_sources(common PRIVATE
GL/GLInterface/EGL.cpp
GL/GLInterface/EGL.h
)
if(ANDROID)
target_sources(common PRIVATE
GL/GLInterface/EGLAndroid.cpp
GL/GLInterface/EGLAndroid.h
)
2018-10-14 07:17:31 -06:00
elseif(ENABLE_X11 AND X11_FOUND)
target_sources(common PRIVATE
GL/GLInterface/EGLX11.cpp
GL/GLInterface/EGLX11.h
)
endif()
2018-10-14 07:17:31 -06:00
target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS})
target_link_libraries(common PUBLIC ${EGL_LIBRARIES})
endif()
if(WIN32)
target_sources(common PRIVATE
CompatPatches.cpp
GL/GLInterface/WGL.cpp
GL/GLInterface/WGL.h
WindowsRegistry.cpp
)
elseif(APPLE)
target_sources(common PRIVATE
GL/GLInterface/AGL.h
GL/GLInterface/AGL.mm
)
2020-12-12 13:25:51 -07:00
elseif(HAIKU)
target_sources(common PRIVATE
GL/GLInterface/BGL.h
GL/GLInterface/BGL.cpp
)
2018-10-14 07:17:31 -06:00
elseif(ENABLE_X11 AND X11_FOUND)
target_sources(common PRIVATE
GL/GLX11Window.cpp
GL/GLX11Window.h
GL/GLInterface/GLX.cpp
GL/GLInterface/GLX.h
)
# GLX has a hard dependency on libGL.
# Make sure to link to it if using GLX.
target_link_libraries(common PUBLIC ${OPENGL_LIBRARIES})
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_libraries(common PUBLIC dl rt)
endif()
if(WIN32)
target_sources(common PRIVATE HRWrap.h HRWrap.cpp)
endif()
if(USE_UPNP)
target_link_libraries(common PRIVATE Miniupnpc::miniupnpc)
endif()
if(OPROFILE_FOUND)
target_link_libraries(common PRIVATE OProfile::OProfile)
endif()
if(ENABLE_LLVM)
find_package(LLVM CONFIG)
if(LLVM_FOUND)
message(STATUS "LLVM found, enabling LLVM support in disassembler")
target_compile_definitions(common PRIVATE HAVE_LLVM)
# Minimal documentation about LLVM's CMake functions is available here:
# https://releases.llvm.org/16.0.0/docs/CMake.html#embedding-llvm-in-your-project
# https://groups.google.com/g/llvm-dev/c/YeEVe7HTasQ?pli=1
#
# However, you have to read the source code in any case.
# Look for LLVM-Config.cmake in your (Unix) system:
# $ find /usr -name LLVM-Config\\.cmake 2>/dev/null
llvm_expand_pseudo_components(LLVM_EXPAND_COMPONENTS
AllTargetsInfos AllTargetsDisassemblers AllTargetsCodeGens
)
llvm_config(common USE_SHARED
mcdisassembler target ${LLVM_EXPAND_COMPONENTS}
)
target_include_directories(common PRIVATE ${LLVM_INCLUDE_DIRS})
endif()
endif()
if(UNIX)
# Posix networking code needs to be fixed for Windows
add_executable(traversal_server TraversalServer.cpp)
target_link_libraries(traversal_server PRIVATE common fmt::fmt)
if(SYSTEMD_FOUND)
target_link_libraries(traversal_server PRIVATE ${SYSTEMD_LIBRARIES})
endif()
2017-06-15 22:26:40 -06:00
elseif(WIN32)
find_package(PowerShell REQUIRED)
execute_process(
COMMAND ${POWERSHELL_EXE} -Command "[System.Diagnostics.FileVersionInfo]::GetVersionInfo('$ENV{VCToolsRedistDir}vc_redist.x64.exe').ProductVersion"
OUTPUT_VARIABLE VC_TOOLS_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/build_info.txt.in"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/build_info.txt"
)
2017-06-15 22:26:40 -06:00
target_link_libraries(common PRIVATE "-INCLUDE:enableCompatPatches")
endif()
if(MSVC)
# Add precompiled header
2022-05-21 17:19:44 -06:00
target_link_libraries(common PRIVATE use_pch)
endif()