305 lines
9.6 KiB
CMake
305 lines
9.6 KiB
CMake
cmake_minimum_required(VERSION 3.28) # 3.15
|
|
project(AdaptixClient LANGUAGES C CXX)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
if(WIN32)
|
|
set(Qt6_DIR "C:/msys64/mingw64/lib/cmake")
|
|
endif()
|
|
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
|
|
|
add_subdirectory(Libs/kddockwidgets)
|
|
add_subdirectory(Libs/qlementine)
|
|
|
|
if(WIN32 AND MINGW)
|
|
set(OPENSSL_USE_STATIC_LIBS TRUE)
|
|
endif()
|
|
find_package( OpenSSL REQUIRED )
|
|
|
|
if(WIN32 AND MINGW)
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
|
|
endif()
|
|
|
|
find_package(Qt6
|
|
REQUIRED COMPONENTS
|
|
Core
|
|
Gui
|
|
Widgets
|
|
Network
|
|
WebSockets
|
|
Sql
|
|
Qml
|
|
)
|
|
|
|
include_directories(
|
|
Headers
|
|
Libs
|
|
)
|
|
|
|
### KDDOCKWIDGETS
|
|
|
|
set(KDDOCKWIDGETS_RESOURCES Libs/kddockwidgets/kddockwidgets_resources.qrc)
|
|
|
|
### KONSOLE
|
|
|
|
set(KONSOLE_SOURCES
|
|
|
|
Libs/Konsole/res.qrc
|
|
|
|
Libs/Konsole/util/utf8proc.c
|
|
Libs/Konsole/util/CharWidth.cpp
|
|
Libs/Konsole/util/ColorScheme.cpp
|
|
Libs/Konsole/util/Filter.cpp
|
|
Libs/Konsole/util/History.cpp
|
|
Libs/Konsole/util/HistorySearch.cpp
|
|
Libs/Konsole/util/KeyboardTranslator.cpp
|
|
Libs/Konsole/util/SearchBar.cpp
|
|
Libs/Konsole/util/TerminalCharacterDecoder.cpp
|
|
Libs/Konsole/Emulation.cpp
|
|
Libs/Konsole/Vt102Emulation.cpp
|
|
Libs/Konsole/Screen.cpp
|
|
Libs/Konsole/ScreenWindow.cpp
|
|
Libs/Konsole/TerminalDisplay.cpp
|
|
Libs/Konsole/konsole.cpp
|
|
)
|
|
|
|
set_source_files_properties(
|
|
Libs/Konsole/util/utf8proc.c
|
|
PROPERTIES LANGUAGE C
|
|
)
|
|
|
|
set(KONSOLE_HEADERS
|
|
Libs/Konsole/util/utf8proc.h
|
|
Libs/Konsole/util/CharWidth.h
|
|
Libs/Konsole/util/CharacterColor.h
|
|
Libs/Konsole/util/Character.h
|
|
Libs/Konsole/util/ColorScheme.h
|
|
Libs/Konsole/util/Filter.h
|
|
Libs/Konsole/util/History.h
|
|
Libs/Konsole/util/HistorySearch.h
|
|
Libs/Konsole/util/KeyboardTranslator.h
|
|
Libs/Konsole/util/SearchBar.h
|
|
Libs/Konsole/util/TerminalCharacterDecoder.h
|
|
Libs/Konsole/Emulation.h
|
|
Libs/Konsole/Vt102Emulation.h
|
|
Libs/Konsole/Screen.h
|
|
Libs/Konsole/ScreenWindow.h
|
|
Libs/Konsole/TerminalDisplay.h
|
|
Libs/Konsole/konsole.h
|
|
)
|
|
|
|
###
|
|
|
|
SET( HEADERS
|
|
Headers/main.h
|
|
Headers/Utils/Logs.h
|
|
Headers/UI/Dialogs/DialogConnect.h
|
|
Headers/Utils/Convert.h
|
|
Headers/MainAdaptix.h
|
|
Headers/Client/Storage.h
|
|
Headers/Client/AuthProfile.h
|
|
Headers/Utils/FileSystem.h
|
|
Headers/Client/Requestor.h
|
|
Headers/Client/HttpRequestManager.h
|
|
Headers/UI/MainUI.h
|
|
Headers/UI/Widgets/AdaptixWidget.h
|
|
Headers/UI/Widgets/LogsWidget.h
|
|
Headers/Workers/WebSocketWorker.h
|
|
Headers/UI/Dialogs/DialogSyncPacket.h
|
|
Headers/UI/Widgets/ListenersWidget.h
|
|
Headers/UI/Dialogs/DialogListener.h
|
|
Headers/UI/Widgets/SessionsTableWidget.h
|
|
Headers/UI/Dialogs/DialogAgent.h
|
|
Headers/UI/Widgets/ConsoleWidget.h
|
|
Headers/Agent/Agent.h
|
|
Headers/Workers/LastTickWorker.h
|
|
Headers/Agent/Commander.h
|
|
Headers/UI/Widgets/DownloadsWidget.h
|
|
Headers/UI/Widgets/BrowserFilesWidget.h
|
|
Headers/UI/Widgets/BrowserProcessWidget.h
|
|
Headers/UI/Widgets/TasksWidget.h
|
|
Headers/UI/Dialogs/DialogSettings.h
|
|
Headers/Client/Extender.h
|
|
Headers/UI/Dialogs/DialogExtender.h
|
|
Headers/Utils/CustomElements.h
|
|
Headers/Client/Settings.h
|
|
Headers/Client/ConsoleTheme.h
|
|
Headers/UI/Widgets/TunnelsWidget.h
|
|
Headers/Utils/KeyPressHandler.h
|
|
Headers/UI/Graph/SessionsGraph.h
|
|
Headers/UI/Graph/GraphItem.h
|
|
Headers/UI/Graph/GraphItemLink.h
|
|
Headers/UI/Graph/GraphScene.h
|
|
Headers/UI/Graph/LayoutTreeLeft.h
|
|
Headers/UI/Graph/LayoutTreeTop.h
|
|
Headers/UI/Widgets/ScreenshotsWidget.h
|
|
Headers/UI/Dialogs/DialogTunnel.h
|
|
Headers/Client/TunnelEndpoint.h
|
|
Headers/Workers/TunnelWorker.h
|
|
Headers/Workers/SocksHandshakeWorker.h
|
|
Headers/UI/Widgets/TerminalContainerWidget.h
|
|
Headers/Workers/TerminalWorker.h
|
|
Headers/Workers/BuildWorker.h
|
|
Headers/UI/Dialogs/DialogDownloader.h
|
|
Headers/Workers/DownloaderWorker.h
|
|
Headers/Workers/UploaderWorker.h
|
|
Headers/UI/Dialogs/DialogUploader.h
|
|
Headers/Client/AxScript/AxScriptManager.h
|
|
Headers/Client/AxScript/AxScriptEngine.h
|
|
Headers/Client/AxScript/AxScriptWorker.h
|
|
Headers/Client/AxScript/AxUiFactory.h
|
|
Headers/Client/AxScript/BridgeApp.h
|
|
Headers/Client/AxScript/BridgeEvent.h
|
|
Headers/Client/AxScript/BridgeForm.h
|
|
Headers/Client/AxScript/BridgeMenu.h
|
|
Headers/Client/AxScript/AxCommandWrappers.h
|
|
Headers/Client/AxScript/AxElementWrappers.h
|
|
Headers/UI/Widgets/CredentialsWidget.h
|
|
Headers/UI/Dialogs/DialogCredential.h
|
|
Headers/UI/Widgets/AxConsoleWidget.h
|
|
Headers/UI/Dialogs/DialogTarget.h
|
|
Headers/UI/Dialogs/DialogSaveTask.h
|
|
Headers/UI/Widgets/ChatWidget.h
|
|
Headers/UI/Widgets/AbstractDock.h
|
|
Headers/Utils/NonBlockingDialogs.h
|
|
Headers/UI/Dialogs/DialogSubscriptions.h
|
|
Headers/Utils/FontManager.h
|
|
Headers/Utils/TitleBarStyle.h
|
|
Headers/UI/Widgets/DockWidgetRegister.h
|
|
)
|
|
|
|
add_executable(AdaptixClient
|
|
${KONSOLE_SOURCES}
|
|
${KONSOLE_HEADERS}
|
|
|
|
${KDDOCKWIDGETS_RESOURCES}
|
|
|
|
${HEADERS}
|
|
|
|
Source/main.cpp
|
|
|
|
Resources/Resources.qrc
|
|
|
|
Source/Utils/Logs.cpp
|
|
Source/UI/Dialogs/DialogConnect.cpp
|
|
Source/UI/Dialogs/DialogSubscriptions.cpp
|
|
Source/Utils/Convert.cpp
|
|
Source/MainAdaptix.cpp
|
|
Source/Client/Storage.cpp
|
|
Source/Client/AuthProfile.cpp
|
|
Source/Utils/FileSystem.cpp
|
|
Source/Client/Requestor.cpp
|
|
Source/Client/HttpRequestManager.cpp
|
|
Source/UI/MainUI.cpp
|
|
Source/UI/Widgets/AdaptixWidget.cpp
|
|
Source/UI/Widgets/LogsWidget.cpp
|
|
Source/Workers/WebSocketWorker.cpp
|
|
Source/UI/Dialogs/DialogSyncPacket.cpp
|
|
Source/Client/ProcessSyncPacket.cpp
|
|
Source/UI/Widgets/ListenersWidget.cpp
|
|
Source/UI/Dialogs/DialogListener.cpp
|
|
Source/UI/Widgets/SessionsTableWidget.cpp
|
|
Source/UI/Dialogs/DialogAgent.cpp
|
|
Source/UI/Dialogs/DialogAgentData.cpp
|
|
Source/UI/Widgets/ConsoleWidget.cpp
|
|
Source/Agent/Agent.cpp
|
|
Source/Workers/LastTickWorker.cpp
|
|
Source/Agent/Commander.cpp
|
|
Source/UI/Widgets/DownloadsWidget.cpp
|
|
Source/UI/Widgets/BrowserFilesWidget.cpp
|
|
Source/UI/Widgets/BrowserProcessWidget.cpp
|
|
Source/UI/Widgets/TasksWidget.cpp
|
|
Source/UI/Dialogs/DialogSettings.cpp
|
|
Source/Client/Extender.cpp
|
|
Source/UI/Dialogs/DialogExtender.cpp
|
|
Source/Utils/CustomElements.cpp
|
|
Source/Client/Settings.cpp
|
|
Source/Client/ConsoleTheme.cpp
|
|
Source/UI/Widgets/TunnelsWidget.cpp
|
|
Source/UI/Graph/SessionsGraph.cpp
|
|
Source/UI/Graph/GraphItem.cpp
|
|
Source/UI/Graph/GraphItemLink.cpp
|
|
Source/UI/Graph/GraphScene.cpp
|
|
Source/UI/Graph/LayoutTreeLeft.cpp
|
|
Source/UI/Graph/LayoutTreeTop.cpp
|
|
Source/UI/Widgets/ScreenshotsWidget.cpp
|
|
Source/UI/Dialogs/DialogTunnel.cpp
|
|
Source/Client/TunnelEndpoint.cpp
|
|
Source/Workers/TunnelWorker.cpp
|
|
Source/Workers/SocksHandshakeWorker.cpp
|
|
Source/UI/Widgets/TerminalContainerWidget.cpp
|
|
Source/Workers/TerminalWorker.cpp
|
|
Source/Workers/BuildWorker.cpp
|
|
Source/UI/Dialogs/DialogDownloader.cpp
|
|
Source/Workers/DownloaderWorker.cpp
|
|
Source/Workers/UploaderWorker.cpp
|
|
Source/UI/Dialogs/DialogUploader.cpp
|
|
Source/Client/AxScript/AxScriptManager.cpp
|
|
Source/Client/AxScript/AxScriptEngine.cpp
|
|
Source/Client/AxScript/AxScriptWorker.cpp
|
|
Source/Client/AxScript/AxUiFactory.cpp
|
|
Source/Client/AxScript/BridgeApp.cpp
|
|
Source/Client/AxScript/BridgeEvent.cpp
|
|
Source/Client/AxScript/BridgeForm.cpp
|
|
Source/Client/AxScript/BridgeMenu.cpp
|
|
Source/Client/AxScript/AxCommandWrappers.cpp
|
|
Source/Client/AxScript/AxElementWrappers.cpp
|
|
Source/UI/Widgets/CredentialsWidget.cpp
|
|
Source/UI/Dialogs/DialogCredential.cpp
|
|
Source/UI/Widgets/AxConsoleWidget.cpp
|
|
Source/UI/Widgets/TargetsWidget.cpp
|
|
Source/UI/Dialogs/DialogTarget.cpp
|
|
Source/UI/Dialogs/DialogSaveTask.cpp
|
|
Source/UI/Widgets/ChatWidget.cpp
|
|
Source/Utils/NonBlockingDialogs.cpp
|
|
Source/Utils/FontManager.cpp
|
|
Source/Utils/TitleBarStyle.cpp
|
|
)
|
|
|
|
target_compile_definitions(
|
|
AdaptixClient
|
|
PUBLIC KDDW_FRONTEND_QTWIDGETS KDDW_FRONTEND_QT BUILDING_DOCKS_LIBRARY
|
|
PRIVATE QT_DEPRECATED_WARNINGS QT_NO_KEYWORDS
|
|
# QT_NO_SIGNALS_SLOTS_KEYWORDS
|
|
)
|
|
|
|
target_link_libraries( AdaptixClient
|
|
PRIVATE
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::Widgets
|
|
Qt6::Network
|
|
Qt6::WebSockets
|
|
Qt6::Sql
|
|
Qt6::Qml
|
|
OpenSSL::Crypto
|
|
|
|
kddockwidgets
|
|
qlementine
|
|
)
|
|
|
|
if(WIN32)
|
|
target_link_libraries( AdaptixClient
|
|
PRIVATE
|
|
wsock32
|
|
ws2_32
|
|
crypt32
|
|
iphlpapi
|
|
netapi32
|
|
version
|
|
winmm
|
|
userenv
|
|
dwmapi
|
|
)
|
|
target_link_options( AdaptixClient PRIVATE -static-libgcc -static-libstdc++ )
|
|
target_link_libraries( AdaptixClient PRIVATE -Wl,-Bstatic -lwinpthread -Wl,-Bdynamic )
|
|
elseif(UNIX)
|
|
target_link_libraries( AdaptixClient
|
|
PRIVATE
|
|
pthread
|
|
dl
|
|
)
|
|
endif() |