Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.14)
- project(DR VERSION 0.1 LANGUAGES CXX)
- set(CMAKE_AUTOUIC ON)
- set(CMAKE_AUTOMOC ON)
- set(CMAKE_AUTORCC ON)
- SET(QT_USE_QTGUI TRUE)
- SET(QT_USE_QTPLUGIN TRUE)
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Quick Qml)
- find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Quick Qml Multimedia QmlImportScanner QuickControls2 REQUIRED)
- set(PROJECT_SOURCES
- main.cpp
- qml.qrc
- logic.cpp
- )
- if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
- qt_add_executable(DR
- MANUAL_FINALIZATION
- ${PROJECT_SOURCES}
- )
- else()
- if(ANDROID)
- add_library(DR SHARED
- ${PROJECT_SOURCES}
- )
- else()
- add_executable(DR
- ${PROJECT_SOURCES}
- logic.h logic.cpp
- )
- endif()
- endif()
- target_link_libraries(DR
- PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::Multimedia Qt${QT_VERSION_MAJOR}::Qml)
- # Set properties before calling qt_import_qml_plugins
- set_target_properties(DR PROPERTIES
- MACOSX_BUNDLE TRUE
- WIN32_EXECUTABLE TRUE
- )
- # Call qt_import_qml_plugins only for static library target
- get_target_property(QT_TARGET_TYPE Qt${QT_VERSION_MAJOR}::Core TYPE)
- if(${QT_TARGET_TYPE} STREQUAL "STATIC_LIBRARY")
- qt_import_qml_plugins(DR)
- endif()
- # Set remaining properties after qt_import_qml_plugins
- set_target_properties(DR PROPERTIES
- MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
- MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
- )
- include(GNUInstallDirs)
- install(TARGETS DR
- BUNDLE DESTINATION .
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
- if(QT_VERSION_MAJOR EQUAL 6)
- qt_finalize_executable(DR)
- endif()
Advertisement
Add Comment
Please, Sign In to add comment