AdaptixC2-Mod0/CMakeLists.txt
2026-04-06 00:20:51 -05:00

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()