Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
nheko
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Nheko Reborn
nheko
Commits
d9aac3ee
Commit
d9aac3ee
authored
5 years ago
by
Nicolas Werner
Browse files
Options
Downloads
Patches
Plain Diff
Only use -Werror for our code
parent
96ad3853
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
CMakeLists.txt
+316
-315
316 additions, 315 deletions
CMakeLists.txt
with
316 additions
and
315 deletions
CMakeLists.txt
+
316
−
315
View file @
d9aac3ee
...
...
@@ -6,45 +6,43 @@ option(ASAN "Compile with address sanitizers" OFF)
option
(
QML_DEBUGGING
"Enable qml debugging"
OFF
)
set
(
CMAKE_TOOLCHAIN_FILE
"
${
CMAKE_CURRENT_LIST_DIR
}
/toolchain.cmake"
CACHE
FILEPATH
"Default toolchain"
)
CMAKE_TOOLCHAIN_FILE
"
${
CMAKE_CURRENT_LIST_DIR
}
/toolchain.cmake"
CACHE
FILEPATH
"Default toolchain"
)
option
(
HUNTER_ENABLED
"Enable Hunter package manager"
OFF
)
include
(
"cmake/HunterGate.cmake"
)
HunterGate
(
URL
"https://github.com/cpp-pm/hunter/archive/v0.23.244.tar.gz"
SHA1
"2c0f491fd0b80f7b09e3d21adb97237161ef9835"
LOCAL
)
URL
"https://github.com/cpp-pm/hunter/archive/v0.23.244.tar.gz"
SHA1
"2c0f491fd0b80f7b09e3d21adb97237161ef9835"
LOCAL
)
option
(
USE_BUNDLED_BOOST
"Use the bundled version of Boost."
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_SPDLOG
"Use the bundled version of spdlog."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_OLM
"Use the bundled version of libolm."
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_GTEST
"Use the bundled version of Google Test."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_CMARK
"Use the bundled version of cmark."
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_JSON
"Use the bundled version of nlohmann json."
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_OPENSSL
"Use the bundled version of OpenSSL."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_MTXCLIENT
"Use the bundled version of the Matrix Client library."
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_SODIUM
"Use the bundled version of libsodium."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_ZLIB
"Use the bundled version of zlib."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_LMDB
"Use the bundled version of lmdb."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_LMDBXX
"Use the bundled version of lmdb++."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
option
(
USE_BUNDLED_TWEENY
"Use the bundled version of tweeny."
${
HUNTER_ENABLED
}
)
${
HUNTER_ENABLED
}
)
list
(
APPEND CMAKE_MODULE_PATH
"
${
CMAKE_SOURCE_DIR
}
/cmake"
)
...
...
@@ -73,27 +71,27 @@ set(IDENTIFIER "com.github.mujx.nheko")
add_project_meta
(
META_FILES_TO_INCLUDE
)
if
(
NOT MSVC AND NOT APPLE
)
set
(
THREADS_PREFER_PTHREAD_FLAG ON
)
find_package
(
Threads REQUIRED
)
set
(
THREADS_PREFER_PTHREAD_FLAG ON
)
find_package
(
Threads REQUIRED
)
endif
()
if
(
BUILD_DOCS
)
find_package
(
Doxygen
)
if
(
DOXYGEN_FOUND
)
set
(
DOXYGEN_IN
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/Doxyfile.in
)
set
(
DOXYGEN_OUT
${
CMAKE_CURRENT_BINARY_DIR
}
/Doxyfile
)
configure_file
(
${
DOXYGEN_IN
}
${
DOXYGEN_OUT
}
)
add_custom_target
(
docs ALL
COMMAND
${
DOXYGEN_EXECUTABLE
}
${
DOXYGEN_OUT
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
COMMENT
"Generating API documentation with Doxygen"
VERBATIM
)
else
(
DOXYGEN_FOUND
)
message
(
"Doxygen need to be installed to generate the doxygen documentation"
)
endif
(
DOXYGEN_FOUND
)
find_package
(
Doxygen
)
if
(
DOXYGEN_FOUND
)
set
(
DOXYGEN_IN
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/Doxyfile.in
)
set
(
DOXYGEN_OUT
${
CMAKE_CURRENT_BINARY_DIR
}
/Doxyfile
)
configure_file
(
${
DOXYGEN_IN
}
${
DOXYGEN_OUT
}
)
add_custom_target
(
docs ALL
COMMAND
${
DOXYGEN_EXECUTABLE
}
${
DOXYGEN_OUT
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
COMMENT
"Generating API documentation with Doxygen"
VERBATIM
)
else
(
DOXYGEN_FOUND
)
message
(
"Doxygen need to be installed to generate the doxygen documentation"
)
endif
(
DOXYGEN_FOUND
)
endif
()
...
...
@@ -117,79 +115,76 @@ find_package(Qt5QuickCompiler)
find_package
(
Qt5DBus
)
if
(
APPLE
)
find_package
(
Qt5MacExtras REQUIRED
)
find_package
(
Qt5MacExtras REQUIRED
)
endif
(
APPLE
)
if
(
Qt5Widgets_FOUND
)
if
(
Qt5Widgets_VERSION VERSION_LESS 5.
7
.0
)
message
(
STATUS
"Qt version
${
Qt5Widgets_VERSION
}
"
)
message
(
WARNING
"Minimum supported Qt5 version is 5.
7
!"
)
endif
()
if
(
Qt5Widgets_VERSION VERSION_LESS 5.
9
.0
)
message
(
STATUS
"Qt version
${
Qt5Widgets_VERSION
}
"
)
message
(
WARNING
"Minimum supported Qt5 version is 5.
9
!"
)
endif
()
endif
(
Qt5Widgets_FOUND
)
set
(
CMAKE_INCLUDE_CURRENT_DIR ON
)
if
(
NOT MSVC
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
\
-Wall \
-Wextra \
-pipe \
-pedantic \
-fsized-deallocation \
-fdiagnostics-color=always \
-Wunreachable-code \
-std=c++17"
)
if
(
NOT CMAKE_COMPILER_IS_GNUCXX
)
# -Wshadow is buggy and broken in GCC, so do not enable it.
# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79328
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-Wshadow"
)
endif
()
if
(
"
${
CMAKE_BUILD_TYPE
}
"
STREQUAL
"Debug"
OR CI_BUILD
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-Werror"
)
endif
()
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
\
-Wall \
-Wextra \
-pipe \
-pedantic \
-fsized-deallocation \
-fdiagnostics-color=always \
-Wunreachable-code \
-std=c++17"
)
if
(
NOT CMAKE_COMPILER_IS_GNUCXX
)
# -Wshadow is buggy and broken in GCC, so do not enable it.
# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79328
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-Wshadow"
)
endif
()
endif
()
if
(
MSVC
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/bigobj"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/bigobj"
)
endif
()
if
(
NOT
(
CMAKE_BUILD_TYPE OR CMAKE_CONFIGURATION_TYPES
))
set
(
CMAKE_BUILD_TYPE
"Debug"
CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE
)
message
(
"Setting build type to '
${
CMAKE_BUILD_TYPE
}
'"
)
set
(
CMAKE_BUILD_TYPE
"Debug"
CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE
)
message
(
"Setting build type to '
${
CMAKE_BUILD_TYPE
}
'"
)
else
(
NOT
(
CMAKE_BUILD_TYPE OR CMAKE_CONFIGURATION_TYPES
))
message
(
"Build type set to '
${
CMAKE_BUILD_TYPE
}
'"
)
message
(
"Build type set to '
${
CMAKE_BUILD_TYPE
}
'"
)
endif
(
NOT
(
CMAKE_BUILD_TYPE OR CMAKE_CONFIGURATION_TYPES
))
set
(
SPDLOG_DEBUG_ON false
)
# Windows doesn't handle CMAKE_BUILD_TYPE.
if
(
NOT WIN32
)
if
(
${
CMAKE_BUILD_TYPE
}
STREQUAL
"Debug"
)
set
(
SPDLOG_DEBUG_ON true
)
else
()
set
(
SPDLOG_DEBUG_ON false
)
endif
()
if
(
${
CMAKE_BUILD_TYPE
}
STREQUAL
"Debug"
)
set
(
SPDLOG_DEBUG_ON true
)
else
()
set
(
SPDLOG_DEBUG_ON false
)
endif
()
endif
()
find_program
(
GIT git
)
if
(
GIT
)
execute_process
(
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
COMMAND
${
GIT
}
rev-parse --short HEAD
OUTPUT_VARIABLE GIT_OUT OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
GIT_OUT
)
set
(
CPACK_PACKAGE_VERSION_PATCH
"
${
CPACK_PACKAGE_VERSION_PATCH
}
-
${
GIT_OUT
}
"
)
else
()
set
(
CPACK_PACKAGE_VERSION_PATCH
"
${
CPACK_PACKAGE_VERSION_PATCH
}
"
)
endif
()
execute_process
(
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
COMMAND
${
GIT
}
rev-parse --short HEAD
OUTPUT_VARIABLE GIT_OUT OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
GIT_OUT
)
set
(
CPACK_PACKAGE_VERSION_PATCH
"
${
CPACK_PACKAGE_VERSION_PATCH
}
-
${
GIT_OUT
}
"
)
else
()
set
(
CPACK_PACKAGE_VERSION_PATCH
"
${
CPACK_PACKAGE_VERSION_PATCH
}
"
)
endif
()
endif
(
GIT
)
set
(
CPACK_PACKAGE_VERSION
${
CPACK_PACKAGE_VERSION_MAJOR
}
.
${
CPACK_PACKAGE_VERSION_MINOR
}
.
${
CPACK_PACKAGE_VERSION_PATCH
}
)
...
...
@@ -206,97 +201,97 @@ configure_file(cmake/nheko.h config/nheko.h)
# Declare source and header files.
#
set
(
SRC_FILES
# Dialogs
src/dialogs/CreateRoom.cpp
src/dialogs/ImageOverlay.cpp
src/dialogs/PreviewUploadOverlay.cpp
src/dialogs/InviteUsers.cpp
src/dialogs/JoinRoom.cpp
src/dialogs/MemberList.cpp
src/dialogs/LeaveRoom.cpp
src/dialogs/Logout.cpp
src/dialogs/UserProfile.cpp
src/dialogs/ReadReceipts.cpp
src/dialogs/ReCaptcha.cpp
src/dialogs/RoomSettings.cpp
# Emoji
src/emoji/Category.cpp
src/emoji/ItemDelegate.cpp
src/emoji/Panel.cpp
src/emoji/PickButton.cpp
src/emoji/Provider.cpp
# Timeline
src/timeline/TimelineViewManager.cpp
src/timeline/TimelineModel.cpp
src/timeline/DelegateChooser.cpp
# UI components
src/ui/Avatar.cpp
src/ui/Badge.cpp
src/ui/LoadingIndicator.cpp
src/ui/InfoMessage.cpp
src/ui/FlatButton.cpp
src/ui/FloatingButton.cpp
src/ui/Label.cpp
src/ui/OverlayModal.cpp
src/ui/SnackBar.cpp
src/ui/RaisedButton.cpp
src/ui/Ripple.cpp
src/ui/RippleOverlay.cpp
src/ui/OverlayWidget.cpp
src/ui/TextField.cpp
src/ui/TextLabel.cpp
src/ui/ToggleButton.cpp
src/ui/Theme.cpp
src/ui/ThemeManager.cpp
src/AvatarProvider.cpp
src/Cache.cpp
src/ChatPage.cpp
src/CommunitiesListItem.cpp
src/CommunitiesList.cpp
src/EventAccessors.cpp
src/InviteeItem.cpp
src/LoginPage.cpp
src/Logging.cpp
src/MainWindow.cpp
src/MatrixClient.cpp
src/MxcImageProvider.cpp
src/ColorImageProvider.cpp
src/QuickSwitcher.cpp
src/Olm.cpp
src/RegisterPage.cpp
src/RoomInfoListItem.cpp
src/RoomList.cpp
src/RunGuard.cpp
src/SideBarActions.cpp
src/Splitter.cpp
src/popups/SuggestionsPopup.cpp
src/popups/PopupItem.cpp
src/popups/ReplyPopup.cpp
src/popups/UserMentions.cpp
src/TextInputWidget.cpp
src/TopRoomBar.cpp
src/TrayIcon.cpp
src/Utils.cpp
src/UserInfoWidget.cpp
src/UserSettingsPage.cpp
src/WelcomePage.cpp
src/main.cpp
)
# Dialogs
src/dialogs/CreateRoom.cpp
src/dialogs/ImageOverlay.cpp
src/dialogs/PreviewUploadOverlay.cpp
src/dialogs/InviteUsers.cpp
src/dialogs/JoinRoom.cpp
src/dialogs/MemberList.cpp
src/dialogs/LeaveRoom.cpp
src/dialogs/Logout.cpp
src/dialogs/UserProfile.cpp
src/dialogs/ReadReceipts.cpp
src/dialogs/ReCaptcha.cpp
src/dialogs/RoomSettings.cpp
# Emoji
src/emoji/Category.cpp
src/emoji/ItemDelegate.cpp
src/emoji/Panel.cpp
src/emoji/PickButton.cpp
src/emoji/Provider.cpp
# Timeline
src/timeline/TimelineViewManager.cpp
src/timeline/TimelineModel.cpp
src/timeline/DelegateChooser.cpp
# UI components
src/ui/Avatar.cpp
src/ui/Badge.cpp
src/ui/LoadingIndicator.cpp
src/ui/InfoMessage.cpp
src/ui/FlatButton.cpp
src/ui/FloatingButton.cpp
src/ui/Label.cpp
src/ui/OverlayModal.cpp
src/ui/SnackBar.cpp
src/ui/RaisedButton.cpp
src/ui/Ripple.cpp
src/ui/RippleOverlay.cpp
src/ui/OverlayWidget.cpp
src/ui/TextField.cpp
src/ui/TextLabel.cpp
src/ui/ToggleButton.cpp
src/ui/Theme.cpp
src/ui/ThemeManager.cpp
src/AvatarProvider.cpp
src/Cache.cpp
src/ChatPage.cpp
src/CommunitiesListItem.cpp
src/CommunitiesList.cpp
src/EventAccessors.cpp
src/InviteeItem.cpp
src/LoginPage.cpp
src/Logging.cpp
src/MainWindow.cpp
src/MatrixClient.cpp
src/MxcImageProvider.cpp
src/ColorImageProvider.cpp
src/QuickSwitcher.cpp
src/Olm.cpp
src/RegisterPage.cpp
src/RoomInfoListItem.cpp
src/RoomList.cpp
src/RunGuard.cpp
src/SideBarActions.cpp
src/Splitter.cpp
src/popups/SuggestionsPopup.cpp
src/popups/PopupItem.cpp
src/popups/ReplyPopup.cpp
src/popups/UserMentions.cpp
src/TextInputWidget.cpp
src/TopRoomBar.cpp
src/TrayIcon.cpp
src/Utils.cpp
src/UserInfoWidget.cpp
src/UserSettingsPage.cpp
src/WelcomePage.cpp
src/main.cpp
)
include
(
FeatureSummary
)
if
(
USE_BUNDLED_BOOST
)
hunter_add_package
(
Boost COMPONENTS iostreams system thread
)
hunter_add_package
(
Boost COMPONENTS iostreams system thread
)
endif
()
find_package
(
Boost 1.70 REQUIRED
COMPONENTS iostreams
system
thread
)
COMPONENTS iostreams
system
thread
)
if
(
USE_BUNDLED_ZLIB
)
hunter_add_package
(
ZLIB
)
endif
()
...
...
@@ -358,10 +353,10 @@ if(USE_BUNDLED_JSON)
endif
()
find_package
(
nlohmann_json 3.2.0
)
set_package_properties
(
nlohmann_json PROPERTIES
DESCRIPTION
"JSON for Modern C++, a C++11 header-only JSON class"
URL
"https://nlohmann.github.io/json/"
TYPE REQUIRED
)
DESCRIPTION
"JSON for Modern C++, a C++11 header-only JSON class"
URL
"https://nlohmann.github.io/json/"
TYPE REQUIRED
)
if
(
USE_BUNDLED_LMDBXX
)
hunter_add_package
(
lmdbxx
)
...
...
@@ -396,80 +391,80 @@ endif()
feature_summary
(
WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES
)
qt5_wrap_cpp
(
MOC_HEADERS
# Dialogs
src/dialogs/CreateRoom.h
src/dialogs/ImageOverlay.h
src/dialogs/PreviewUploadOverlay.h
src/dialogs/InviteUsers.h
src/dialogs/JoinRoom.h
src/dialogs/MemberList.h
src/dialogs/LeaveRoom.h
src/dialogs/Logout.h
src/dialogs/UserProfile.h
src/dialogs/RawMessage.h
src/dialogs/ReadReceipts.h
src/dialogs/ReCaptcha.h
src/dialogs/RoomSettings.h
# Emoji
src/emoji/Category.h
src/emoji/ItemDelegate.h
src/emoji/Panel.h
src/emoji/PickButton.h
# Timeline
src/timeline/TimelineViewManager.h
src/timeline/TimelineModel.h
src/timeline/DelegateChooser.h
# UI components
src/ui/Avatar.h
src/ui/Badge.h
src/ui/LoadingIndicator.h
src/ui/InfoMessage.h
src/ui/FlatButton.h
src/ui/Label.h
src/ui/FloatingButton.h
src/ui/Menu.h
src/ui/OverlayWidget.h
src/ui/SnackBar.h
src/ui/RaisedButton.h
src/ui/Ripple.h
src/ui/RippleOverlay.h
src/ui/TextField.h
src/ui/TextLabel.h
src/ui/ToggleButton.h
src/ui/Theme.h
src/ui/ThemeManager.h
src/notifications/Manager.h
src/AvatarProvider.h
src/Cache_p.h
src/ChatPage.h
src/CommunitiesListItem.h
src/CommunitiesList.h
src/LoginPage.h
src/MainWindow.h
src/MxcImageProvider.h
src/InviteeItem.h
src/QuickSwitcher.h
src/RegisterPage.h
src/RoomInfoListItem.h
src/RoomList.h
src/SideBarActions.h
src/Splitter.h
src/popups/SuggestionsPopup.h
src/popups/ReplyPopup.h
src/popups/PopupItem.h
src/popups/UserMentions.h
src/TextInputWidget.h
src/TopRoomBar.h
src/TrayIcon.h
src/UserInfoWidget.h
src/UserSettingsPage.h
src/WelcomePage.h
)
# Dialogs
src/dialogs/CreateRoom.h
src/dialogs/ImageOverlay.h
src/dialogs/PreviewUploadOverlay.h
src/dialogs/InviteUsers.h
src/dialogs/JoinRoom.h
src/dialogs/MemberList.h
src/dialogs/LeaveRoom.h
src/dialogs/Logout.h
src/dialogs/UserProfile.h
src/dialogs/RawMessage.h
src/dialogs/ReadReceipts.h
src/dialogs/ReCaptcha.h
src/dialogs/RoomSettings.h
# Emoji
src/emoji/Category.h
src/emoji/ItemDelegate.h
src/emoji/Panel.h
src/emoji/PickButton.h
# Timeline
src/timeline/TimelineViewManager.h
src/timeline/TimelineModel.h
src/timeline/DelegateChooser.h
# UI components
src/ui/Avatar.h
src/ui/Badge.h
src/ui/LoadingIndicator.h
src/ui/InfoMessage.h
src/ui/FlatButton.h
src/ui/Label.h
src/ui/FloatingButton.h
src/ui/Menu.h
src/ui/OverlayWidget.h
src/ui/SnackBar.h
src/ui/RaisedButton.h
src/ui/Ripple.h
src/ui/RippleOverlay.h
src/ui/TextField.h
src/ui/TextLabel.h
src/ui/ToggleButton.h
src/ui/Theme.h
src/ui/ThemeManager.h
src/notifications/Manager.h
src/AvatarProvider.h
src/Cache_p.h
src/ChatPage.h
src/CommunitiesListItem.h
src/CommunitiesList.h
src/LoginPage.h
src/MainWindow.h
src/MxcImageProvider.h
src/InviteeItem.h
src/QuickSwitcher.h
src/RegisterPage.h
src/RoomInfoListItem.h
src/RoomList.h
src/SideBarActions.h
src/Splitter.h
src/popups/SuggestionsPopup.h
src/popups/ReplyPopup.h
src/popups/PopupItem.h
src/popups/UserMentions.h
src/TextInputWidget.h
src/TopRoomBar.h
src/TrayIcon.h
src/UserInfoWidget.h
src/UserSettingsPage.h
src/WelcomePage.h
)
#
# Bundle translations.
...
...
@@ -477,97 +472,103 @@ qt5_wrap_cpp(MOC_HEADERS
include
(
Translations
)
set
(
TRANSLATION_DEPS
${
LANG_QRC
}
${
QRC
}
${
QM_SRC
}
)
set
(
COMMON_LIBS
MatrixClient::MatrixClient
Boost::iostreams
Boost::system
Boost::thread
cmark::cmark
spdlog::spdlog
Qt5::Widgets
Qt5::Svg
Qt5::Concurrent
Qt5::Multimedia
Qt5::Qml
Qt5::QuickControls2
Qt5::QuickWidgets
nlohmann_json::nlohmann_json
lmdbxx::lmdbxx
tweeny
)
if
(
USE_BUNDLED_LMDB
)
set
(
NHEKO_LIBS
${
COMMON_LIBS
}
liblmdb::lmdb
)
else
()
set
(
NHEKO_LIBS
${
COMMON_LIBS
}
PkgConfig::lmdb
)
endif
()
if
(
APPLE
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
-framework Foundation -framework Cocoa"
)
set
(
SRC_FILES
${
SRC_FILES
}
src/notifications/ManagerMac.mm src/emoji/MacHelper.mm
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
-framework Foundation -framework Cocoa"
)
set
(
SRC_FILES
${
SRC_FILES
}
src/notifications/ManagerMac.mm src/emoji/MacHelper.mm
)
elseif
(
WIN32
)
file
(
DOWNLOAD
"https://raw.githubusercontent.com/mohabouje/WinToast/41ed1c58d5dce0ee9c01dbdeac05be45358d4f57/src/wintoastlib.cpp"
${
PROJECT_SOURCE_DIR
}
/src/wintoastlib.cpp
EXPECTED_HASH SHA256=1A1A7CE41C1052B12946798F4A6C67CE1FAD209C967F5ED4D720B173527E2073
)
file
(
DOWNLOAD
"https://raw.githubusercontent.com/mohabouje/WinToast/41ed1c58d5dce0ee9c01dbdeac05be45358d4f57/src/wintoastlib.cpp"
${
PROJECT_SOURCE_DIR
}
/src/wintoastlib.cpp
EXPECTED_HASH SHA256=1A1A7CE41C1052B12946798F4A6C67CE1FAD209C967F5ED4D720B173527E2073
)
file
(
DOWNLOAD
"https://raw.githubusercontent.com/mohabouje/WinToast/41ed1c58d5dce0ee9c01dbdeac05be45358d4f57/src/wintoastlib.h"
${
PROJECT_SOURCE_DIR
}
/src/wintoastlib.h
EXPECTED_HASH SHA256=b4481023c5782733795838be22bf1a75f45d87458cd4d9a5a75f664a146eea11
)
file
(
DOWNLOAD
"https://raw.githubusercontent.com/mohabouje/WinToast/41ed1c58d5dce0ee9c01dbdeac05be45358d4f57/src/wintoastlib.h"
${
PROJECT_SOURCE_DIR
}
/src/wintoastlib.h
EXPECTED_HASH SHA256=b4481023c5782733795838be22bf1a75f45d87458cd4d9a5a75f664a146eea11
)
set
(
SRC_FILES
${
SRC_FILES
}
src/notifications/ManagerWin.cpp src/wintoastlib.cpp
)
set
(
SRC_FILES
${
SRC_FILES
}
src/notifications/ManagerWin.cpp src/wintoastlib.cpp
)
else
()
set
(
SRC_FILES
${
SRC_FILES
}
src/notifications/ManagerLinux.cpp
)
set
(
SRC_FILES
${
SRC_FILES
}
src/notifications/ManagerLinux.cpp
)
endif
()
set
(
NHEKO_DEPS
${
SRC_FILES
}
${
UI_HEADERS
}
${
MOC_HEADERS
}
${
TRANSLATION_DEPS
}
${
META_FILES_TO_INCLUDE
}
)
${
SRC_FILES
}
${
UI_HEADERS
}
${
MOC_HEADERS
}
${
TRANSLATION_DEPS
}
${
META_FILES_TO_INCLUDE
}
)
if
(
ASAN
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fsanitize=address,undefined"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fsanitize=address,undefined"
)
endif
()
add_executable
(
nheko
${
OS_BUNDLE
}
${
NHEKO_DEPS
}
)
if
(
APPLE
)
add_executable
(
nheko
${
OS_BUNDLE
}
${
NHEKO_DEPS
}
)
target_link_libraries
(
nheko
${
NHEKO_LIBS
}
Qt5::MacExtras
)
target_link_libraries
(
nheko PRIVATE Qt5::MacExtras
)
elseif
(
WIN32
)
add_executable
(
nheko
${
OS_BUNDLE
}
${
ICON_FILE
}
${
NHEKO_DEPS
}
)
target_compile_definitions
(
nheko PRIVATE WIN32_LEAN_AND_MEAN
)
target_link_libraries
(
nheko
${
NTDLIB
}
${
NHEKO_LIBS
}
Qt5::WinMain
)
target_compile_definitions
(
nheko PRIVATE WIN32_LEAN_AND_MEAN
)
target_link_libraries
(
nheko PRIVATE
${
NTDLIB
}
Qt5::WinMain
)
else
()
add_executable
(
nheko
${
OS_BUNDLE
}
${
NHEKO_DEPS
}
)
target_link_libraries
(
nheko
${
NHEKO_LIBS
}
Qt5::DBus
)
target_link_libraries
(
nheko PRIVATE Qt5::DBus
)
endif
()
target_include_directories
(
nheko PRIVATE src includes
)
target_link_libraries
(
nheko PRIVATE
MatrixClient::MatrixClient
Boost::iostreams
Boost::system
Boost::thread
cmark::cmark
spdlog::spdlog
Qt5::Widgets
Qt5::Svg
Qt5::Concurrent
Qt5::Multimedia
Qt5::Qml
Qt5::QuickControls2
Qt5::QuickWidgets
nlohmann_json::nlohmann_json
lmdbxx::lmdbxx
tweeny
)
if
(
USE_BUNDLED_LMDB
)
target_link_libraries
(
nheko PRIVATE liblmdb::lmdb
)
else
()
target_link_libraries
(
nheko PRIVATE PkgConfig::lmdb
)
endif
()
if
(
QML_DEBUGGING
)
target_compile_definitions
(
nheko PRIVATE QML_DEBUGGING
)
endif
()
if
(
NOT MSVC
)
if
(
"
${
CMAKE_BUILD_TYPE
}
"
STREQUAL
"Debug"
OR CI_BUILD
)
target_compile_options
(
nheko PRIVATE
"-Werror"
)
endif
()
endif
()
set_target_properties
(
nheko PROPERTIES SKIP_BUILD_RPATH TRUE
)
if
(
UNIX AND NOT APPLE
)
install
(
TARGETS nheko RUNTIME DESTINATION
"
${
CMAKE_INSTALL_BINDIR
}
"
)
install
(
FILES
"resources/nheko-16.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/16x16/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-32.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/32x32/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-48.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/48x48/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-64.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/64x64/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-128.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/128x128/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-256.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/256x256/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-512.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/512x512/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko.desktop"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/applications"
)
install
(
FILES
"resources/nheko.appdata.xml"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/metainfo"
)
if
(
NOT TARGET uninstall
)
configure_file
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/cmake_uninstall.cmake.in"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
add_custom_target
(
uninstall
COMMAND
${
CMAKE_COMMAND
}
-P
${
CMAKE_CURRENT_BINARY_DIR
}
/cmake_uninstall.cmake
)
endif
()
install
(
TARGETS nheko RUNTIME DESTINATION
"
${
CMAKE_INSTALL_BINDIR
}
"
)
install
(
FILES
"resources/nheko-16.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/16x16/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-32.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/32x32/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-48.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/48x48/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-64.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/64x64/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-128.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/128x128/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-256.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/256x256/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko-512.png"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/icons/hicolor/512x512/apps"
RENAME
"nheko.png"
)
install
(
FILES
"resources/nheko.desktop"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/applications"
)
install
(
FILES
"resources/nheko.appdata.xml"
DESTINATION
"
${
CMAKE_INSTALL_DATAROOTDIR
}
/metainfo"
)
if
(
NOT TARGET uninstall
)
configure_file
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/cmake_uninstall.cmake.in"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
add_custom_target
(
uninstall
COMMAND
${
CMAKE_COMMAND
}
-P
${
CMAKE_CURRENT_BINARY_DIR
}
/cmake_uninstall.cmake
)
endif
()
endif
()
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment