Guest User

CMakeLists.txt

a guest
Jan 17th, 2025
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | Source Code | 0 0
  1. cmake_minimum_required(VERSION 3.16)
  2.  
  3. project(testWidgetsApp VERSION 0.1 LANGUAGES CXX)
  4.  
  5. set(CMAKE_AUTOUIC ON)
  6. set(CMAKE_AUTOMOC ON)
  7. set(CMAKE_AUTORCC ON)
  8.  
  9. set(CMAKE_CXX_STANDARD 17)
  10. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  11.  
  12. find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
  13. find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
  14.  
  15. set(PROJECT_SOURCES
  16.         main.cpp
  17.         mainwindow.cpp
  18.         mainwindow.hpp
  19.         mainwindow.ui
  20. )
  21.  
  22. if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
  23.     qt_add_executable(testWidgetsApp
  24.         MANUAL_FINALIZATION
  25.         ${PROJECT_SOURCES}
  26.     )
  27. # Define target properties for Android with Qt 6 as:
  28. #    set_property(TARGET testWidgetsApp APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
  29. #                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
  30. # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
  31. else()
  32.     if(ANDROID)
  33.         add_library(testWidgetsApp SHARED
  34.             ${PROJECT_SOURCES}
  35.         )
  36. # Define properties for Android with Qt 5 after find_package() calls as:
  37. #    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
  38.     else()
  39.         add_executable(testWidgetsApp
  40.             ${PROJECT_SOURCES}
  41.         )
  42.     endif()
  43. endif()
  44.  
  45. target_link_libraries(testWidgetsApp PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
  46.  
  47. # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
  48. # If you are developing for iOS or macOS you should consider setting an
  49. # explicit, fixed bundle identifier manually though.
  50. if(${QT_VERSION} VERSION_LESS 6.1.0)
  51.   set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.testWidgetsApp)
  52. endif()
  53. set_target_properties(testWidgetsApp PROPERTIES
  54.     ${BUNDLE_ID_OPTION}
  55.     MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
  56.     MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
  57.     MACOSX_BUNDLE TRUE
  58.     WIN32_EXECUTABLE TRUE
  59. )
  60.  
  61. include(GNUInstallDirs)
  62. install(TARGETS testWidgetsApp
  63.     BUNDLE DESTINATION .
  64.     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  65.     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  66. )
  67.  
  68. if(QT_VERSION_MAJOR EQUAL 6)
  69.     qt_finalize_executable(testWidgetsApp)
  70. endif()
  71.  
Advertisement
Add Comment
Please, Sign In to add comment