cmake_minimum_required(VERSION 3.16) project(MacModifier LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) # Try Qt6 first, fall back to Qt5 for wider compatibility set(QT_MIN_VERSION 5.15) find_package(Qt6 6.2 COMPONENTS Widgets Core QUIET) if (NOT Qt6_FOUND) find_package(Qt5 ${QT_MIN_VERSION} COMPONENTS Widgets Core REQUIRED) endif() if (WIN32) add_executable(MacModifier WIN32 src/main.cpp src/MainWindow.cpp src/MainWindow.h src/NetworkManager.cpp src/NetworkManager.h src/SshClient.cpp src/SshClient.h src/Logger.cpp src/Logger.h ) else() add_executable(MacModifier src/main.cpp src/MainWindow.cpp src/MainWindow.h src/NetworkManager.cpp src/NetworkManager.h src/SshClient.cpp src/SshClient.h src/Logger.cpp src/Logger.h ) endif() if (Qt6_FOUND) target_link_libraries(MacModifier PRIVATE Qt6::Widgets Qt6::Core) else() target_link_libraries(MacModifier PRIVATE Qt5::Widgets Qt5::Core) endif() if (WIN32) # No extra linker flags needed; WIN32 executable suppresses console window endif() install(TARGETS MacModifier RUNTIME DESTINATION .)