cmake_minimum_required(VERSION 3.5) project(xsync VERSION 0.1 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets console REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Charts REQUIRED) set(PROJECT_SOURCES src/logger.cpp src/main.cpp src/zqthread.cpp mainwindow.cpp mainwindow.h mainwindow.ui libxsync/xsync.cpp libxsync/iflytop_xsync_protocol/iflytop_xsync_protocol.c src/xsync_udp_factory_impl.cpp ) add_executable(xsync ${PROJECT_SOURCES} ) target_link_libraries(xsync PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Charts wsock32) set_target_properties(xsync PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) if(QT_VERSION_MAJOR EQUAL 6) qt_finalize_executable(xsync) endif()