CMakeLists.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. CMAKE_MINIMUM_REQUIRED(VERSION 3.19)
  2. PROJECT(TrackpointApp VERSION 0.0.1 LANGUAGES CXX)
  3. # Include modules
  4. INCLUDE(FetchContent)
  5. # Build TrackpointApp
  6. # Set C++ mode
  7. SET(CMAKE_CXX_STANDARD 20)
  8. SET(CMAKE_CXX_STANDARD_REQUIRED True)
  9. SET(CMAKE_CXX_FLAGS_DEBUG "-O0")
  10. SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
  11. SET(CMAKE_AUTOUIC ON)
  12. SET(CMAKE_AUTOMOC ON)
  13. SET(CMAKE_AUTORCC ON)
  14. SET(CMAKE_INCLUDE_CURRENT_DIR ON)
  15. # Set dependency directory
  16. #LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/openscenegraph/install")
  17. #LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/lib3mf/install")
  18. #LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/json/install")
  19. LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/qt/install")
  20. # OpenSceneGraph
  21. INCLUDE(thirdparty/openscenegraph.cmake)
  22. #FIND_PACKAGE(OpenSceneGraph REQUIRED COMPONENTS osgViewer osgDB osgGA osgText osgUtil)
  23. # Qt
  24. FIND_PACKAGE(Qt6 COMPONENTS Core Gui Widgets OpenGLWidgets REQUIRED NO_CMAKE_SYSTEM_PATH)
  25. # lib3mf
  26. INCLUDE(thirdparty/lib3mf.cmake)
  27. #FIND_PACKAGE(Lib3MF REQUIRED)
  28. # Json
  29. INCLUDE(thirdparty/json.cmake)
  30. #FIND_PACKAGE(nlohmann_json REQUIRED NO_CMAKE_SYSTEM_PATH)
  31. # The executable we want to build
  32. QT_ADD_EXECUTABLE(TrackpointApp
  33. src/main.cpp
  34. src/MainWindow.cpp
  35. include/MainWindow.hpp
  36. gui/MainWindow.ui
  37. include/OSGWidget.hpp
  38. src/OSGWidget.cpp
  39. src/PickHandler.cpp
  40. src/StoreHandler.cpp
  41. src/TrackPoint.cpp
  42. src/ThreeMFWriter.cpp
  43. src/OpenScadRenderer.cpp
  44. )
  45. INCLUDE_DIRECTORIES(
  46. ${${OPENSCENEGRAPH_PREFIX}_SOURCE_DIR}/include
  47. ${${LIB3MF_PREFIX}_BINARY_DIR}/Autogenerated/Bindings/Cpp
  48. ${${JSON_PREFIX}_SOURCE_DIR}/include
  49. include
  50. gui
  51. )
  52. TARGET_LINK_LIBRARIES(TrackpointApp PRIVATE
  53. osg osgViewer osgDB osgGA osgText osgUtil
  54. lib3mf
  55. nlohmann_json::nlohmann_json
  56. Qt6::Core
  57. Qt6::Gui
  58. Qt6::Widgets
  59. Qt6::OpenGLWidgets
  60. )
  61. # Header to have version number available in the code
  62. CONFIGURE_FILE(src/trackpointapp.hpp.in src/trackpointapp.hpp)