|
| 1 | +cmake_minimum_required(VERSION 3.5) |
| 2 | + |
| 3 | +project( |
| 4 | + TestWigglyWidget |
| 5 | + VERSION 0.1 |
| 6 | + LANGUAGES CXX) |
| 7 | + |
| 8 | +set(CMAKE_AUTOUIC ON) |
| 9 | +set(CMAKE_AUTOMOC ON) |
| 10 | +set(CMAKE_AUTORCC ON) |
| 11 | + |
| 12 | +set(CMAKE_CXX_STANDARD 17) |
| 13 | +set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| 14 | + |
| 15 | +# 配置安装目录 |
| 16 | +set(CMAKE_INSTALL_DIR "${CMAKE_SOURCE_DIR}/dist") |
| 17 | + |
| 18 | +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) |
| 19 | +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) |
| 20 | + |
| 21 | +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../LibWigglyWidget") |
| 22 | + |
| 23 | +set(PROJECT_SOURCES main.cpp) |
| 24 | + |
| 25 | +if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) |
| 26 | + qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION ${PROJECT_SOURCES}) |
| 27 | + # Define target properties for Android with Qt 6 as: set_property(TARGET |
| 28 | + # TestWigglyWidget APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR |
| 29 | + # ${CMAKE_CURRENT_SOURCE_DIR}/android) For more information, see |
| 30 | + # https://doc.qt.io/qt-6/qt-add-executable.html#target-creation |
| 31 | +else() |
| 32 | + if(ANDROID) |
| 33 | + add_library(${PROJECT_NAME} SHARED ${PROJECT_SOURCES}) |
| 34 | + # Define properties for Android with Qt 5 after find_package() calls as: |
| 35 | + # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") |
| 36 | + else() |
| 37 | + add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}) |
| 38 | + endif() |
| 39 | +endif() |
| 40 | + |
| 41 | +target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets |
| 42 | + LibWigglyWidget) |
| 43 | + |
| 44 | +# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. If |
| 45 | +# you are developing for iOS or macOS you should consider setting an explicit, |
| 46 | +# fixed bundle identifier manually though. |
| 47 | +if(${QT_VERSION} VERSION_LESS 6.1.0) |
| 48 | + set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER |
| 49 | + com.example.TestWigglyWidget) |
| 50 | +endif() |
| 51 | +set_target_properties( |
| 52 | + ${PROJECT_NAME} |
| 53 | + PROPERTIES ${BUNDLE_ID_OPTION} MACOSX_BUNDLE_BUNDLE_VERSION |
| 54 | + ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING |
| 55 | + ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE |
| 56 | + TRUE WIN32_EXECUTABLE |
| 57 | + TRUE) |
| 58 | + |
| 59 | +if(QT_VERSION_MAJOR EQUAL 6) |
| 60 | + qt_finalize_executable(${PROJECT_NAME}) |
| 61 | +endif() |
0 commit comments