CMakeLists.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. cmake_minimum_required(VERSION 3.5)
  2. project(dfota_tools VERSION 0.1)
  3. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  4. set(CMAKE_AUTOUIC ON)
  5. set(CMAKE_AUTOMOC ON)
  6. set(CMAKE_AUTORCC ON)
  7. set(CMAKE_CXX_STANDARD 11)
  8. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  9. set(CMAKE_CXX_FLAGS "-mwindows")
  10. find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets LinguistTools REQUIRED)
  11. find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets LinguistTools REQUIRED)
  12. set(TS_FILES dfota_tools_zh_CN.ts)
  13. #递归获取所有当前目录及子目录下的C文件
  14. file(GLOB_RECURSE c_files src/*.c src/*.CPP src/*.h)
  15. set(PROJECT_SOURCES
  16. main.cpp
  17. mainwindow.cpp
  18. mainwindow.h
  19. dfotaConfig.h
  20. build_date_time.cpp
  21. build_date_time.h
  22. mainwindow.ui
  23. ${c_files}
  24. ${TS_FILES}
  25. )
  26. if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
  27. qt_add_executable(dfota_tools
  28. MANUAL_FINALIZATION
  29. ${PROJECT_SOURCES}
  30. )
  31. # Define target properties for Android with Qt 6 as:
  32. # set_property(TARGET dfota_tools APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
  33. # ${CMAKE_CURRENT_SOURCE_DIR}/android)
  34. # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
  35. qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
  36. else()
  37. if(ANDROID)
  38. add_library(dfota_tools SHARED
  39. ${PROJECT_SOURCES}
  40. )
  41. # Define properties for Android with Qt 5 after find_package() calls as:
  42. # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
  43. else()
  44. add_executable(dfota_tools
  45. ${PROJECT_SOURCES}
  46. )
  47. endif()
  48. qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
  49. endif()
  50. target_link_libraries(dfota_tools PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
  51. set_target_properties(dfota_tools PROPERTIES
  52. MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
  53. MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
  54. MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
  55. )
  56. if(QT_VERSION_MAJOR EQUAL 6)
  57. qt_finalize_executable(dfota_tools)
  58. endif()