cmake_minimum_required(VERSION 3.16) project(AntiClipSettings VERSION 0.1 LANGUAGES C CXX) set(APPLICATION_NAME "T009上位机") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(Projects_ROOT E:/Projects) set(Libraries_ROOT ${Projects_ROOT}/Libraries) set(BOOST_ROOT ${Libraries_ROOT}/boost_1_86_0_msvc2022_64bit) set(Boost_INCLUDE_DIR ${BOOST_ROOT}/include/boost-1_86) option(Boost_USE_STATIC_LIBS OFF) add_compile_definitions( BOOST_USE_WINAPI_VERSION=BOOST_WINAPI_VERSION_WIN10 ) set(FFmpeg_ROOT ${Libraries_ROOT}/ffmpeg-6.1.1-full_build-shared) set(FFmpeg_INCLUDE_DIR ${FFmpeg_ROOT}/include) set(FFmpeg_LIB_DIR ${FFmpeg_ROOT}/lib) find_package(Boost REQUIRED COMPONENTS json) find_package(Qt6 REQUIRED COMPONENTS Qml Quick Network QuickControls2) qt_standard_project_setup(REQUIRES 6.5) execute_process( COMMAND D:/msys64/usr/bin/git rev-parse --short HEAD OUTPUT_VARIABLE GIT_COMMIT_ID OUTPUT_STRIP_TRAILING_WHITESPACE ) configure_file(Configuration.h.in Configuration.h) qt_add_executable(AntiClipSettings AntiClipSettings.rc main.cpp Application.h Application.cpp DataStructure.h DataCollection.h DataCollection.cpp DeviceConnection.h DeviceConnection.cpp DeviceListModel.h DeviceListModel.cpp H264Palyer.h H264Palyer.cpp VideoFrameProvider.h VideoFrameProvider.cpp ) qt_add_qml_module(AntiClipSettings URI AntiClipSettings QML_FILES qml/Main.qml qml/DeviceView.qml qml/IconButton.qml qml/MessageDialog.qml qml/NetworkSettingPopup.qml qml/OtaPopup.qml qml/StatusTip.qml qml/DataCollectionPopup.qml qml/IpTextField.qml RESOURCES resources/popup_close.svg resources/prompt_delete.svg resources/successfull.svg resources/warning.svg ) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manually though. set_target_properties(AntiClipSettings PROPERTIES # MACOSX_BUNDLE_GUI_IDENTIFIER com.example.AntiClipSettings MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) add_subdirectory(${Projects_ROOT}/Kylin/Universal Universal) add_subdirectory(${Projects_ROOT}/Kylin/Encrypt Encrypt) target_include_directories(AntiClipSettings PRIVATE ${FFmpeg_INCLUDE_DIR} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ) target_link_directories(AntiClipSettings PRIVATE ${FFmpeg_LIB_DIR} ) target_link_libraries(AntiClipSettings PRIVATE Qt6::Qml PRIVATE Qt6::Quick PRIVATE Qt6::QuickControls2 PRIVATE Qt6::Network PRIVATE Boost::json PRIVATE avcodec PRIVATE swscale PRIVATE avutil PRIVATE avdevice PRIVATE avformat PRIVATE Universal PRIVATE Encrypt ) include(GNUInstallDirs) install(TARGETS AntiClipSettings BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_qml_app_script( TARGET AntiClipSettings OUTPUT_SCRIPT deploy_script MACOS_BUNDLE_POST_BUILD NO_UNSUPPORTED_PLATFORM_ERROR DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM ) install(SCRIPT ${deploy_script})