CMAKE_MINIMUM_REQUIRED(VERSION 3.16.3) PROJECT(TrackpointApp VERSION 1.0.0 LANGUAGES CXX) # Include modules INCLUDE(FetchContent) # Build TrackpointApp # Set C++ mode SET(CMAKE_CXX_STANDARD 14) SET(CMAKE_CXX_STANDARD_REQUIRED True) SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wunreachable-code -Wno-register") SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wno-register") SET(CMAKE_AUTOUIC ON) SET(CMAKE_AUTOMOC ON) SET(CMAKE_AUTORCC ON) SET(CMAKE_INCLUDE_CURRENT_DIR ON) ADD_COMPILE_DEFINITIONS(GL_SILENCE_DEPRECATION) # Qt FIND_PACKAGE(Qt6 COMPONENTS Core Gui Widgets OpenGLWidgets REQUIRED) # Json INCLUDE(thirdparty/json.cmake) # OpenSceneGraph INCLUDE(thirdparty/openscenegraph.cmake) # lib3mf INCLUDE(thirdparty/lib3mf.cmake) # The executable we want to build QT_ADD_EXECUTABLE(TrackpointApp MACOSX_BUNDLE src/main.cpp src/MainWindow.cpp include/MainWindow.hpp gui/MainWindow.ui src/NoMeshWidget.cpp include/NoMeshWidget.hpp gui/NoMeshWidget.ui src/EditWidget.cpp include/EditWidget.hpp gui/EditWidget.ui include/OSGWidget.hpp src/OSGWidget.cpp src/ProjectStore.cpp include/ProjectStore.hpp src/PickHandler.cpp src/TrackPoint.cpp src/OptiTrackPoint.cpp src/EMFTrackPoint.cpp src/ActionPoint.cpp src/SteamVRTrackPoint.cpp src/OpenScadRenderer.cpp src/StringBasics.cpp src/TrackPointRenderer.cpp src/PointShape.cpp src/HudCallback.cpp src/STLImport.cpp src/MeshTools.cpp ) INCLUDE_DIRECTORIES( ${${OPENSCENEGRAPH_PREFIX}_SOURCE_DIR}/include ${${OPENSCENEGRAPH_PREFIX}_BINARY_DIR}/include ${${LIB3MF_PREFIX}_SOURCE_DIR}/Autogenerated/Bindings/Cpp ${${JSON_PREFIX}_SOURCE_DIR}/include ${CMAKE_CURRENT_LIST_DIR}/thirdparty/stl_reader include gui resources ) TARGET_LINK_LIBRARIES(TrackpointApp PRIVATE osg osgViewer osgDB osgGA osgText osgUtil lib3mf nlohmann_json::nlohmann_json Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets ) # Configure macOS application bundle SET_TARGET_PROPERTIES(TrackpointApp PROPERTIES BUNDLE True MACOSX_BUNDLE_GUI_IDENTIFIER com.jkmsoftware.trackpointapp MACOSX_BUNDLE_BUNDLE_NAME TrackpointApp MACOSX_BUNDLE_BUNDLE_VERSION "1.0.0" MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0.0" MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/info.plist.in ) # Header to have version number available in the code CONFIGURE_FILE(include/trackpointapp.hpp.in include/trackpointapp.hpp)