CMakeLists.txt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. CMAKE_MINIMUM_REQUIRED(VERSION 3.16.3)
  2. PROJECT(TrackpointApp VERSION 1.0.0 LANGUAGES CXX)
  3. # Include modules
  4. INCLUDE(FetchContent)
  5. # Build TrackpointApp
  6. # Set C++ mode
  7. SET(CMAKE_CXX_STANDARD 14)
  8. SET(CMAKE_CXX_STANDARD_REQUIRED True)
  9. SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wunreachable-code -Wno-register")
  10. SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wno-register")
  11. SET(CMAKE_AUTOUIC ON)
  12. SET(CMAKE_AUTOMOC ON)
  13. SET(CMAKE_AUTORCC ON)
  14. SET(CMAKE_INCLUDE_CURRENT_DIR ON)
  15. ADD_COMPILE_DEFINITIONS(GL_SILENCE_DEPRECATION)
  16. # Qt
  17. FIND_PACKAGE(Qt6 COMPONENTS Core Gui Widgets OpenGLWidgets REQUIRED)
  18. # Json
  19. INCLUDE(thirdparty/json.cmake)
  20. # OpenSceneGraph
  21. INCLUDE(thirdparty/openscenegraph.cmake)
  22. # lib3mf
  23. INCLUDE(thirdparty/lib3mf.cmake)
  24. # The executable we want to build
  25. QT_ADD_EXECUTABLE(TrackpointApp MACOSX_BUNDLE
  26. src/main.cpp
  27. src/MainWindow.cpp
  28. include/MainWindow.hpp
  29. gui/MainWindow.ui
  30. src/NoMeshWidget.cpp
  31. include/NoMeshWidget.hpp
  32. gui/NoMeshWidget.ui
  33. src/EditWidget.cpp
  34. include/EditWidget.hpp
  35. gui/EditWidget.ui
  36. include/OSGWidget.hpp
  37. src/OSGWidget.cpp
  38. src/ProjectStore.cpp
  39. include/ProjectStore.hpp
  40. src/PickHandler.cpp
  41. src/TrackPoint.cpp
  42. src/OptiTrackPoint.cpp
  43. src/EMFTrackPoint.cpp
  44. src/ActionPoint.cpp
  45. src/SteamVRTrackPoint.cpp
  46. src/OpenScadRenderer.cpp
  47. src/StringBasics.cpp
  48. src/TrackPointRenderer.cpp
  49. src/PointShape.cpp
  50. src/HudCallback.cpp
  51. src/STLImport.cpp
  52. src/MeshTools.cpp
  53. )
  54. INCLUDE_DIRECTORIES(
  55. ${${OPENSCENEGRAPH_PREFIX}_SOURCE_DIR}/include
  56. ${${OPENSCENEGRAPH_PREFIX}_BINARY_DIR}/include
  57. ${${LIB3MF_PREFIX}_SOURCE_DIR}/Autogenerated/Bindings/Cpp
  58. ${${JSON_PREFIX}_SOURCE_DIR}/include
  59. ${CMAKE_CURRENT_LIST_DIR}/thirdparty/stl_reader
  60. include
  61. gui
  62. resources
  63. )
  64. TARGET_LINK_LIBRARIES(TrackpointApp PRIVATE
  65. osg osgViewer osgDB osgGA osgText osgUtil
  66. lib3mf
  67. nlohmann_json::nlohmann_json
  68. Qt6::Core
  69. Qt6::Gui
  70. Qt6::Widgets
  71. Qt6::OpenGLWidgets
  72. )
  73. # Configure macOS application bundle
  74. SET_TARGET_PROPERTIES(TrackpointApp PROPERTIES
  75. BUNDLE True
  76. MACOSX_BUNDLE_GUI_IDENTIFIER com.jkmsoftware.trackpointapp
  77. MACOSX_BUNDLE_BUNDLE_NAME TrackpointApp
  78. MACOSX_BUNDLE_BUNDLE_VERSION "1.0.0"
  79. MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0.0"
  80. MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/info.plist.in
  81. )
  82. # Header to have version number available in the code
  83. CONFIGURE_FILE(include/trackpointapp.hpp.in include/trackpointapp.hpp)