mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-12 07:14:37 +00:00
cfef7dc443
Fix BigInt compilation on linux Remove c++20 optimization for NamedType Add assert for failing getChats that was providing an easy to miss warning Enable linux CI build Don't run tests. They fail to run in docker with "malloc_consolidate(): invalid chunk size", probably due to status-go
132 lines
3.6 KiB
CMake
132 lines
3.6 KiB
CMake
# Light helpers library expected to be used by all other libraries
|
|
#
|
|
cmake_minimum_required(VERSION 3.21)
|
|
|
|
project(StatusGoQt
|
|
VERSION 0.1.0
|
|
LANGUAGES CXX)
|
|
|
|
set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS true)
|
|
|
|
find_package(nlohmann_json 3.10.5 REQUIRED)
|
|
find_package(Boost)
|
|
|
|
find_package(Qt6 ${STATUS_QT_VERSION} COMPONENTS Core Concurrent Gui REQUIRED)
|
|
qt6_standard_project_setup()
|
|
|
|
add_library(${PROJECT_NAME} SHARED)
|
|
|
|
# Use by linker only
|
|
set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS Debug)
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
PUBLIC
|
|
Status::Helpers
|
|
Boost::headers
|
|
|
|
PRIVATE
|
|
Qt6::Gui
|
|
Qt6::Core
|
|
Qt6::Concurrent
|
|
|
|
nlohmann_json::nlohmann_json
|
|
|
|
statusgo_shared
|
|
)
|
|
add_library(Status::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
PRIVATE
|
|
src/StatusGo
|
|
# TODO: Workaround to QML_ELEMENT Qt6
|
|
INTERFACE
|
|
src/StatusGo
|
|
|
|
PUBLIC
|
|
src
|
|
)
|
|
|
|
add_subdirectory(tests)
|
|
|
|
# Copy status-go lib close to the executable
|
|
# Temporary workaround; TODO: see a better alternative that doesn't depend on target order (dedicated dependencies dir?)
|
|
# and current directory (on mac). Use bundle or set rpath relative to executable
|
|
get_target_property(STATUSGO_LIBRARY_PATH statusgo_shared IMPORTED_LOCATION)
|
|
add_custom_command(
|
|
TARGET
|
|
${PROJECT_NAME}
|
|
POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
$<TARGET_FILE:statusgo_shared>
|
|
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
|
COMMENT "Copying status-go lib beside project executable"
|
|
)
|
|
|
|
install(
|
|
IMPORTED_RUNTIME_ARTIFACTS
|
|
statusgo_shared
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
add_custom_command(
|
|
TARGET
|
|
${PROJECT_NAME}
|
|
POST_BUILD
|
|
# Workaround, status-go CMakeLists.txt should set the correct TARGET_SONAME_FILE
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
$<TARGET_SONAME_FILE:statusgo_shared>/libstatus.so.0
|
|
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
|
COMMENT "Copying status-go libstatus.so.0 lib beside project executable"
|
|
)
|
|
install(
|
|
FILES
|
|
$<TARGET_SONAME_FILE:statusgo_shared>/libstatus.so.0
|
|
TYPE LIB
|
|
)
|
|
endif()
|
|
|
|
target_sources(${PROJECT_NAME}
|
|
PRIVATE
|
|
src/StatusGo/General.h
|
|
src/StatusGo/General.cpp
|
|
src/StatusGo/Types.h
|
|
src/StatusGo/Utils.h
|
|
src/StatusGo/Utils.cpp
|
|
|
|
src/StatusGo/Accounts/Accounts.h
|
|
src/StatusGo/Accounts/Accounts.cpp
|
|
src/StatusGo/Accounts/accounts_types.h
|
|
src/StatusGo/Accounts/AccountsAPI.h
|
|
src/StatusGo/Accounts/AccountsAPI.cpp
|
|
src/StatusGo/Accounts/ChatOrWalletAccount.h
|
|
src/StatusGo/Accounts/ChatOrWalletAccount.cpp
|
|
|
|
src/StatusGo/Chat/ChatAPI.h
|
|
src/StatusGo/Chat/ChatAPI.cpp
|
|
src/StatusGo/Chat/ChatDto.h
|
|
src/StatusGo/Chat/ChatDto.cpp
|
|
|
|
src/StatusGo/Messenger/Service.h
|
|
src/StatusGo/Messenger/Service.cpp
|
|
|
|
src/StatusGo/Metadata/api_response.h
|
|
src/StatusGo/Metadata/api_response.cpp
|
|
|
|
src/StatusGo/SignalsManager.h
|
|
src/StatusGo/SignalsManager.cpp
|
|
|
|
src/StatusGo/Settings/SettingsAPI.h
|
|
src/StatusGo/Settings/SettingsAPI.cpp
|
|
src/StatusGo/Settings/SettingsDto.h
|
|
src/StatusGo/Settings/SettingsDto.cpp
|
|
|
|
src/StatusGo/Wallet/BigInt.h
|
|
src/StatusGo/Wallet/BigInt.cpp
|
|
src/StatusGo/Wallet/DerivedAddress.h
|
|
src/StatusGo/Wallet/NetworkConfiguration.h
|
|
src/StatusGo/Wallet/Token.h
|
|
src/StatusGo/Wallet/wallet_types.h
|
|
src/StatusGo/Wallet/WalletApi.h
|
|
src/StatusGo/Wallet/WalletApi.cpp
|
|
)
|