CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. cmake_minimum_required(VERSION 3.5)
  2. project(PCLRegistrationTool VERSION 0.1 LANGUAGES CXX)
  3. set(CMAKE_AUTOUIC ON)
  4. set(CMAKE_AUTOMOC ON)
  5. set(CMAKE_AUTORCC ON)
  6. set(CMAKE_CXX_STANDARD 17)
  7. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  8. execute_process(COMMAND bash ${PROJECT_SOURCE_DIR}/proto.sh ${PROJECT_SOURCE_DIR})
  9. add_definitions(-DETC_PATH="${PROJECT_SOURCE_DIR}")
  10. find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
  11. find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
  12. find_package(Protobuf REQUIRED)
  13. set(PROJECT_SOURCES
  14. main.cpp
  15. mainwindow.cpp
  16. mainwindow.h
  17. mainwindow.ui
  18. proto_tool.cpp
  19. proto_tool.h
  20. velodyne_config.pb.h
  21. velodyne_config.pb.cc
  22. )
  23. if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
  24. qt_add_executable(PCLRegistrationTool
  25. MANUAL_FINALIZATION
  26. ${PROJECT_SOURCES}
  27. )
  28. # Define target properties for Android with Qt 6 as:
  29. # set_property(TARGET PCLRegistrationTool APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
  30. # ${CMAKE_CURRENT_SOURCE_DIR}/android)
  31. # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
  32. else()
  33. if(ANDROID)
  34. add_library(PCLRegistrationTool SHARED
  35. ${PROJECT_SOURCES}
  36. )
  37. # Define properties for Android with Qt 5 after find_package() calls as:
  38. # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
  39. else()
  40. add_executable(PCLRegistrationTool
  41. ${PROJECT_SOURCES}
  42. )
  43. endif()
  44. endif()
  45. target_link_libraries(PCLRegistrationTool PRIVATE Qt${QT_VERSION_MAJOR}::Widgets
  46. ${PROTOBUF_LIBRARIES}
  47. )
  48. set_target_properties(PCLRegistrationTool PROPERTIES
  49. MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
  50. MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
  51. MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
  52. MACOSX_BUNDLE TRUE
  53. WIN32_EXECUTABLE TRUE
  54. )
  55. install(TARGETS PCLRegistrationTool
  56. BUNDLE DESTINATION .
  57. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  58. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  59. )
  60. if(QT_VERSION_MAJOR EQUAL 6)
  61. qt_finalize_executable(PCLRegistrationTool)
  62. endif()