Browse Source

Working dev config

Johannes Kreutz 2 years ago
parent
commit
1e9bf02c4a

+ 15 - 10
trackpoint-app/CMakeLists.txt

@@ -19,23 +19,25 @@ SET(CMAKE_AUTORCC ON)
 SET(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 # Set dependency directory
-LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/openscenegraph/install")
-LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/lib3mf/install")
-LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/json/install")
+#LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/openscenegraph/install")
+#LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/lib3mf/install")
+#LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/json/install")
 LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/qt/install")
 
 # OpenSceneGraph
-FIND_PACKAGE(OpenSceneGraph REQUIRED COMPONENTS osgViewer osgDB osgGA osgText osgUtil)
+INCLUDE(thirdparty/openscenegraph.cmake)
+#FIND_PACKAGE(OpenSceneGraph REQUIRED COMPONENTS osgViewer osgDB osgGA osgText osgUtil)
 
 # Qt
-FIND_PACKAGE(Qt6 COMPONENTS Widgets OpenGLWidgets REQUIRED NO_CMAKE_SYSTEM_PATH)
+FIND_PACKAGE(Qt6 COMPONENTS Core Gui Widgets OpenGLWidgets REQUIRED NO_CMAKE_SYSTEM_PATH)
 
 # lib3mf
 INCLUDE(thirdparty/lib3mf.cmake)
-#FIND_LIBRARY(LIB3MFLOCATION lib3mf REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR}/thirdparty/lib3mf/install)
+#FIND_PACKAGE(Lib3MF REQUIRED)
 
 # Json
-FIND_PACKAGE(nlohmann_json REQUIRED NO_CMAKE_SYSTEM_PATH)
+INCLUDE(thirdparty/json.cmake)
+#FIND_PACKAGE(nlohmann_json REQUIRED NO_CMAKE_SYSTEM_PATH)
 
 # The executable we want to build
 QT_ADD_EXECUTABLE(TrackpointApp
@@ -53,16 +55,19 @@ QT_ADD_EXECUTABLE(TrackpointApp
 )
 
 INCLUDE_DIRECTORIES(
-  ${OPENSCENEGRAPH_INCLUDE_DIRS}
-  ${CMAKE_CURRENT_LIST_DIR}/thirdparty/lib3mf/install/include/Bindings/Cpp
+  ${${OPENSCENEGRAPH_PREFIX}_SOURCE_DIR}/include
+  ${${LIB3MF_PREFIX}_BINARY_DIR}/Autogenerated/Bindings/Cpp
+  ${${JSON_PREFIX}_SOURCE_DIR}/include
   include
   gui
 )
 
 TARGET_LINK_LIBRARIES(TrackpointApp PRIVATE
-  ${OPENSCENEGRAPH_LIBRARIES}
+  osg osgViewer osgDB osgGA osgText osgUtil
   lib3mf
   nlohmann_json::nlohmann_json
+  Qt6::Core
+  Qt6::Gui
   Qt6::Widgets
   Qt6::OpenGLWidgets
 )

+ 6 - 3
trackpoint-app/build-dependencies-first.sh

@@ -8,6 +8,9 @@ else
 fi
 
 thirdparty/qt.sh $OPTIONS
-thirdparty/openscenegraph.sh $OPTIONS
-thirdparty/lib3mf.sh $OPTIONS
-thirdparty/json.sh $OPTIONS
+
+if [ $OPTIONS == "release" ]; then
+  thirdparty/openscenegraph.sh release
+  thirdparty/lib3mf.sh release
+  thirdparty/json.sh release
+fi

+ 26 - 0
trackpoint-app/thirdparty/json.cmake

@@ -0,0 +1,26 @@
+# Build Json
+
+# The GitHub release (tag) we want to use
+SET(JSON_TAG v3.9.1)
+
+SET(JSON_PREFIX nlohmann_json)
+
+SET(JSON_URL https://github.com/nlohmann/json)
+
+# Configure Json
+SET(JSON_BuildTests OFF CACHE INTERNAL "")
+
+# Add Json
+FETCHCONTENT_DECLARE(
+  ${JSON_PREFIX}
+  PREFIX ${JSON_PREFIX}
+  GIT_REPOSITORY ${JSON_URL}
+  GIT_TAG ${JSON_TAG}
+)
+
+FETCHCONTENT_GETPROPERTIES(${JSON_PREFIX})
+
+IF(NOT ${JSON_PREFIX}_POPULATED)
+  FETCHCONTENT_POPULATE(${JSON_PREFIX})
+  ADD_SUBDIRECTORY(${${JSON_PREFIX}_SOURCE_DIR} ${${JSON_PREFIX}_BINARY_DIR})
+ENDIF()

+ 33 - 0
trackpoint-app/thirdparty/openscenegraph.cmake

@@ -0,0 +1,33 @@
+# Build OpenSceneGraph
+
+# The GitHub release (tag) we want to use
+SET(OPENSCENEGRAPH_TAG OpenSceneGraph-3.6.5)
+
+SET(OPENSCENEGRAPH_PREFIX openscenegraph)
+
+SET(OPENSCENEGRAPH_URL https://github.com/openscenegraph/OpenSceneGraph)
+
+# Configure OpenSceneGraph
+SET(DYNAMIC_OPENSCENEGRAPH ON CACHE INTERNAL "")
+SET(DYNAMIC_OPENTHREADS ON CACHE INTERNAL "")
+SET(BUILD_OSG_EXAMPLES OFF CACHE INTERNAL "")
+SET(BUILD_OSG_APPLICATIONS OFF CACHE INTERNAL "")
+SET(OSG_TEXT_USE_FONTCONFIG OFF CACHE INTERNAL "")
+SET(OSG_GL_LIBRARY_STATIC OFF CACHE INTERNAL "")
+
+ADD_COMPILE_DEFINITIONS(OSG_LIBRARY_STATIC)
+
+# Add OpenSceneGraph
+FETCHCONTENT_DECLARE(
+  ${OPENSCENEGRAPH_PREFIX}
+  PREFIX ${OPENSCENEGRAPH_PREFIX}
+  GIT_REPOSITORY ${OPENSCENEGRAPH_URL}
+  GIT_TAG ${OPENSCENEGRAPH_TAG}
+)
+
+FETCHCONTENT_GETPROPERTIES(${OPENSCENEGRAPH_PREFIX})
+
+IF(NOT ${OPENSCENEGRAPH_PREFIX}_POPULATED)
+  FETCHCONTENT_POPULATE(${OPENSCENEGRAPH_PREFIX})
+  ADD_SUBDIRECTORY(${${OPENSCENEGRAPH_PREFIX}_SOURCE_DIR} ${${OPENSCENEGRAPH_PREFIX}_BINARY_DIR})
+ENDIF()