dolphin/Source/Core/UICommon/CMakeLists.txt
Guilherme Janczak 68cbd2640d
fix linking against LLVM shared library
967280f140 broke linking against
libLLVM.so because it used the outdated way to link against LLVM from
CMake. This causes a compilation failure on systems that don't have the
LLVM static libraries, such as Arch Linux. On systems that have the
static libraries, it'll use them and increase binary sizes massively.

Switch to the newer llvm_config CMake macro from LLVM.
2024-05-03 11:56:15 +00:00

83 lines
2.1 KiB
CMake

add_library(uicommon
AutoUpdate.cpp
AutoUpdate.h
CommandLineParse.cpp
CommandLineParse.h
Disassembler.cpp
Disassembler.h
DiscordPresence.cpp
DiscordPresence.h
GameFile.cpp
GameFile.h
GameFileCache.cpp
GameFileCache.h
NetPlayIndex.cpp
NetPlayIndex.h
ResourcePack/Manager.cpp
ResourcePack/Manager.h
ResourcePack/Manifest.cpp
ResourcePack/Manifest.h
ResourcePack/ResourcePack.cpp
ResourcePack/ResourcePack.h
UICommon.cpp
UICommon.h
USBUtils.cpp
USBUtils.h
)
target_link_libraries(uicommon
PUBLIC
common
cpp-optparse
minizip::minizip
pugixml
PRIVATE
fmt::fmt
$<$<BOOL:APPLE>:${IOK_LIBRARY}>
)
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(uicommon PRIVATE bdisasm)
endif()
if(X11_FOUND)
target_sources(uicommon PRIVATE X11Utils.cpp)
target_link_libraries(uicommon PUBLIC PkgConfig::XRANDR PkgConfig::X11)
endif()
if(TARGET LibUSB::LibUSB)
target_link_libraries(uicommon PRIVATE LibUSB::LibUSB)
endif()
if(ENABLE_LLVM)
find_package(LLVM CONFIG)
if(LLVM_FOUND)
message(STATUS "LLVM found, enabling LLVM support in disassembler")
# 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(uicommon USE_SHARED
mcdisassembler target ${LLVM_EXPAND_COMPONENTS}
)
endif()
endif()
if(USE_DISCORD_PRESENCE)
target_compile_definitions(uicommon PRIVATE -DUSE_DISCORD_PRESENCE)
target_link_libraries(uicommon PRIVATE discord-rpc)
endif()
if(MSVC)
# Add precompiled header
target_link_libraries(uicommon PRIVATE use_pch)
endif()