93 lines
2.5 KiB
CMake
93 lines
2.5 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
|
|
core
|
|
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(UNIX AND NOT APPLE AND NOT ANDROID AND ENABLE_QT)
|
|
find_package(Qt6 REQUIRED COMPONENTS DBus)
|
|
target_sources(uicommon PRIVATE DBusUtils.cpp)
|
|
target_compile_definitions(uicommon PRIVATE -DHAVE_QTDBUS=1)
|
|
target_link_libraries(uicommon PUBLIC Qt6::DBus)
|
|
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")
|
|
target_compile_definitions(uicommon 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(uicommon USE_SHARED
|
|
mcdisassembler target ${LLVM_EXPAND_COMPONENTS}
|
|
)
|
|
target_include_directories(uicommon PRIVATE ${LLVM_INCLUDE_DIRS})
|
|
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()
|