Explorar o código

Move to separate lib building

Johannes Kreutz %!s(int64=3) %!d(string=hai) anos
pai
achega
eabcd779a2

+ 9 - 2
trackpoint-app/CMakeLists.txt

@@ -18,17 +18,24 @@ 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/qt/install")
+
 # OpenSceneGraph
 INCLUDE(thirdparty/openscenegraph.cmake)
+#FIND_PACKAGE(OpenSceneGraph REQUIRED COMPONENTS osgViewer osgDB osgGA osgText osgUtil NO_CMAKE_SYSTEM_PATH)
 
 # lib3mf
 INCLUDE(thirdparty/lib3mf.cmake)
+#FIND_PACKAGE(lib3mf REQUIRED NO_CMAKE_SYSTEM_PATH)
 
 # Json
-INCLUDE(thirdparty/json.cmake)
+FIND_PACKAGE(nlohmann_json REQUIRED NO_CMAKE_SYSTEM_PATH)
 
 # Qt
-LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/thirdparty/qt/install")
 FIND_PACKAGE(Qt6 COMPONENTS Widgets OpenGLWidgets REQUIRED NO_CMAKE_SYSTEM_PATH)
 
 # The executable we want to build

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

@@ -8,3 +8,6 @@ else
 fi
 
 thirdparty/qt.sh $OPTIONS
+thirdparty/openscenegraph.sh $OPTIONS
+thirdparty/lib3mf.sh $OPTIONS
+thirdparty/json.sh $OPTIONS

+ 2 - 0
trackpoint-app/src/main.cpp

@@ -1,6 +1,8 @@
 #include <QApplication>
 #include <QSurfaceFormat>
 
