mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-09-21 11:51:48 +02:00
2a66b88d01
The opagent library was (incorrectly) marked as a dependency for "Core" instead of "Common". When linked with --as-needed, any symbols the linker can tell are not used are discarded. As the link is done in command-line order, and the Core library (and dependencies) are processed before Common, it would link in Core, then opagent, but as at that point no opagent symbols are used the whole opagent library would be discarded. Moving the opagent library to be a dependency of Common fixes this, as after the Common library is linked, there *are* opagent symbols used.
134 lines
2.7 KiB
CMake
134 lines
2.7 KiB
CMake
set(SRCS
|
|
Analytics.cpp
|
|
CDUtils.cpp
|
|
ColorUtil.cpp
|
|
CommonFuncs.cpp
|
|
Config/Config.cpp
|
|
Config/Layer.cpp
|
|
Config/Section.cpp
|
|
ENetUtil.cpp
|
|
File.cpp
|
|
FileSearch.cpp
|
|
FileUtil.cpp
|
|
GekkoDisassembler.cpp
|
|
Hash.cpp
|
|
HttpRequest.cpp
|
|
IniFile.cpp
|
|
JitRegister.cpp
|
|
MathUtil.cpp
|
|
MemArena.cpp
|
|
MemoryUtil.cpp
|
|
MsgHandler.cpp
|
|
NandPaths.cpp
|
|
Network.cpp
|
|
PcapFile.cpp
|
|
PerformanceCounter.cpp
|
|
Profiler.cpp
|
|
SettingsHandler.cpp
|
|
SDCardUtil.cpp
|
|
StringUtil.cpp
|
|
SymbolDB.cpp
|
|
SysConf.cpp
|
|
Thread.cpp
|
|
Timer.cpp
|
|
TraversalClient.cpp
|
|
Version.cpp
|
|
x64ABI.cpp
|
|
x64Emitter.cpp
|
|
MD5.cpp
|
|
Crypto/AES.cpp
|
|
Crypto/bn.cpp
|
|
Crypto/ec.cpp
|
|
Logging/LogManager.cpp
|
|
)
|
|
|
|
set(LIBS ${LIBS} ${MBEDTLS_LIBRARIES})
|
|
|
|
if(ANDROID)
|
|
set(SRCS ${SRCS}
|
|
Logging/ConsoleListenerDroid.cpp)
|
|
elseif(WIN32)
|
|
set(SRCS ${SRCS}
|
|
Logging/ConsoleListenerWin.cpp)
|
|
else()
|
|
set(SRCS ${SRCS}
|
|
Logging/ConsoleListenerNix.cpp)
|
|
endif()
|
|
|
|
list(APPEND LIBS enet ${CURL_LIBRARIES})
|
|
if(_M_ARM_64)
|
|
set(SRCS ${SRCS}
|
|
Arm64Emitter.cpp
|
|
ArmCPUDetect.cpp
|
|
GenericFPURoundMode.cpp
|
|
)
|
|
else()
|
|
if(_M_X86) #X86
|
|
set(SRCS ${SRCS}
|
|
x64FPURoundMode.cpp
|
|
x64CPUDetect.cpp
|
|
)
|
|
else() # Generic
|
|
set(SRCS ${SRCS}
|
|
GenericFPURoundMode.cpp
|
|
GenericCPUDetect.cpp
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
list(APPEND LIBS "${CMAKE_THREAD_LIBS_INIT}" ${VTUNE_LIBRARIES})
|
|
|
|
# OpenGL Interface
|
|
set(SRCS ${SRCS}
|
|
GL/GLUtil.cpp
|
|
GL/GLExtensions/GLExtensions.cpp
|
|
GL/GLInterface/GLInterface.cpp
|
|
)
|
|
|
|
if(USE_EGL)
|
|
set(SRCS ${SRCS} GL/GLInterface/EGL.cpp)
|
|
if(ANDROID)
|
|
set(SRCS ${SRCS} GL/GLInterface/EGLAndroid.cpp)
|
|
elseif(USE_X11)
|
|
set(SRCS ${SRCS} GL/GLInterface/EGLX11.cpp)
|
|
endif()
|
|
set(LIBS ${LIBS} EGL)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
set(SRCS ${SRCS} GL/GLInterface/WGL.cpp CompatPatches.cpp)
|
|
elseif(APPLE)
|
|
set(SRCS ${SRCS} GL/GLInterface/AGL.mm)
|
|
elseif(HAIKU)
|
|
set(SRCS ${SRCS} GL/GLInterface/BGL.cpp)
|
|
set(LIBS ${LIBS} be GL)
|
|
elseif(USE_X11)
|
|
if (NOT USE_EGL)
|
|
set(SRCS ${SRCS} GL/GLInterface/GLX.cpp)
|
|
# GLX has a hard dependency on libGL.
|
|
# Make sure to link to it if using GLX.
|
|
set(LIBS ${LIBS} ${OPENGL_LIBRARIES})
|
|
endif()
|
|
set(SRCS ${SRCS} GL/GLInterface/X11_Util.cpp)
|
|
set(LIBS ${LIBS} ${XRANDR_LIBRARIES})
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
set(LIBS ${LIBS} dl)
|
|
endif()
|
|
|
|
add_dolphin_library(common "${SRCS}" "${LIBS}")
|
|
|
|
if(OPROFILE_FOUND)
|
|
target_link_libraries(common PRIVATE ${OPROFILE_LIBRARIES})
|
|
endif()
|
|
|
|
if(UNIX)
|
|
# Posix networking code needs to be fixed for Windows
|
|
add_executable(traversal_server TraversalServer.cpp)
|
|
if(HAIKU)
|
|
target_link_libraries(traversal_server network)
|
|
endif()
|
|
elseif(WIN32)
|
|
target_link_libraries(common PRIVATE "-INCLUDE:enableCompatPatches")
|
|
endif()
|