+//#include <QtPlugin>
+
 #include "MainWindow.hpp"
 
 int main(int argc, char** argv) {

+ 6 - 0
trackpoint-app/thirdparty/.gitignore

@@ -1,2 +1,8 @@
 qt/
 qt-static/
+lib3mf/
+lib3mf-static/
+openscenegraph/
+openscenegraph-static/
+json/
+json-static/

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

@@ -1,26 +0,0 @@
-# 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()

+ 42 - 0
trackpoint-app/thirdparty/json.sh

@@ -0,0 +1,42 @@
+#!/bin/bash
+# Build Json
+
+set -e
+
+if [ $1 == "release" ]; then
+  BASEDIR=$PWD/thirdparty/json-static
+  OPTIONS="-DBUILD_SHARED_LIBS:BOOL=OFF"
+else
+  BASEDIR=$PWD/thirdparty/json
+  OPTIONS=""
+fi
+
+DEPLOYDIR=$BASEDIR/install
+
+JSON_TAG="v3.9.1"
+
+JSON_REPO="https://github.com/nlohmann/json"
+
+CONFIG="-DJSON_BuildTests:BOOL=OFF"
+
+mkdir -p $BASEDIR
+
+if [ -d $DEPLOYDIR ]; then
+  rm -rf $DEPLOYDIR
+fi
+mkdir -p $DEPLOYDIR
+
+pushd $BASEDIR
+
+if [ -d "json" ]; then
+  rm -rf "json"
+fi
+
+git clone --depth 1 --branch $JSON_TAG $JSON_REPO
+pushd json
+
+cmake . -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR $CONFIG $OPTIONS
+cmake --build . --parallel
+cmake --install .
+
+popd

+ 42 - 0
trackpoint-app/thirdparty/lib3mf.sh

@@ -0,0 +1,42 @@
+#!/bin/bash
+# Build lib3mf
+
+set -e
+
+if [ $1 == "release" ]; then
+  BASEDIR=$PWD/thirdparty/lib3mf-static
+  OPTIONS="-DBUILD_SHARED_LIBS:BOOL=OFF"
+else
+  BASEDIR=$PWD/thirdparty/lib3mf
+  OPTIONS=""
+fi
+
+DEPLOYDIR=$BASEDIR/install
+
+LIB3MF_TAG="v2.1.1"
+
+LIB3MF_REPO="https://github.com/3MFConsortium/lib3mf"
+
+CONFIG="-DLIB3MF_TESTS:BOOL=OFF"
+
+mkdir -p $BASEDIR
+
+if [ -d $DEPLOYDIR ]; then
+  rm -rf $DEPLOYDIR
+fi
+mkdir -p $DEPLOYDIR
+
+pushd $BASEDIR
+
+if [ -d "lib3mf" ]; then
+  rm -rf "lib3mf"
+fi
+
+git clone --depth 1 --branch $LIB3MF_TAG $LIB3MF_REPO
+pushd lib3mf
+
+cmake . -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR $CONFIG $OPTIONS
+cmake --build . --parallel
+cmake --install .
+
+popd

+ 42 - 0
trackpoint-app/thirdparty/openscenegraph.sh

@@ -0,0 +1,42 @@
+#!/bin/bash
+# Build OpenSceneGraph
+
+set -e
+
+if [ $1 == "release" ]; then
+  BASEDIR=$PWD/thirdparty/openscenegraph-static
+  OPTIONS="-DDYNAMIC_OPENSCENEGRAPH:BOOL=OFF -DDYNAMIC_OPENTHREADS:BOOL=OFF -DOSG_GL_LIBRARY_STATIC:BOOL=ON"
+else
+  BASEDIR=$PWD/thirdparty/openscenegraph
+  OPTIONS=""
+fi
+
+DEPLOYDIR=$BASEDIR/install
+
+OPENSCENEGRAPH_TAG="OpenSceneGraph-3.6.5"
+
+OPENSCENEGRAPH_REPO="https://github.com/openscenegraph/OpenSceneGraph"
+
+CONFIG="-DBUILD_OSG_EXAMPLES:BOOL=OFF -DBUILD_OSG_APPLICATIONS:BOOL=OFF -DOSG_TEXT_USE_FONTCONFIG:BOOL=OFF"
+
+mkdir -p $BASEDIR
+
+if [ -d $DEPLOYDIR ]; then
+  rm -rf $DEPLOYDIR
+fi
+mkdir -p $DEPLOYDIR
+
+pushd $BASEDIR
+
+if [ -d "OpenSceneGraph" ]; then
+  rm -rf "OpenSceneGraph"
+fi
+
+git clone --depth 1 --branch $OPENSCENEGRAPH_TAG $OPENSCENEGRAPH_REPO
+pushd OpenSceneGraph
+
+cmake . -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR $CONFIG $OPTIONS
+cmake --build . --parallel
+cmake --install .
+
+popd

+ 0 - 75
trackpoint-app/thirdparty/qt.cmake

@@ -1,75 +0,0 @@
-# Build Qt
-
-SET(QT_PREFIX qt6)
-
-SET(QT_MAJOR 6)
-SET(QT_MINOR 1)
-SET(QT_BUGFIX 0)
-
-SET(QT_URL https://download.qt.io/official_releases/qt/${QT_MAJOR}.${QT_MINOR}/${QT_MAJOR}.${QT_MINOR}.${QT_BUGFIX}/single/qt-everywhere-src-${QT_MAJOR}.${QT_MINOR}.${QT_BUGFIX}.tar.xz)
-
-# Configure Qt
-SET(BUILD_qtx11extras OFF CACHE INTERNAL "")
-SET(BUILD_qtandroidextras OFF CACHE INTERNAL "")
-SET(BUILD_qtserialport OFF CACHE INTERNAL "")
-SET(BUILD_qtserialbus OFF CACHE INTERNAL "")
-SET(BUILD_qtactiveqt OFF CACHE INTERNAL "")
-SET(BUILD_qtxmlpatterns OFF CACHE INTERNAL "")
-SET(BUILD_qtdeclarative OFF CACHE INTERNAL "")
-SET(BUILD_qtscxml OFF CACHE INTERNAL "")
-SET(BUILD_qtpurchasing OFF CACHE INTERNAL "")
-SET(BUILD_qtcanvas3d OFF CACHE INTERNAL "")
-SET(BUILD_qtwayland OFF CACHE INTERNAL "")
-SET(BUILD_qtconnectivity OFF CACHE INTERNAL "")
-SET(BUILD_qtwebsockets OFF CACHE INTERNAL "")
-SET(BUILD_qtwebchannel OFF CACHE INTERNAL "")
-SET(BUILD_qtsensors OFF CACHE INTERNAL "")
-SET(BUILD_qtdatavis3d OFF CACHE INTERNAL "")
-SET(BUILD_qtquickcontrols2 OFF CACHE INTERNAL "")
-SET(BUILD_qtquickcontrols OFF CACHE INTERNAL "")
-SET(BUILD_qtvirtualkeyboard OFF CACHE INTERNAL "")
-SET(BUILD_qtlocation OFF CACHE INTERNAL "")
-SET(BUILD_qtwebengine OFF CACHE INTERNAL "")
-SET(BUILD_qtwebview OFF CACHE INTERNAL "")
-SET(BUILD_qtscript OFF CACHE INTERNAL "")
-SET(BUILD_qttranslations OFF CACHE INTERNAL "")
-SET(BUILD_qtdoc OFF CACHE INTERNAL "")
-SET(BUILD_qt3d OFF CACHE INTERNAL "")
-SET(BUILD_qt5compat OFF CACHE INTERNAL "")
-SET(BUILD_qttools OFF CACHE INTERNAL "")
-SET(BUILD_qtcoap OFF CACHE INTERNAL "")
-SET(BUILD_qtlottie OFF CACHE INTERNAL "")
-SET(BUILD_qtmqtt OFF CACHE INTERNAL "")
-SET(BUILD_qtopcua OFF CACHE INTERNAL "")
-SET(BUILD_qtquick3d OFF CACHE INTERNAL "")
-SET(BUILD_qtquicktimeline OFF CACHE INTERNAL "")
-SET(BUILD_qtcharts OFF CACHE INTERNAL "")
-SET(BUILD_sql OFF CACHE INTERNAL "")
-SET(QT_BUILD_EXAMPLES FALSE CACHE INTERNAL "")
-SET(QT_BUILD_TESTS FALSE CACHE INTERNAL "")
-SET(INPUT_xcb no CACHE INTERNAL "")
-SET(INPUT_glib no CACHE INTERNAL "")
-SET(INPUT_harfbuzz no CACHE INTERNAL "")
-SET(INPUT_sql_db2 no CACHE INTERNAL "")
-SET(INPUT_sql_ibase no CACHE INTERNAL "")
-SET(INPUT_sql_mysql no CACHE INTERNAL "")
-SET(INPUT_sql_oci no CACHE INTERNAL "")
-SET(INPUT_sql_odbc no CACHE INTERNAL "")
-SET(INPUT_sql_psql no CACHE INTERNAL "")
-SET(INPUT_sql_sqlite no CACHE INTERNAL "")
-SET(INPUT_cups no CACHE INTERNAL "")
-SET(INPUT_qml_debug no CACHE INTERNAL "")
-
-# Add Json
-FETCHCONTENT_DECLARE(
-  ${QT_PREFIX}
-  PREFIX ${QT_PREFIX}
-  URL ${QT_URL}
-)
-
-FETCHCONTENT_GETPROPERTIES(${QT_PREFIX})
-
-IF(NOT ${QT_PREFIX}_POPULATED)
-  FETCHCONTENT_POPULATE(${QT_PREFIX})
-  ADD_SUBDIRECTORY(${${QT_PREFIX}_SOURCE_DIR} ${${QT_PREFIX}_BINARY_DIR})
-ENDIF()