From 1bfb841643573bccced72c0eb7f3718078ba8bb0 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 16:51:31 +1100 Subject: [PATCH 01/68] Submodule fixes. --- .gitmodules | 1 + scripts/apothecary | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index c9c28250637..b2b6e6cc8c2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,3 +5,4 @@ [submodule "scripts/apothecary"] path = scripts/apothecary url = https://github.com/openframeworks/apothecary + branch = bleeding diff --git a/scripts/apothecary b/scripts/apothecary index 2ba90dc7e8e..5c0f7bab40d 160000 --- a/scripts/apothecary +++ b/scripts/apothecary @@ -1 +1 @@ -Subproject commit 2ba90dc7e8e3fea3c7577890117d858455a3c422 +Subproject commit 5c0f7bab40da5a59ef354c7135535566d4fcc225 From e8877e91b99812b945e7b330a33c355a6cd07f4b Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 17:30:13 +1100 Subject: [PATCH 02/68] Updates nightly --- .gitmodules | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index b2b6e6cc8c2..c9c28250637 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,4 +5,3 @@ [submodule "scripts/apothecary"] path = scripts/apothecary url = https://github.com/openframeworks/apothecary - branch = bleeding From 0771ced97d26c37f0636aac5078a44d92afa79ac Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 17:59:07 +1100 Subject: [PATCH 03/68] Download libs [ 2.6.4 ~ 2.7.0] - Added GCC / Linux updates --- scripts/dev/download_libs.sh | 55 +++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index c107edf5970..bb909490ed0 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,8 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.6.4 +DL_VERSION=2.7.0 +GCC_VERSION=0 TAG="" printHelp(){ @@ -24,13 +25,14 @@ cat << EOF vs: 64 msys2: 64 android: armv7, arm64, and x86 (if not specified will download all) - linux: 64gcc6, armv6l or armv7l + linux: 64, armv6l or armv7l -n, --no-overwrite Merge new libraries with existing ones, use only to download same version for different platforms If not set deletes any existing libraries -s, --silent Silent download progress -h, --help Shows this message -k, --no-ssl Allow no SSL validation -t, --tag tag release for libraries + -g, --gcc-version GCC Version EOF } @@ -120,6 +122,10 @@ while [[ $# -gt 0 ]]; do MSYSTEM="$2" shift # past argument ;; + -g|--gcc-version) + GCC_VERSION="$2" + shift # past argument + ;; -t|--tag) TAG="$2" shift # past argument @@ -162,18 +168,12 @@ if [ "$ARCH" == "" ]; then if [ "$PLATFORM" == "linux" ]; then ARCH=$(uname -m) if [ "$ARCH" == "x86_64" ]; then - if command -v gcc &> /dev/null - then - GCC_VERSION=$(gcc -dumpversion | cut -f1 -d.) - else - GCC_VERSION=6 - fi - if [ $GCC_VERSION -eq 4 ]; then - ARCH=64gcc6 - elif [ $GCC_VERSION -eq 5 ]; then - ARCH=64gcc6 - else - ARCH=64gcc6 + ARCH=64 + elif [ "$ARCH" == "arm64" ]; then + # ARCH=arm64 # need to fix + ARCH=64 + if [ -f /opt/vc/include/bcm_host.h ]; then # RPi + ARCH=aarch64 fi elif [ "$ARCH" == "armv7l" ]; then # Check for Raspberry Pi @@ -207,6 +207,23 @@ EOF fi fi +if [ "$PLATFORM" == "linux" ]; then + if [ "$GCC_VERSION" == 0 ]; then + if command -v gcc &> /dev/null; then + GCC_VERSION=$(gcc -dumpversion | cut -f1 -d.) + echo "GCC_VERSION from bash: [$GCC_VERSION]" + else + GCC_VERSION=6 + fi + if [ "$GCC_VERSION" -gt 14 ]; then + echo "GCC version is greater than 14. latest supported" + GCC_VERSION=14 + fi + fi + echo "GCC_VERSION: [$GCC_VERSION]" + GCC_VERSION="gcc${GCC_VERSION}" +fi + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$SCRIPT_DIR" @@ -221,14 +238,6 @@ if [[ $TAG != "" ]] && [[ $TAG != "nightly" ]] ; then VER="$TAG" fi -if [ "$PLATFORM" == "linux" ] && [ "$ARCH" == "64" ]; then - if [[ $BLEEDING_EDGE = 1 ]] ; then - ARCH=64_gcc6 - else - ARCH=64gcc6 - fi -fi - echo " openFrameworks download_libs.sh v$DL_VERSION args=$@" if [ "$PLATFORM" == "emscripten" ]; then @@ -309,7 +318,7 @@ elif [ "$PLATFORM" == "emscripten" ]; then fi else # Linux if [[ $BLEEDING_EDGE = 1 ]] ; then - PKGS="openFrameworksLibs_${VER}_${PLATFORM}${ARCH}.tar.bz2" + PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_${GCC_VERSION}.tar.bz2" else PKGS="openFrameworksLibs_${VER}_${PLATFORM}${ARCH}.tar.bz2" fi From 18c09331fc9a8d930ff0ac45ba65fb3805a09c23 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 17:59:32 +1100 Subject: [PATCH 04/68] remove gold linux binutils ? --- .../project/linux64/config.linux64.default.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk index 227d604fa09..885eed569bd 100644 --- a/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk @@ -27,4 +27,4 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk -PLATFORM_LDFLAGS += -fuse-ld=gold +# PLATFORM_LDFLAGS += -fuse-ld=gold From 9270712392cd57f6711ec48bdaca3242356d6b68 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 18:00:00 +1100 Subject: [PATCH 05/68] Linux Workflow updates / mkfile --- .github/workflows/of.yml | 29 +++++++---------- .../makefileCommon/config.linux.common.mk | 32 +++++++++++-------- 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 350ca11b2d7..a62de319fa2 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -327,12 +327,15 @@ jobs: strategy: matrix: cfg: - - { target: linux64, libs: 64gcc6 } + - {target: linux, arch: 64, gcc: gcc14} + - {target: linux, arch: 64, gcc: gcc10} env: TARGET: ${{matrix.cfg.target}} + GCC: ${{matrix.cfg.gcc}} + ARCH: ${{matrix.cfg.arch}} steps: - name: Remove Old lib-unwind - run: if [ "$TARGET" = "linux64" ]; then + run: if [ "$TARGET" = "linux" ]; then sudo apt-get remove libunwind-14 -y; fi - name: Cache Packages @@ -340,29 +343,19 @@ jobs: with: packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good version: 1.0 - # - name: Determine Release - # id: vars - # shell: bash - # run: | - # if [[ "${{ github.ref }}" == refs/tags/* ]]; then - # echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV - # elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then - # echo "RELEASE=nightly" >> $GITHUB_ENV - # elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then - # echo "RELEASE=latest" >> $GITHUB_ENV - # else - # echo "RELEASE=latest" >> $GITHUB_ENV - # fi + - uses: actions/checkout@v4 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: - key: ${{ matrix.cfg.target }}-${{ matrix.cfg.libs }} + key: ${{ matrix.cfg.target }} - - name: Download libs - run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.libs}} - name: Install dependencies run: ./scripts/ci/$TARGET/install.sh; + + - name: Download libs + run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} + - name: Build run: if [ "$TARGET" = "linux64" ]; then scripts/ci/linux64/build.sh; diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk index c31b10bd3d7..2c929709e52 100755 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk @@ -248,6 +248,8 @@ endif # core sources PLATFORM_CORE_EXCLUSIONS += %.mm PLATFORM_CORE_EXCLUSIONS += %.m +PLATFORM_CORE_EXCLUSIONS += %.swift +PLATFORM_CORE_EXCLUSIONS += %.kotlin PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openFrameworks/video/ofDirectShowGrabber.cpp PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openFrameworks/video/ofDirectShowPlayer.cpp PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openFrameworks/video/ofMediaFoundationPlayer.cpp @@ -260,7 +262,7 @@ else endif # third party -PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/glew/% +# PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/glew/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/cairo/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/videoInput/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/freetype/% @@ -268,9 +270,11 @@ PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/FreeImage/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/assimp/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/rtAudio/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openssl/% -PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/glfw/% +PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/boost/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/curl/% PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/uriparser/% +PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/metalangle/% +#PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/glfw/% ifeq ($(USE_FMOD),0) PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/fmod/% @@ -345,7 +349,7 @@ PLATFORM_SHARED_LIBRARIES = PLATFORM_PKG_CONFIG_LIBRARIES = PLATFORM_PKG_CONFIG_LIBRARIES += cairo -PLATFORM_PKG_CONFIG_LIBRARIES += zlib +# PLATFORM_PKG_CONFIG_LIBRARIES += zlib PLATFORM_PKG_CONFIG_LIBRARIES += gstreamer-app-$(GST_VERSION) PLATFORM_PKG_CONFIG_LIBRARIES += gstreamer-$(GST_VERSION) PLATFORM_PKG_CONFIG_LIBRARIES += gstreamer-video-$(GST_VERSION) @@ -371,17 +375,17 @@ ifeq "$(shell pkg-config --exists libcurl4 && echo 1)" "1" endif -ifeq ($(CROSS_COMPILING),1) - ifeq "$(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR); pkg-config --exists glfw3 && echo 1)" "1" - PLATFORM_PKG_CONFIG_LIBRARIES += glfw3 - PLATFORM_LIBRARIES += Xinerama - endif -else - ifeq "$(shell pkg-config --exists glfw3 && echo 1)" "1" - PLATFORM_PKG_CONFIG_LIBRARIES += glfw3 - PLATFORM_LIBRARIES += Xinerama - endif -endif +# ifeq ($(CROSS_COMPILING),1) +# ifeq "$(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR); pkg-config --exists glfw3 && echo 1)" "1" +# PLATFORM_PKG_CONFIG_LIBRARIES += glfw3 +# PLATFORM_LIBRARIES += Xinerama +# endif +# else +# ifeq "$(shell pkg-config --exists glfw3 && echo 1)" "1" +# PLATFORM_PKG_CONFIG_LIBRARIES += glfw3 +# PLATFORM_LIBRARIES += Xinerama +# endif +# endif ifeq ($(CROSS_COMPILING),1) ifeq "$(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR); pkg-config --exists rtaudio && echo 1)" "1" From 7a8806c2ec6c8b73c435bf524eee0e4b173daba0 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 19:11:02 +1100 Subject: [PATCH 06/68] Script moving oh no --- .github/workflows/of.yml | 11 ++++++----- scripts/ci/{linux64 => linux/64}/build.sh | 0 scripts/ci/{linux64 => linux/64}/install.sh | 0 scripts/ci/{linux64 => linux/64}/run_tests.sh | 0 .../{linuxarmv7l => linux/armv7l}/arch-bootstrap.sh | 0 .../armv7l}/arch-bootstrap_downloadonly.sh | 0 scripts/ci/{linuxarmv7l => linux/armv7l}/build.sh | 0 .../ci/{linuxarmv7l => linux/armv7l}/build_junest.sh | 0 scripts/ci/{linuxarmv7l => linux/armv7l}/install.sh | 0 scripts/ci/{linuxrpi => linux/rpi}/build.sh | 0 scripts/ci/{linuxrpi => linux/rpi}/install.sh | 0 scripts/ci/{linuxrpi => linux/rpi}/multistrap.conf | 0 12 files changed, 6 insertions(+), 5 deletions(-) rename scripts/ci/{linux64 => linux/64}/build.sh (100%) rename scripts/ci/{linux64 => linux/64}/install.sh (100%) rename scripts/ci/{linux64 => linux/64}/run_tests.sh (100%) rename scripts/ci/{linuxarmv7l => linux/armv7l}/arch-bootstrap.sh (100%) rename scripts/ci/{linuxarmv7l => linux/armv7l}/arch-bootstrap_downloadonly.sh (100%) rename scripts/ci/{linuxarmv7l => linux/armv7l}/build.sh (100%) rename scripts/ci/{linuxarmv7l => linux/armv7l}/build_junest.sh (100%) rename scripts/ci/{linuxarmv7l => linux/armv7l}/install.sh (100%) rename scripts/ci/{linuxrpi => linux/rpi}/build.sh (100%) rename scripts/ci/{linuxrpi => linux/rpi}/install.sh (100%) rename scripts/ci/{linuxrpi => linux/rpi}/multistrap.conf (100%) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index a62de319fa2..fd7f4dafd6d 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -351,17 +351,18 @@ jobs: key: ${{ matrix.cfg.target }} - name: Install dependencies - run: ./scripts/ci/$TARGET/install.sh; + run: ./scripts/ci/$TARGET/$ARCH/install.sh; - name: Download libs run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} - name: Build - run: if [ "$TARGET" = "linux64" ]; then - scripts/ci/linux64/build.sh; - scripts/ci/$TARGET/run_tests.sh; + run: | + if [ "$TARGET" = "linux" ]; then + scripts/ci/$TARGET/$ARCH/build.sh; + scripts/ci/$TARGET/$ARCH/run_tests.sh; else - scripts/ci/$TARGET/build.sh; + scripts/ci/$TARGET/$ARCH/build.sh; fi # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/scripts/ci/linux64/build.sh b/scripts/ci/linux/64/build.sh similarity index 100% rename from scripts/ci/linux64/build.sh rename to scripts/ci/linux/64/build.sh diff --git a/scripts/ci/linux64/install.sh b/scripts/ci/linux/64/install.sh similarity index 100% rename from scripts/ci/linux64/install.sh rename to scripts/ci/linux/64/install.sh diff --git a/scripts/ci/linux64/run_tests.sh b/scripts/ci/linux/64/run_tests.sh similarity index 100% rename from scripts/ci/linux64/run_tests.sh rename to scripts/ci/linux/64/run_tests.sh diff --git a/scripts/ci/linuxarmv7l/arch-bootstrap.sh b/scripts/ci/linux/armv7l/arch-bootstrap.sh similarity index 100% rename from scripts/ci/linuxarmv7l/arch-bootstrap.sh rename to scripts/ci/linux/armv7l/arch-bootstrap.sh diff --git a/scripts/ci/linuxarmv7l/arch-bootstrap_downloadonly.sh b/scripts/ci/linux/armv7l/arch-bootstrap_downloadonly.sh similarity index 100% rename from scripts/ci/linuxarmv7l/arch-bootstrap_downloadonly.sh rename to scripts/ci/linux/armv7l/arch-bootstrap_downloadonly.sh diff --git a/scripts/ci/linuxarmv7l/build.sh b/scripts/ci/linux/armv7l/build.sh similarity index 100% rename from scripts/ci/linuxarmv7l/build.sh rename to scripts/ci/linux/armv7l/build.sh diff --git a/scripts/ci/linuxarmv7l/build_junest.sh b/scripts/ci/linux/armv7l/build_junest.sh similarity index 100% rename from scripts/ci/linuxarmv7l/build_junest.sh rename to scripts/ci/linux/armv7l/build_junest.sh diff --git a/scripts/ci/linuxarmv7l/install.sh b/scripts/ci/linux/armv7l/install.sh similarity index 100% rename from scripts/ci/linuxarmv7l/install.sh rename to scripts/ci/linux/armv7l/install.sh diff --git a/scripts/ci/linuxrpi/build.sh b/scripts/ci/linux/rpi/build.sh similarity index 100% rename from scripts/ci/linuxrpi/build.sh rename to scripts/ci/linux/rpi/build.sh diff --git a/scripts/ci/linuxrpi/install.sh b/scripts/ci/linux/rpi/install.sh similarity index 100% rename from scripts/ci/linuxrpi/install.sh rename to scripts/ci/linux/rpi/install.sh diff --git a/scripts/ci/linuxrpi/multistrap.conf b/scripts/ci/linux/rpi/multistrap.conf similarity index 100% rename from scripts/ci/linuxrpi/multistrap.conf rename to scripts/ci/linux/rpi/multistrap.conf From cc58ecf5f3ebc794c0a2de5aa24bc0fc40b9016d Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 19:49:52 +1100 Subject: [PATCH 07/68] Linux Script Updates --- .github/workflows/of.yml | 4 ++-- scripts/ci/linux/64/build.sh | 2 +- scripts/ci/linux/64/install.sh | 2 +- scripts/ci/linux/64/run_tests.sh | 2 +- scripts/dev/download_libs.sh | 34 ++++++++++++++++++-------------- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index fd7f4dafd6d..ceb23bce16f 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -273,12 +273,12 @@ jobs: - name: Download libs run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.libs}} - name: Install dependencies - run: ./scripts/ci/linuxrpi/install.sh; + run: ./scripts/ci/linux/rpi/install.sh; - name: LS shell: bash run: ls -alfR - name: Build - run: ./scripts/ci/linuxrpi/build.sh; + run: ./scripts/ci/linux/rpi/build.sh; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 2063953a425..9eef46010ae 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ev -ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../.." ; pwd -P )"} +ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../../.." ; pwd -P )"} # Add compiler flag to reduce memory usage to enable builds to complete # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56746#c7 # the "proper" way does not work currently: diff --git a/scripts/ci/linux/64/install.sh b/scripts/ci/linux/64/install.sh index fae3e3a30e8..821cc96fb7f 100755 --- a/scripts/ci/linux/64/install.sh +++ b/scripts/ci/linux/64/install.sh @@ -2,7 +2,7 @@ set -ev if [ -z ${OF_ROOT} ]; then - OF_ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../.." ; pwd -P )"} + OF_ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../../.." ; pwd -P )"} fi # Trusty/14.04 builds don't have databases running - disable this diff --git a/scripts/ci/linux/64/run_tests.sh b/scripts/ci/linux/64/run_tests.sh index 2f247e16e1e..50618781cc5 100755 --- a/scripts/ci/linux/64/run_tests.sh +++ b/scripts/ci/linux/64/run_tests.sh @@ -1,6 +1,6 @@ #!/bin/bash # set -ev -ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../.." ; pwd -P )"} +ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../../.." ; pwd -P )"} # if [ "$OPT" == "qbs" ]; then # exit 0 diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index bb909490ed0..86d20b058ca 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.7.0 +DL_VERSION=2.7.1 GCC_VERSION=0 TAG="" @@ -170,22 +170,13 @@ if [ "$ARCH" == "" ]; then if [ "$ARCH" == "x86_64" ]; then ARCH=64 elif [ "$ARCH" == "arm64" ]; then - # ARCH=arm64 # need to fix ARCH=64 - if [ -f /opt/vc/include/bcm_host.h ]; then # RPi - ARCH=aarch64 - fi elif [ "$ARCH" == "armv7l" ]; then - # Check for Raspberry Pi - if [ -f /opt/vc/include/bcm_host.h ]; then - ARCH=armv6l + if [ -f /opt/vc/include/bcm_host.h ]; then # Check for Raspberry Pi + ARCH=armv6l #this makes no sense fi elif [ "$ARCH" == "i686" ] || [ "$ARCH" == "i386" ]; then - cat << EOF -32bit linux is not officially supported anymore but compiling -the libraries using the build script in apothecary/scripts -should compile all the dependencies without problem -EOF + echo "32bit linux is not officially supported anymore but compiling the libraries using the build script in apothecary/scripts should compile all the dependencies without problem" exit 1 fi elif [ "$PLATFORM" == "msys2" ]; then @@ -201,7 +192,6 @@ EOF ARCH=clang64 fi fi - if [ "$PLATFORM" == "osx" ]; then ARCH=x86_64 fi @@ -222,9 +212,23 @@ if [ "$PLATFORM" == "linux" ]; then fi echo "GCC_VERSION: [$GCC_VERSION]" GCC_VERSION="gcc${GCC_VERSION}" + if [ "$ARCH" == "x86_64" ] || [ "$ARCH" == "64" ] then + OPT="_${GCC_VERSION}" + elif [ "$ARCH" == "arm64" ]; then + OPT="_${GCC_VERSION}" + elif [ "$ARCH" == "aarch64" ]; then + OPT=bookworm + elif [ "$ARCH" == "armv7l" ]; then + OPT=bookworm + elif [ "$ARCH" == "armv6l" ]; then + OPT=bookworm + elif [ "$ARCH" == "jetson" ]; then + OPT=jetson + fi fi + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$SCRIPT_DIR" @@ -318,7 +322,7 @@ elif [ "$PLATFORM" == "emscripten" ]; then fi else # Linux if [[ $BLEEDING_EDGE = 1 ]] ; then - PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_${GCC_VERSION}.tar.bz2" + PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}${OPT}.tar.bz2" else PKGS="openFrameworksLibs_${VER}_${PLATFORM}${ARCH}.tar.bz2" fi From 43bbc21b2daaea8d31e76b1cb1500bdf3415764d Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 22:01:09 +1100 Subject: [PATCH 08/68] Gold LD if found --- .../project/linux64/config.linux64.default.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk index 885eed569bd..5ec2db50d3d 100644 --- a/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk @@ -27,4 +27,9 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk -# PLATFORM_LDFLAGS += -fuse-ld=gold +ifneq ($(shell command -v ld.gold),) + PLATFORM_LDFLAGS += -fuse-ld=gold + $(info Using Gold linker.) +else + $(info Gold linker not found. Using default linker.) +endif From 682a8c1746554ccd992a7477ef6e0093fcd63498 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 22:02:25 +1100 Subject: [PATCH 09/68] Downloader [2.7.1 ~ 2.7.2] exit error if fail on download of library rather than let continue to code compiltion errors emscripten memory64 renamed 64 as internals are em32 and em64 --- scripts/dev/download_libs.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index 86d20b058ca..aafe30c7c79 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.7.1 +DL_VERSION=2.7.2 GCC_VERSION=0 TAG="" @@ -249,6 +249,9 @@ if [ "$PLATFORM" == "emscripten" ]; then if [[ $ARCH = "" ]] ; then ARCH="32" fi + if [[ $ARCH = "64" ]] ; then + ARCH="_64" + fi fi fi @@ -396,6 +399,11 @@ fi echo " ------ " for PKG in $PKGS; do echo " Uncompressing libraries [${PLATFORM}] from [$PKG]" + if [ ! -f "download/$PKG" ]; then + echo "Error: File 'download/$PKG' does not exist!" >&2 + exit 71 + fi + if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then unzip -qo download/$PKG # rm -r download/$PKG From bead770a0532eebad28d17a40cb669363d9b700c Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 22:29:29 +1100 Subject: [PATCH 10/68] Downloader [2.7.2 ~ 2.7.3] --- scripts/dev/download_libs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index aafe30c7c79..bd1ebd3a988 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.7.2 +DL_VERSION=2.7.3 GCC_VERSION=0 TAG="" @@ -212,7 +212,7 @@ if [ "$PLATFORM" == "linux" ]; then fi echo "GCC_VERSION: [$GCC_VERSION]" GCC_VERSION="gcc${GCC_VERSION}" - if [ "$ARCH" == "x86_64" ] || [ "$ARCH" == "64" ] then + if [ "$ARCH" == "x86_64" ] || [ "$ARCH" == "64" ]; then OPT="_${GCC_VERSION}" elif [ "$ARCH" == "arm64" ]; then OPT="_${GCC_VERSION}" From 8a91ecae829b24389fc73f51ded36642ff84cf8c Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 22:43:08 +1100 Subject: [PATCH 11/68] Linux Actions --- .github/workflows/of.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index ceb23bce16f..c36a5333ad2 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -327,8 +327,9 @@ jobs: strategy: matrix: cfg: - - {target: linux, arch: 64, gcc: gcc14} - - {target: linux, arch: 64, gcc: gcc10} + # - {target: linux, arch: 64, gcc: 6} + - {target: linux, arch: 64, gcc: 14} + - {target: linux, arch: 64, gcc: 10} env: TARGET: ${{matrix.cfg.target}} GCC: ${{matrix.cfg.gcc}} From 73e9518ec8fc9dec668d366823cd9da96e49b265 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 22:50:13 +1100 Subject: [PATCH 12/68] download_libs [2.7.3 ~ 2.7.4] fix opt args for downloads Linux --- scripts/dev/download_libs.sh | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index bd1ebd3a988..121569d6d63 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.7.3 +DL_VERSION=2.7.4 GCC_VERSION=0 TAG="" @@ -170,11 +170,7 @@ if [ "$ARCH" == "" ]; then if [ "$ARCH" == "x86_64" ]; then ARCH=64 elif [ "$ARCH" == "arm64" ]; then - ARCH=64 - elif [ "$ARCH" == "armv7l" ]; then - if [ -f /opt/vc/include/bcm_host.h ]; then # Check for Raspberry Pi - ARCH=armv6l #this makes no sense - fi + ARCH=64 # for now elif [ "$ARCH" == "i686" ] || [ "$ARCH" == "i386" ]; then echo "32bit linux is not officially supported anymore but compiling the libraries using the build script in apothecary/scripts should compile all the dependencies without problem" exit 1 @@ -217,13 +213,15 @@ if [ "$PLATFORM" == "linux" ]; then elif [ "$ARCH" == "arm64" ]; then OPT="_${GCC_VERSION}" elif [ "$ARCH" == "aarch64" ]; then - OPT=bookworm + OPT="" + elif [ "$ARCH" == "armv8l" ]; then + OPT="" elif [ "$ARCH" == "armv7l" ]; then - OPT=bookworm + OPT="" elif [ "$ARCH" == "armv6l" ]; then - OPT=bookworm + OPT="" elif [ "$ARCH" == "jetson" ]; then - OPT=jetson + OPT="" fi fi From d5a29a83489e72e30bf14473e3f365ea916e4e74 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 15 Jan 2025 23:03:14 +1100 Subject: [PATCH 13/68] downloader set linux aarch64 to 64 for testing on arm64 linux --- scripts/dev/download_libs.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index 121569d6d63..983df0a725a 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.7.4 +DL_VERSION=2.7.5 GCC_VERSION=0 TAG="" @@ -171,6 +171,8 @@ if [ "$ARCH" == "" ]; then ARCH=64 elif [ "$ARCH" == "arm64" ]; then ARCH=64 # for now + elif [ "$ARCH" == "aarch64" ]; then + ARCH=64 # for now elif [ "$ARCH" == "i686" ] || [ "$ARCH" == "i386" ]; then echo "32bit linux is not officially supported anymore but compiling the libraries using the build script in apothecary/scripts should compile all the dependencies without problem" exit 1 From af321aec1d272592ca58dee20c06f13da8a4a7c0 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 00:02:12 +1100 Subject: [PATCH 14/68] Makefile Linux subpath --- .../project/makefileCommon/config.shared.mk | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 4ab8df1f048..56105c70e1f 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -84,18 +84,23 @@ ifndef PLATFORM_LIB_SUBPATH # determine from the arch ifeq ($(PLATFORM_OS),Linux) ifeq ($(PLATFORM_ARCH),x86_64) - PLATFORM_LIB_SUBPATH=linux64 + PLATFORM_LIB_SUBPATH=linux/lib/64 else ifeq ($(PLATFORM_ARCH),armv6l) - PLATFORM_LIB_SUBPATH=linuxarmv6l + PLATFORM_LIB_SUBPATH=linux/lib/armv6l else ifeq ($(PLATFORM_ARCH),armv7l) - PLATFORM_LIB_SUBPATH=linuxarmv7l + PLATFORM_LIB_SUBPATH=linux/lib/armv7l + else ifeq ($(PLATFORM_ARCH),armv8l) + PLATFORM_LIB_SUBPATH=linux/lib/armv8l + else ifeq ($(PLATFORM_ARCH),arm64) + PLATFORM_LIB_SUBPATH=linux/lib/arm64 + else ifeq ($(PLATFORM_ARCH),aarch64) + PLATFORM_LIB_SUBPATH=linux/lib/aarch64 + else ifeq ($(PLATFORM_ARCH),jetson) + PLATFORM_LIB_SUBPATH=linux/lib/jetson else ifeq ($(PLATFORM_ARCH),i386) PLATFORM_LIB_SUBPATH=linux else ifeq ($(PLATFORM_ARCH),i686) PLATFORM_LIB_SUBPATH=linux - else ifeq ($(PLATFORM_ARCH),aarch64) - PLATFORM_LIB_SUBPATH=linuxaarch64 - else $(error This makefile does not support your architecture $(PLATFORM_ARCH)) endif SHARED_LIB_EXTENSION=so From ddab37a05f91b554abd0d1a2406a1a779ff18b46 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 00:28:05 +1100 Subject: [PATCH 15/68] makefile subpath --- .../project/makefileCommon/config.shared.mk | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 56105c70e1f..45ce2101567 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -85,6 +85,8 @@ ifndef PLATFORM_LIB_SUBPATH ifeq ($(PLATFORM_OS),Linux) ifeq ($(PLATFORM_ARCH),x86_64) PLATFORM_LIB_SUBPATH=linux/lib/64 + else ifeq ($(PLATFORM_ARCH),64) + PLATFORM_LIB_SUBPATH=linux/lib/64 else ifeq ($(PLATFORM_ARCH),armv6l) PLATFORM_LIB_SUBPATH=linux/lib/armv6l else ifeq ($(PLATFORM_ARCH),armv7l) @@ -99,7 +101,7 @@ ifndef PLATFORM_LIB_SUBPATH PLATFORM_LIB_SUBPATH=linux/lib/jetson else ifeq ($(PLATFORM_ARCH),i386) PLATFORM_LIB_SUBPATH=linux - else ifeq ($(PLATFORM_ARCH),i686) + else PLATFORM_LIB_SUBPATH=linux $(error This makefile does not support your architecture $(PLATFORM_ARCH)) endif @@ -221,8 +223,11 @@ ifdef MAKEFILE_DEBUG endif +$(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) +$(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) + ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) -$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) probably you downloaded the wrong package?) +$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH) probably you downloaded the wrong package?) endif # generate a list of valid core platform variants from the files in the platform makefiles directory From 655092a7cd82e5cf7688328d677608f13b8a7950 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 00:39:40 +1100 Subject: [PATCH 16/68] Linux subpath --- .../project/makefileCommon/config.shared.mk | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 45ce2101567..9073d758f6f 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -84,21 +84,21 @@ ifndef PLATFORM_LIB_SUBPATH # determine from the arch ifeq ($(PLATFORM_OS),Linux) ifeq ($(PLATFORM_ARCH),x86_64) - PLATFORM_LIB_SUBPATH=linux/lib/64 + PLATFORM_LIB_SUBPATH=linux/64 else ifeq ($(PLATFORM_ARCH),64) - PLATFORM_LIB_SUBPATH=linux/lib/64 + PLATFORM_LIB_SUBPATH=linux/64 else ifeq ($(PLATFORM_ARCH),armv6l) - PLATFORM_LIB_SUBPATH=linux/lib/armv6l + PLATFORM_LIB_SUBPATH=linux/armv6l else ifeq ($(PLATFORM_ARCH),armv7l) - PLATFORM_LIB_SUBPATH=linux/lib/armv7l + PLATFORM_LIB_SUBPATH=linux/armv7l else ifeq ($(PLATFORM_ARCH),armv8l) - PLATFORM_LIB_SUBPATH=linux/lib/armv8l + PLATFORM_LIB_SUBPATH=linux/armv8l else ifeq ($(PLATFORM_ARCH),arm64) - PLATFORM_LIB_SUBPATH=linux/lib/arm64 + PLATFORM_LIB_SUBPATH=linux/arm64 else ifeq ($(PLATFORM_ARCH),aarch64) - PLATFORM_LIB_SUBPATH=linux/lib/aarch64 + PLATFORM_LIB_SUBPATH=linux/aarch64 else ifeq ($(PLATFORM_ARCH),jetson) - PLATFORM_LIB_SUBPATH=linux/lib/jetson + PLATFORM_LIB_SUBPATH=linux/jetson else ifeq ($(PLATFORM_ARCH),i386) PLATFORM_LIB_SUBPATH=linux else From d4f5f35730cfee1f42408c9a577e0c559e92b7ef Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 01:16:10 +1100 Subject: [PATCH 17/68] download libs validate downloads before overrwite and 2.8.0. wget2 disabled for the moment --- scripts/dev/download_libs.sh | 14 +++++++++++++- scripts/dev/downloader.sh | 5 ++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index 983df0a725a..af8941bda0b 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.7.5 +DL_VERSION=2.8.0 GCC_VERSION=0 TAG="" @@ -354,7 +354,19 @@ cd download download "${PKGS[@]}" cd ../ # back to libs +VALID=true +for PKG in $PKGS; do + echo " Validate libraries [${PLATFORM}] from [$PKG]" + if [ ! -f "download/$PKG" ]; then + echo "Error: File 'download/$PKG' does not exist!" >&2 + VALID=false + fi +done +if [ $VALID -eq false ]; then + exit 71 +fi libs=("cairo" "curl" "FreeImage" "brotli" "fmod" "freetype" "glew" "glfw" "json" "libpng" "openssl" "pixman" "poco" "rtAudio" "tess2" "uriparser" "utf8" "videoInput" "zlib" "opencv" "ippicv" "assimp" "libxml2" "svgtiny" "fmt") + if [ $OVERWRITE -eq 1 ]; then echo " " echo " Overwrite - Removing prior libraries for [$PLATFORM]" diff --git a/scripts/dev/downloader.sh b/scripts/dev/downloader.sh index b31f1f8c205..62b0391099c 100755 --- a/scripts/dev/downloader.sh +++ b/scripts/dev/downloader.sh @@ -148,8 +148,7 @@ check_remote_vs_local() { finalurl() { local input_url="$1" local trimmed_url=$(echo "$input_url" | sed 's/[[:space:]]*$//') - local resolved_url=$(curl -L -I --retry "${RETRY_MAX:-5}" --max-redirs "${MAX_REDIRECTS:-5}" \ - --retry-connrefused --write-out '%{url_effective}' --silent --output /dev/null "$trimmed_url") + local resolved_url=$(curl -L -I --retry "${RETRY_MAX:-5}" --max-redirs "${MAX_REDIRECTS:-5}" --retry-connrefused --write-out '%{url_effective}' --silent --output /dev/null "$trimmed_url") if [[ -z "$resolved_url" ]]; then echoError "Failed to resolve URL: $trimmed_url" return 1 @@ -167,7 +166,7 @@ downloader() { NO_SSL=0 COMPRESSION=1 VERBOSE=0 - WGET2=1 + WGET2=0 CURL=1 WGET=1 CLOSE_CONNECTION=1 From 478b76288286414eac113b8fadefec2f10f395ab Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 01:27:46 +1100 Subject: [PATCH 18/68] Makefiles --- .../64}/config.linux64.default.mk | 0 .../64}/libopenFrameworks.cbp | 0 .../aarch64}/config.linuxaarch64.default.mk | 0 .../linux/arm64/config.linuxarm64.default.mk | 131 ++++++++++++++++++ .../armv6l}/config.linuxarmv6l.default.mk | 0 .../armv7l}/config.linuxarmv7l.default.mk | 0 .../armv7l}/config.linuxarmv7l.raspberry2.mk | 0 .../armv7l}/config.linuxarmv7l.udoo.mk | 0 .../linux/{ => i386}/config.linux.default.mk | 0 .../linux/{ => i386}/libopenFrameworks.cbp | 0 10 files changed, 131 insertions(+) rename libs/openFrameworksCompiled/project/{linux64 => linux/64}/config.linux64.default.mk (100%) rename libs/openFrameworksCompiled/project/{linux64 => linux/64}/libopenFrameworks.cbp (100%) rename libs/openFrameworksCompiled/project/{linuxaarch64 => linux/aarch64}/config.linuxaarch64.default.mk (100%) create mode 100644 libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk rename libs/openFrameworksCompiled/project/{linuxarmv6l => linux/armv6l}/config.linuxarmv6l.default.mk (100%) rename libs/openFrameworksCompiled/project/{linuxarmv7l => linux/armv7l}/config.linuxarmv7l.default.mk (100%) rename libs/openFrameworksCompiled/project/{linuxarmv7l => linux/armv7l}/config.linuxarmv7l.raspberry2.mk (100%) rename libs/openFrameworksCompiled/project/{linuxarmv7l => linux/armv7l}/config.linuxarmv7l.udoo.mk (100%) rename libs/openFrameworksCompiled/project/linux/{ => i386}/config.linux.default.mk (100%) rename libs/openFrameworksCompiled/project/linux/{ => i386}/libopenFrameworks.cbp (100%) diff --git a/libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk rename to libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk diff --git a/libs/openFrameworksCompiled/project/linux64/libopenFrameworks.cbp b/libs/openFrameworksCompiled/project/linux/64/libopenFrameworks.cbp similarity index 100% rename from libs/openFrameworksCompiled/project/linux64/libopenFrameworks.cbp rename to libs/openFrameworksCompiled/project/linux/64/libopenFrameworks.cbp diff --git a/libs/openFrameworksCompiled/project/linuxaarch64/config.linuxaarch64.default.mk b/libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linuxaarch64/config.linuxaarch64.default.mk rename to libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk diff --git a/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk b/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk new file mode 100644 index 00000000000..fffdab45b2b --- /dev/null +++ b/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk @@ -0,0 +1,131 @@ +############################################################################### +# CONFIGURE CORE PLATFORM MAKEFILE +# This file is where we make platform and architecture specific +# configurations. This file can be specified for a generic architecture or can +# be defined as variants. For instance, normally this file will be located in +# a platform specific subpath such as +# +# $(OF_ROOT)/libs/openFrameworksComplied/linux64 +# +# This file will then be a generic platform file like: +# +# configure.linux64.default.make +# +# Or it can specify a specific platform variant like: +# +# configure.linuxarmv6l.raspberrypi.make +# +################################################################################ + +################################################################################ +# include common rules +# +# all linux systems have several rules in common so most of them are included +# from the following file +# +################################################################################ + +include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk + + +################################################################################ +# PLATFORM CFLAGS +# This is a list of fully qualified CFLAGS required when compiling for this +# platform. These flags will always be added when compiling a project or the +# core library. These flags are presented to the compiler AFTER the +# PLATFORM_OPTIMIZATION_CFLAGS below. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ + +PLATFORM_LDFLAGS += -no-pie +# PLATFORM_LDFLAGS += -nostartfiles + +PLATFORM_CFLAGS += -march=armv8-a +PLATFORM_CFLAGS += -mcpu=cortex-a72 +PLATFORM_CFLAGS += -mtune=cortex-a72 +# PLATFORM_CFLAGS += -Wall +# PLATFORM_CFLAGS += -Werror +PLATFORM_CFLAGS += -fPIC +PLATFORM_CFLAGS += -ftree-vectorize +PLATFORM_CFLAGS += -Wno-psabi +PLATFORM_CFLAGS += -pipe + +################################################################################ +# PLATFORM LIBRARIES +# These are library names/paths that are platform specific and are specified +# using names or paths. The library flag (i.e. -l) is prefixed automatically. +# +# PLATFORM_LIBRARIES are libraries that can be found in the library search +# paths. +# PLATFORM_STATIC_LIBRARIES is a list of required static libraries. +# PLATFORM_SHARED_LIBRARIES is a list of required shared libraries. +# PLATFORM_PKG_CONFIG_LIBRARIES is a list of required libraries that are +# under system control and are easily accesible via the package +# configuration utility (i.e. pkg-config) +# +# See the helpfile for the -l flag here for more information: +# http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ + +PLATFORM_PKG_CONFIG_LIBRARIES += glesv1_cm +PLATFORM_PKG_CONFIG_LIBRARIES += glesv2 +PLATFORM_PKG_CONFIG_LIBRARIES += egl + + +################################################################################ +# PLATFORM CORE EXCLUSIONS +# During compilation, these makefiles will generate lists of sources, headers +# and third party libraries to be compiled and linked into a program or core +# library. The PLATFORM_CORE_EXCLUSIONS is a list of fully qualified file +# paths that will be used to exclude matching paths and files during list +# generation. +# +# Each item in the PLATFORM_CORE_EXCLUSIONS list will be treated as a complete +# string unless teh user adds a wildcard (%) operator to match subdirectories. +# GNU make only allows one wildcard for matching. The second wildcard (%) is +# treated literally. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ + +PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openFrameworks/sound/ofFmodSoundPlayer.cpp + +ifeq ($(CROSS_COMPILING),1) +ifdef MAKEFILE_DEBUG + $(info detected cross compiling $(CROSS_COMPILING)) +endif + + ifdef GCC_PREFIX + #You have specified GCC_PREFIX with an environment variable + else + GCC_PREFIX = aarch64-linux-gnu + endif + + PLATFORM_CXX = /usr/bin/$(GCC_PREFIX)-g++ + PLATFORM_CC = /usr/bin/$(GCC_PREFIX)-gcc + PLATFORM_AR = /usr/bin/$(GCC_PREFIX)-ar + PLATFORM_LD = /usr/bin/$(GCC_PREFIX)-ld + + SYSROOT=$(RPI_ROOT) + + PLATFORM_CFLAGS += --sysroot=$(SYSROOT) + + PLATFORM_LIBRARY_SEARCH_PATHS += /usr/lib/$(GCC_PREFIX) + PLATFORM_LIBRARY_SEARCH_PATHS += /lib/$(GCC_PREFIX) + PLATFORM_LIBRARY_SEARCH_PATHS += $(RPI_ROOT)/usr/lib/$(GCC_PREFIX)/blas + PLATFORM_LIBRARY_SEARCH_PATHS += $(RPI_ROOT)/usr/lib/$(GCC_PREFIX)/lapack + + PLATFORM_LDFLAGS += --sysroot=$(SYSROOT) + PLATFORM_LDFLAGS += -lblas -llapack + PLATFORM_LDFLAGS += -Xlinker -rpath-link=/usr/lib/$(GCC_PREFIX) + PLATFORM_LDFLAGS += -Xlinker -rpath-link=/lib/$(GCC_PREFIX) + PLATFORM_LDFLAGS += -Xlinker -rpath-link=/usr/lib/$(GCC_PREFIX)/pulseaudio + PLATFORM_LDFLAGS += -Xlinker -rpath-link=$(RPI_ROOT)/usr/lib/$(GCC_PREFIX)/lapack + PLATFORM_LDFLAGS += -Xlinker -rpath-link=$(RPI_ROOT)/usr/lib/$(GCC_PREFIX)/blas + + PKG_CONFIG_LIBDIR += /usr/lib/pkgconfig:/usr/lib/$(GCC_PREFIX)/pkgconfig:/usr/share/pkgconfig + +endif diff --git a/libs/openFrameworksCompiled/project/linuxarmv6l/config.linuxarmv6l.default.mk b/libs/openFrameworksCompiled/project/linux/armv6l/config.linuxarmv6l.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linuxarmv6l/config.linuxarmv6l.default.mk rename to libs/openFrameworksCompiled/project/linux/armv6l/config.linuxarmv6l.default.mk diff --git a/libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.default.mk b/libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.default.mk rename to libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.default.mk diff --git a/libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.raspberry2.mk b/libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.raspberry2.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.raspberry2.mk rename to libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.raspberry2.mk diff --git a/libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.udoo.mk b/libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.udoo.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.udoo.mk rename to libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.udoo.mk diff --git a/libs/openFrameworksCompiled/project/linux/config.linux.default.mk b/libs/openFrameworksCompiled/project/linux/i386/config.linux.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux/config.linux.default.mk rename to libs/openFrameworksCompiled/project/linux/i386/config.linux.default.mk diff --git a/libs/openFrameworksCompiled/project/linux/libopenFrameworks.cbp b/libs/openFrameworksCompiled/project/linux/i386/libopenFrameworks.cbp similarity index 100% rename from libs/openFrameworksCompiled/project/linux/libopenFrameworks.cbp rename to libs/openFrameworksCompiled/project/linux/i386/libopenFrameworks.cbp From 7eba8bf824502ecb9cb58ef4ad2fa7bb8990e0f0 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 01:32:03 +1100 Subject: [PATCH 19/68] downloadlibs [2.8.0 ~ 2.8.1] valid bool to int --- scripts/dev/download_libs.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index af8941bda0b..6bb370bcf13 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.8.0 +DL_VERSION=2.8.1 GCC_VERSION=0 TAG="" @@ -354,15 +354,15 @@ cd download download "${PKGS[@]}" cd ../ # back to libs -VALID=true +VALID=1 for PKG in $PKGS; do echo " Validate libraries [${PLATFORM}] from [$PKG]" if [ ! -f "download/$PKG" ]; then echo "Error: File 'download/$PKG' does not exist!" >&2 - VALID=false + VALID=0 fi done -if [ $VALID -eq false ]; then +if [ $VALID -eq 0 ]; then exit 71 fi libs=("cairo" "curl" "FreeImage" "brotli" "fmod" "freetype" "glew" "glfw" "json" "libpng" "openssl" "pixman" "poco" "rtAudio" "tess2" "uriparser" "utf8" "videoInput" "zlib" "opencv" "ippicv" "assimp" "libxml2" "svgtiny" "fmt") From 40a6bebae65a7cf587f60330229a896c66f60882 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 01:38:07 +1100 Subject: [PATCH 20/68] ci linux --- scripts/ci/linux/64/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 9eef46010ae..63b3db346e2 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -22,7 +22,7 @@ else echo "##[group]**** Building OF core ****" # this carries over to subsequent compilations of examples - echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux64/config.linux64.default.mk + echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk sed -i "s/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = .*/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = -g0/" libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk cd libs/openFrameworksCompiled/project make -j2 From e75e03cadbcaf6245537e3cd37204b12005bf2cb Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 01:50:47 +1100 Subject: [PATCH 21/68] Workflow ci optimisation VS single ARCH downloads Actions added 22.04 linux GCC10 test --- .github/workflows/of.yml | 48 ++++++++++++++++++++++++++++++++++++++-- scripts/ci/vs/install.sh | 5 +++-- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index c36a5333ad2..373f333c1eb 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -121,7 +121,9 @@ jobs: matrix: platform: [x64, ARM64, ARM64EC] env: - BITS: ${{ matrix.bits }} + BITS: ${{ matrix.platform }} + ARCH: ${{ matrix.platform }} + steps: - name: Clone repository uses: actions/checkout@v4 @@ -322,7 +324,7 @@ jobs: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - build-linux64: + build-linux-64: runs-on: ubuntu-24.04 strategy: matrix: @@ -366,6 +368,48 @@ jobs: scripts/ci/$TARGET/$ARCH/build.sh; fi + build-linux-64-22.04: + runs-on: ubuntu-22.04 + strategy: + matrix: + cfg: + - {target: linux, arch: 64, gcc: 10} + env: + TARGET: ${{matrix.cfg.target}} + GCC: ${{matrix.cfg.gcc}} + ARCH: ${{matrix.cfg.arch}} + steps: + - name: Remove Old lib-unwind + run: if [ "$TARGET" = "linux" ]; then + sudo apt-get remove libunwind-14 -y; + fi + - name: Cache Packages + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good + version: 1.0 + + - uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.14 + with: + key: ${{ matrix.cfg.target }} + + - name: Install dependencies + run: ./scripts/ci/$TARGET/$ARCH/install.sh; + + - name: Download libs + run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} + + - name: Build + run: | + if [ "$TARGET" = "linux" ]; then + scripts/ci/$TARGET/$ARCH/build.sh; + scripts/ci/$TARGET/$ARCH/run_tests.sh; + else + scripts/ci/$TARGET/$ARCH/build.sh; + fi + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # build-linux64-2204: diff --git a/scripts/ci/vs/install.sh b/scripts/ci/vs/install.sh index 063e8ecea9a..7bb30c0ad22 100755 --- a/scripts/ci/vs/install.sh +++ b/scripts/ci/vs/install.sh @@ -3,13 +3,14 @@ OF_ROOT=$PWD SCRIPT_DIR="${BASH_SOURCE%/*}" RELEASE="${RELEASE:-nightly}" +ARCH="${ARCH:-64}" if [[ ! -d "$SCRIPT_DIR" ]]; then SCRIPT_DIR="$PWD"; fi . "$SCRIPT_DIR/../../dev/downloader.sh" unset BITS cd "${OF_ROOT}" -./scripts/vs/download_libs.sh -p vs --silent -t $RELEASE +./scripts/vs/download_libs.sh -p vs --silent -t $RELEASE -a $ARCH rm -rf projectGenerator mkdir -p projectGenerator @@ -56,4 +57,4 @@ for i in "${!PROJECTS[@]}"; do echo "Updating: ${PROJECT} with:${PG_OF_PATH}" #cmd.exe /c "${PG_OF_PATH} ${OPTIONS}" eval "${PG_OF_PATH} ${OPTIONS}" -done \ No newline at end of file +done From 3029efb26d35fb12c7a94d6ea0fe52deae0cb5e6 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 02:50:05 +1100 Subject: [PATCH 22/68] Linux 22.04 Test --- .github/workflows/of.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 373f333c1eb..125a8c5fb10 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -368,7 +368,7 @@ jobs: scripts/ci/$TARGET/$ARCH/build.sh; fi - build-linux-64-22.04: + build-linux-64-22-04: runs-on: ubuntu-22.04 strategy: matrix: From d48af340ef9ca37f09b0cab97830d6b9f96ef19d Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 03:25:49 +1100 Subject: [PATCH 23/68] VS download optimisation --- .github/workflows/of.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 125a8c5fb10..762832df22a 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -119,7 +119,7 @@ jobs: runs-on: windows-2022 strategy: matrix: - platform: [x64, ARM64, ARM64EC] + platform: [64, ARM64, ARM64EC] env: BITS: ${{ matrix.platform }} ARCH: ${{ matrix.platform }} From 094abb3e9683fb7fc3f222941ec46a3e49bce8b1 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 03:42:24 +1100 Subject: [PATCH 24/68] VS Download fix --- .github/workflows/of.yml | 2 +- scripts/ci/linux/64/build.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 762832df22a..125a8c5fb10 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -119,7 +119,7 @@ jobs: runs-on: windows-2022 strategy: matrix: - platform: [64, ARM64, ARM64EC] + platform: [x64, ARM64, ARM64EC] env: BITS: ${{ matrix.platform }} ARCH: ${{ matrix.platform }} diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 63b3db346e2..b93a725b6e7 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -25,12 +25,12 @@ else echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk sed -i "s/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = .*/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = -g0/" libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk cd libs/openFrameworksCompiled/project - make -j2 + make -j2 DEBUG=1 MAKEFILE_DEBUG=1 echo "##[endgroup]" echo "##[group]**** Building emptyExample ****" cd $ROOT/scripts/templates/linux64 - make -j2 + make -j2 DEBUG=1 MAKEFILE_DEBUG=1 echo "##[endgroup]" echo "##[group]**** Building allAddonsExample ****" @@ -38,6 +38,6 @@ else cp scripts/templates/linux64/Makefile examples/templates/allAddonsExample/ cp scripts/templates/linux64/config.make examples/templates/allAddonsExample/ cd examples/templates/allAddonsExample/ - make -j2 + make -j2 DEBUG=1 MAKEFILE_DEBUG=1 echo "##[endgroup]" fi From c92b88601218059719bd79a6e54bfde9b62aa9b3 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 16 Jan 2025 03:42:46 +1100 Subject: [PATCH 25/68] Makefile fixes / vs arch --- .../project/makefileCommon/config.shared.mk | 6 +----- scripts/ci/vs/install.sh | 5 +++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 9073d758f6f..f20da8579ed 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -222,12 +222,8 @@ ifdef MAKEFILE_DEBUG $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) endif - -$(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) -$(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) - ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) -$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH) probably you downloaded the wrong package?) +$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) / $(PLATFORM_LIB_SUBPATH) probably you downloaded the wrong package?) endif # generate a list of valid core platform variants from the files in the platform makefiles directory diff --git a/scripts/ci/vs/install.sh b/scripts/ci/vs/install.sh index 7bb30c0ad22..6d2bc1e2ba3 100755 --- a/scripts/ci/vs/install.sh +++ b/scripts/ci/vs/install.sh @@ -4,6 +4,11 @@ SCRIPT_DIR="${BASH_SOURCE%/*}" RELEASE="${RELEASE:-nightly}" ARCH="${ARCH:-64}" +if [[ "$ARCH" == "x64" ]]; then + ARCH=64 +fi + + if [[ ! -d "$SCRIPT_DIR" ]]; then SCRIPT_DIR="$PWD"; fi . "$SCRIPT_DIR/../../dev/downloader.sh" From 78217a1c1b937b3731e83b97e2cd0b9c561e55e9 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 00:05:08 +1100 Subject: [PATCH 26/68] Makefile depth fix --- .../project/makefileCommon/config.shared.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index f20da8579ed..99617d147d5 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -227,7 +227,8 @@ $(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJEC endif # generate a list of valid core platform variants from the files in the platform makefiles directory -AVAILABLE_PLATFORM_VARIANTS=$(shell $(FIND) $(OF_PLATFORM_MAKEFILES)/config.*.mk -maxdepth 1 -type f | sed -E 's/.*\.([^\.]*)\.mk/\1/' ) +AVAILABLE_PLATFORM_VARIANTS=$(shell $(FIND) $(OF_PLATFORM_MAKEFILES)/config.*.mk -maxdepth 2 -type f | sed -E 's/.*\.([^\.]*)\.mk/\1/' ) +$(info AVAILABLE_PLATFORM_VARIANTS=$(AVAILABLE_PLATFORM_VARIANTS)) AVAILABLE_PLATFORM_VARIANTS+=default # check to see if we have a file for the desired variant. if not, quit and list the variants. From 8ad6d29079f8724b0b444fe9db326cdbb473d1e9 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 00:47:44 +1100 Subject: [PATCH 27/68] Makefile strict tab --- .../linux/64/config.linux64.default.mk | 6 +- .../aarch64/config.linuxaarch64.default.mk | 2 +- .../linux/arm64/config.linuxarm64.default.mk | 2 +- .../project/makefileCommon/config.addons.mk | 68 +++++++------- .../project/makefileCommon/config.shared.mk | 90 ++++++++++--------- 5 files changed, 86 insertions(+), 82 deletions(-) diff --git a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk index 5ec2db50d3d..79a4dfccc1a 100644 --- a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk @@ -28,8 +28,8 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk ifneq ($(shell command -v ld.gold),) - PLATFORM_LDFLAGS += -fuse-ld=gold - $(info Using Gold linker.) + PLATFORM_LDFLAGS += -fuse-ld=gold + $(info Using Gold linker.) else - $(info Gold linker not found. Using default linker.) + $(info Gold linker not found. Using default linker.) endif diff --git a/libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk b/libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk index fffdab45b2b..1a2cbae5864 100644 --- a/libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk @@ -95,7 +95,7 @@ PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openFrameworks/sound/ofFmodSoundPlay ifeq ($(CROSS_COMPILING),1) ifdef MAKEFILE_DEBUG - $(info detected cross compiling $(CROSS_COMPILING)) + $(info detected cross compiling $(CROSS_COMPILING)) endif ifdef GCC_PREFIX diff --git a/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk b/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk index fffdab45b2b..1a2cbae5864 100644 --- a/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/arm64/config.linuxarm64.default.mk @@ -95,7 +95,7 @@ PLATFORM_CORE_EXCLUSIONS += $(OF_LIBS_PATH)/openFrameworks/sound/ofFmodSoundPlay ifeq ($(CROSS_COMPILING),1) ifdef MAKEFILE_DEBUG - $(info detected cross compiling $(CROSS_COMPILING)) + $(info detected cross compiling $(CROSS_COMPILING)) endif ifdef GCC_PREFIX diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk index 12b482e1d81..7a1e71cedc4 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk @@ -3,22 +3,22 @@ ######################################################################## ifeq ($(PLATFORM_OS),Darwin) - PLATFORM_ALTERNATIVE := osx -else + PLATFORM_ALTERNATIVE := osx +else PLATFORM_ALTERNATIVE := void endif # Variable containing all grep commands to exclude unwanted paths EXCLUDE_PATHS_GREP = grep -v "/tvos-arm64" | \ - grep -v "/tvos-arm64_x86_64-simulator" | \ - grep -v "/ios-arm64" | \ - grep -v "/ios-arm64_x86_64-simulator" | \ - grep -v "/ios-arm64_x86_64-maccatalyst" | \ - grep -v "/xros-arm64" | \ - grep -v "/xros-arm64_x86_64-simulator" | \ - grep -v "/watchos-arm64_32_armv7k" | \ - grep -v "/watchos-arm64_i386-simulator" | \ - grep -v "/\.[^\.]" + grep -v "/tvos-arm64_x86_64-simulator" | \ + grep -v "/ios-arm64" | \ + grep -v "/ios-arm64_x86_64-simulator" | \ + grep -v "/ios-arm64_x86_64-maccatalyst" | \ + grep -v "/xros-arm64" | \ + grep -v "/xros-arm64_x86_64-simulator" | \ + grep -v "/watchos-arm64_32_armv7k" | \ + grep -v "/watchos-arm64_i386-simulator" | \ + grep -v "/\.[^\.]" # parses addons includes, in PARSED_ADDON_INCLUDES receives full PATHS to addons define parse_addons_includes @@ -232,7 +232,7 @@ define parse_addon $(eval PROJECT_ADDONS += $(addon_dep)) \ $(call parse_addon,$(addon_dep)) \ ) \ - ) + ) endef @@ -271,26 +271,26 @@ OF_PROJECT_ADDONS_DEPS = $(patsubst %.o,%.d,$(PROJECT_ADDONS_OBJ_FILES)) ######################################################################## # print debug information if so instructed ifdef MAKEFILE_DEBUG - $(info ---PROJECT_ADDONS_PATHS---) - $(foreach v, $(PROJECT_ADDONS_PATHS),$(info $(v))) - $(info ---PROJECT_ADDONS_WITH_CONFIG---) - $(foreach v, $(PROJECT_ADDONS_WITH_CONFIG),$(info $(v))) - $(info ---PROJECT_ADDONS_INCLUDES---) - $(foreach v, $(PROJECT_ADDONS_INCLUDES),$(info $(v))) - $(info ---PROJECT_ADDONS_SOURCE_FILES---) - $(foreach v, $(PROJECT_ADDONS_SOURCE_FILES),$(info $(v))) - $(info ---PROJECT_ADDONS_LIBS---) - $(foreach v, $(PROJECT_ADDONS_LIBS),$(info $(v))) - $(info ---PROJECT_ADDONS_OBJFILES---) - $(foreach v, $(PROJECT_ADDONS_OBJFILES),$(info $(v))) - $(info ---PROJECT_ADDONS_BASE_CFLAGS---) - $(foreach v, $(PROJECT_ADDONS_BASE_CFLAGS),$(info $(v))) - $(info ---PROJECT_ADDONS_DEFINES_CFLAGS---) - $(foreach v, $(PROJECT_ADDONS_DEFINES_CFLAGS),$(info $(v))) - $(info ---PROJECT_ADDONS_INCLUDES_CFLAGS---) - $(foreach v, $(PROJECT_ADDONS_INCLUDES_CFLAGS),$(info $(v))) - $(info ---PROJECT_ADDONS_LDFLAGS---) - $(foreach v, $(PROJECT_ADDONS_LDFLAGS),$(info $(v))) - $(info ---PROJECT_ADDONS_DATA---) - $(foreach v, $(PROJECT_ADDONS_DATA),$(info $(v))) + $(info ---PROJECT_ADDONS_PATHS---) + $(foreach v, $(PROJECT_ADDONS_PATHS),$(info $(v))) + $(info ---PROJECT_ADDONS_WITH_CONFIG---) + $(foreach v, $(PROJECT_ADDONS_WITH_CONFIG),$(info $(v))) + $(info ---PROJECT_ADDONS_INCLUDES---) + $(foreach v, $(PROJECT_ADDONS_INCLUDES),$(info $(v))) + $(info ---PROJECT_ADDONS_SOURCE_FILES---) + $(foreach v, $(PROJECT_ADDONS_SOURCE_FILES),$(info $(v))) + $(info ---PROJECT_ADDONS_LIBS---) + $(foreach v, $(PROJECT_ADDONS_LIBS),$(info $(v))) + $(info ---PROJECT_ADDONS_OBJFILES---) + $(foreach v, $(PROJECT_ADDONS_OBJFILES),$(info $(v))) + $(info ---PROJECT_ADDONS_BASE_CFLAGS---) + $(foreach v, $(PROJECT_ADDONS_BASE_CFLAGS),$(info $(v))) + $(info ---PROJECT_ADDONS_DEFINES_CFLAGS---) + $(foreach v, $(PROJECT_ADDONS_DEFINES_CFLAGS),$(info $(v))) + $(info ---PROJECT_ADDONS_INCLUDES_CFLAGS---) + $(foreach v, $(PROJECT_ADDONS_INCLUDES_CFLAGS),$(info $(v))) + $(info ---PROJECT_ADDONS_LDFLAGS---) + $(foreach v, $(PROJECT_ADDONS_LDFLAGS),$(info $(v))) + $(info ---PROJECT_ADDONS_DATA---) + $(foreach v, $(PROJECT_ADDONS_DATA),$(info $(v))) endif diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 99617d147d5..81a0873fa11 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -31,7 +31,7 @@ PLATFORM_OS ?= $(shell uname -s) HOST_OS=$(shell uname -s) ifdef MAKEFILE_DEBUG - $(info HOST_OS=${HOST_OS}) + $(info HOST_OS=${HOST_OS}) endif ifneq (,$(findstring MSYS_NT,$(HOST_OS))) @@ -70,13 +70,13 @@ endif ifdef MAKEFILE_DEBUG - $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) - $(info PLATFORM_OS=$(PLATFORM_OS)) - $(info HOST_ARCH=$(HOST_ARCH)) - $(info HOST_OS=$(HOST_OS)) - $(info CROSS_COMPILING=$(CROSS_COMPILING)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) - $(info IS_RASPBIAN=$(IS_RASPBIAN)) + $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) + $(info PLATFORM_OS=$(PLATFORM_OS)) + $(info HOST_ARCH=$(HOST_ARCH)) + $(info HOST_OS=$(HOST_OS)) + $(info CROSS_COMPILING=$(CROSS_COMPILING)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info IS_RASPBIAN=$(IS_RASPBIAN)) endif # if not defined, construct the default PLATFORM_LIB_SUBPATH @@ -142,11 +142,11 @@ endif # if desired, print the variables ifdef MAKEFILE_DEBUG - $(info =================== config.mk platform detection ================) - $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) - $(info PLATFORM_OS=$(PLATFORM_OS)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) - $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) + $(info =================== config.mk platform detection ================) + $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) + $(info PLATFORM_OS=$(PLATFORM_OS)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) endif @@ -209,17 +209,18 @@ endif ################################################################################ # print debug information if needed ifdef MAKEFILE_DEBUG - $(info =================== config.mk paths =============================) - $(info OF_ADDONS_PATH=$(OF_ADDONS_PATH)) - $(info OF_EXAMPLES_PATH=$(OF_EXAMPLES_PATH)) - $(info OF_APPS_PATH=$(OF_APPS_PATH)) - $(info OF_LIBS_PATH=$(OF_LIBS_PATH)) - $(info OF_LIBS_OPENFRAMEWORKS_PATH=$(OF_LIBS_OPENFRAMEWORKS_PATH)) - $(info OF_LIBS_OF_COMPILED_PATH=$(OF_LIBS_OF_COMPILED_PATH)) - $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) - $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) - $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) - $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) + $(info =================== config.mk paths =============================) + $(info OF_ADDONS_PATH=$(OF_ADDONS_PATH)) + $(info OF_EXAMPLES_PATH=$(OF_EXAMPLES_PATH)) + $(info OF_APPS_PATH=$(OF_APPS_PATH)) + $(info OF_LIBS_PATH=$(OF_LIBS_PATH)) + $(info OF_LIBS_OPENFRAMEWORKS_PATH=$(OF_LIBS_OPENFRAMEWORKS_PATH)) + $(info OF_LIBS_OF_COMPILED_PATH=$(OF_LIBS_OF_COMPILED_PATH)) + $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) + $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) + $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) + $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) endif ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) @@ -227,10 +228,13 @@ $(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJEC endif # generate a list of valid core platform variants from the files in the platform makefiles directory -AVAILABLE_PLATFORM_VARIANTS=$(shell $(FIND) $(OF_PLATFORM_MAKEFILES)/config.*.mk -maxdepth 2 -type f | sed -E 's/.*\.([^\.]*)\.mk/\1/' ) -$(info AVAILABLE_PLATFORM_VARIANTS=$(AVAILABLE_PLATFORM_VARIANTS)) +AVAILABLE_PLATFORM_VARIANTS=$(shell $(FIND) $(OF_PLATFORM_MAKEFILES)/config.*.mk -maxdepth 1 -type f | sed -E 's/.*\.([^\.]*)\.mk/\1/' ) AVAILABLE_PLATFORM_VARIANTS+=default +ifdef MAKEFILE_DEBUG + $(info AVAILABLE_PLATFORM_VARIANTS=$(AVAILABLE_PLATFORM_VARIANTS)) +endif + # check to see if we have a file for the desired variant. if not, quit and list the variants. ifeq ($(findstring $(PLATFORM_VARIANT),$(AVAILABLE_PLATFORM_VARIANTS)),) $(error Platform Variant "$(PLATFORM_VARIANT)" is not valid. Valid variants include [$(strip $(AVAILABLE_PLATFORM_VARIANTS))]) @@ -308,14 +312,14 @@ CORE_PKG_CONFIG_LIBRARIES += $(PROJECT_PKG_CONFIG_LIBRARIES) ifneq ($(strip $(CORE_PKG_CONFIG_LIBRARIES)),) ifneq ($(strip $(PKG_CONFIG_LIBDIR)),) ifdef MAKEFILE_DEBUG - $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) - $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) + $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) + $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) endif FAILED_PKG=$(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR); for pkg in $(CORE_PKG_CONFIG_LIBRARIES); do $(PLATFORM_PKG_CONFIG) $$pkg --cflags > /dev/null; if [ $$? -ne 0 ]; then echo $$pkg; return; fi; done; echo 0) else ifdef MAKEFILE_DEBUG - $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) - $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) + $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) + $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) endif FAILED_PKG=$(shell for pkg in $(CORE_PKG_CONFIG_LIBRARIES); do $(PLATFORM_PKG_CONFIG) $$pkg --cflags > /dev/null; if [ $$? -ne 0 ]; then echo $$pkg; return; fi; done; echo 0) endif @@ -367,22 +371,22 @@ OF_CORE_HEADER_FILES=$(filter-out $(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_S # DEBUG INFO ################################################################################ ifdef MAKEFILE_DEBUG - $(info ========================= config.mk flags ========================) - $(info ---OF_CORE_DEFINES_CFLAGS---) - $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) + $(info ========================= config.mk flags ========================) + $(info ---OF_CORE_DEFINES_CFLAGS---) + $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) - $(info ---OF_CORE_INCLUDES_CFLAGS---) - $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) + $(info ---OF_CORE_INCLUDES_CFLAGS---) + $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) - $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) - $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) + $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) + $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) - $(info ---OF_CORE_SOURCE_FILES---) - $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) + $(info ---OF_CORE_SOURCE_FILES---) + $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) - $(info ---OF_CORE_HEADER_FILES---) - $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) + $(info ---OF_CORE_HEADER_FILES---) + $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) - $(info ---PLATFORM_CORE_EXCLUSIONS---) - $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) + $(info ---PLATFORM_CORE_EXCLUSIONS---) + $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) endif From 8eee1c654237b8f555fe8fbf0ee6eb6a8a47e416 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 00:51:55 +1100 Subject: [PATCH 28/68] Github Actions Test needs --- .github/workflows/of.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 125a8c5fb10..2862f77756e 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -23,6 +23,7 @@ env: jobs: build-emscripten: runs-on: ubuntu-24.04 + needs: build-linux-6 strategy: matrix: cfg: @@ -117,6 +118,7 @@ jobs: build-vs2022: runs-on: windows-2022 + needs: build-linux-64 strategy: matrix: platform: [x64, ARM64, ARM64EC] @@ -165,6 +167,7 @@ jobs: build-vs2019: runs-on: windows-2019 + needs: build-linux-6 strategy: matrix: platform: [x64] @@ -223,6 +226,7 @@ jobs: rpi-build: runs-on: ubuntu-24.04 + needs: build-linux-6 strategy: matrix: cfg: @@ -286,6 +290,7 @@ jobs: build-ios-tvos: runs-on: macos-15 + needs: build-linux-6 strategy: matrix: cfg: @@ -453,6 +458,7 @@ jobs: build-macos: runs-on: macos-15 + needs: build-linux-6 strategy: matrix: cfg: From c61d5d218f9a8884c0a58d4c76468e3388111f5d Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 00:55:52 +1100 Subject: [PATCH 29/68] Addons linux path ofxSvg make --- addons/ofxSvg/addon_config.mk | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/ofxSvg/addon_config.mk b/addons/ofxSvg/addon_config.mk index bbd68296e55..807744ddcdd 100644 --- a/addons/ofxSvg/addon_config.mk +++ b/addons/ofxSvg/addon_config.mk @@ -69,20 +69,20 @@ ios: ADDON_LIBS += libs/libxml2/lib/ios/xml2.a linux64: - ADDON_LIBS = libs/svgtiny/lib/linux64/libsvgtiny.a - ADDON_LIBS += libs/libxml2/lib/linux64/libxml2.a + ADDON_LIBS = libs/svgtiny/lib/linux/64/libsvgtiny.a + ADDON_LIBS += libs/libxml2/lib/linux/64/libxml2.a linuxarmv6l: - ADDON_LIBS = libs/svgtiny/lib/linuxarmv6l/libsvgtiny.a - ADDON_LIBS += libs/libxml2/lib/linuxarmv6l/libxml2.a + ADDON_LIBS = libs/svgtiny/lib/linux/armv6l/libsvgtiny.a + ADDON_LIBS += libs/libxml2/lib/linux/armv6l/libxml2.a linuxarmv7l: - ADDON_LIBS = libs/svgtiny/lib/linuxarmv7l/libsvgtiny.a - ADDON_LIBS += libs/libxml2/lib/linuxarmv7l/libxml2.a + ADDON_LIBS = libs/svgtiny/lib/linux/armv7l/libsvgtiny.a + ADDON_LIBS += libs/libxml2/lib/linux/armv7l/libxml2.a linuxaarch64: - ADDON_LIBS = libs/svgtiny/lib/linuxaarch64/libsvgtiny.a - ADDON_LIBS += libs/libxml2/lib/linuxaarch64/libxml2.a + ADDON_LIBS = libs/svgtiny/lib/linux/aarch64/libsvgtiny.a + ADDON_LIBS += libs/libxml2/lib/linux/aarch64/libxml2.a msys2: ADDON_PKG_CONFIG_LIBRARIES = libxml-2.0 From 74b6993234d6fe407ca8dda8f9f4f1ae0ed10c1f Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 01:01:18 +1100 Subject: [PATCH 30/68] Actions needs use ubuntu as quick --- .github/workflows/of.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 2862f77756e..01eacef7682 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -23,7 +23,7 @@ env: jobs: build-emscripten: runs-on: ubuntu-24.04 - needs: build-linux-6 + needs: build-linux strategy: matrix: cfg: @@ -118,7 +118,7 @@ jobs: build-vs2022: runs-on: windows-2022 - needs: build-linux-64 + needs: build-linux strategy: matrix: platform: [x64, ARM64, ARM64EC] @@ -167,7 +167,7 @@ jobs: build-vs2019: runs-on: windows-2019 - needs: build-linux-6 + needs: build-linux strategy: matrix: platform: [x64] @@ -226,7 +226,7 @@ jobs: rpi-build: runs-on: ubuntu-24.04 - needs: build-linux-6 + needs: build-linux strategy: matrix: cfg: @@ -290,7 +290,7 @@ jobs: build-ios-tvos: runs-on: macos-15 - needs: build-linux-6 + needs: build-linux strategy: matrix: cfg: @@ -458,7 +458,7 @@ jobs: build-macos: runs-on: macos-15 - needs: build-linux-6 + needs: build-linux strategy: matrix: cfg: From 0ef22801de3bb1ab8557b4fe7151ca24b9c3bb98 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 01:09:13 +1100 Subject: [PATCH 31/68] Actions rename Linux-64 to linux --- .github/workflows/of.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 01eacef7682..26b67dd3ec9 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -329,7 +329,7 @@ jobs: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - build-linux-64: + build-linux: runs-on: ubuntu-24.04 strategy: matrix: From 887935dda865f080e4c630fb4530e32b952bc0ad Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 01:26:01 +1100 Subject: [PATCH 32/68] Makefiles spaces to tabs --- .../project/makefileCommon/config.project.mk | 112 +++++++++--------- .../project/makefileCommon/config.shared.mk | 2 +- scripts/ci/linux/64/build.sh | 3 + 3 files changed, 60 insertions(+), 57 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk index cd735a06380..dbf8c9e7942 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk @@ -113,18 +113,18 @@ OF_CORE_LIBRARY_LDFLAGS += $(addprefix -L,$(PLATFORM_LIBRARY_SEARCH_PATHS)) # DEBUG INFO ################################################################################ ifdef MAKEFILE_DEBUG - $(info =============================configure.core.flags.make========================) - $(info ---OF_CORE_LIBS_LDFLAGS---) - $(foreach v, $(OF_CORE_LIBS_LDFLAGS),$(info $(v))) + $(info =============================configure.core.flags.make========================) + $(info ---OF_CORE_LIBS_LDFLAGS---) + $(foreach v, $(OF_CORE_LIBS_LDFLAGS),$(info $(v))) - $(info ---OF_CORE_LIBS---) - $(foreach v, $(OF_CORE_LIBS),$(info $(v))) + $(info ---OF_CORE_LIBS---) + $(foreach v, $(OF_CORE_LIBS),$(info $(v))) endif ################################# ADDONS ###################################### ifdef MAKEFILE_DEBUG - $(info ===================ADDONS================) + $(info ===================ADDONS================) endif # check to make sure OF_ROOT is defined @@ -215,9 +215,9 @@ ifdef B_PROCESS_ADDONS PROJECT_ADDONS = $(filter-out $(INVALID_PROJECT_ADDONS),$(REQUESTED_PROJECT_ADDONS)) ifdef MAKEFILE_DEBUG - $(info ---PROJECT_ADDONS---) - $(foreach v, $(PROJECT_ADDONS),$(info $(v))) - $(info --------------------) + $(info ---PROJECT_ADDONS---) + $(foreach v, $(PROJECT_ADDONS),$(info $(v))) + $(info --------------------) endif ############################################################################ @@ -309,11 +309,11 @@ endif OF_PROJECT_SOURCE_PATHS = $(filter-out $(OF_PROJECT_EXCLUSIONS),$(ALL_OF_PROJECT_SOURCE_PATHS)) ifdef MAKEFILE_DEBUG - $(info ---OF_PROJECT_SOURCE_PATHS---) - $(foreach v, $(OF_PROJECT_SOURCE_PATHS),$(info $(v))) + $(info ---OF_PROJECT_SOURCE_PATHS---) + $(foreach v, $(OF_PROJECT_SOURCE_PATHS),$(info $(v))) - $(info ---OF_PROJECT_EXCLUSIONS---) - $(foreach v, $(OF_PROJECT_EXCLUSIONS),$(info $(v))) + $(info ---OF_PROJECT_EXCLUSIONS---) + $(foreach v, $(OF_PROJECT_EXCLUSIONS),$(info $(v))) endif # find all sources inside the project's source directory (recursively) @@ -328,8 +328,8 @@ OF_PROJECT_INCLUDES_CFLAGS := $(addprefix -I,$(filter-out $(PROJECT_INCLUDE_EXCL OF_ADDON_INCLUDES_CFLAGS += $(addprefix -I,$(filter-out $(PROJECT_INCLUDE_EXCLUSIONS),$(PROJECT_ADDONS_INCLUDES))) ifdef MAKEFILE_DEBUG - $(info ---OF_PROJECT_INCLUDES_CFLAGS---) - $(foreach v, $(OF_PROJECT_INCLUDES_CFLAGS),$(info $(v))) + $(info ---OF_PROJECT_INCLUDES_CFLAGS---) + $(foreach v, $(OF_PROJECT_INCLUDES_CFLAGS),$(info $(v))) endif ################################################################################ @@ -391,7 +391,7 @@ OF_PROJECT_LDFLAGS += $(addprefix -framework ,$(PROJECT_ADDONS_FRAMEWORKS)) ################################################################################ ifdef MAKEFILE_DEBUG - $(info ===================compile.project.make=============================) + $(info ===================compile.project.make=============================) endif ifdef PROJECT_CXX @@ -410,18 +410,18 @@ ifdef PLATFORM_CC CC ?= $(PLATFORM_CC) endif -ifdef ${ccache} +ifdef ${ccache} $(info 💿 Using CCACHE -- config.project.mk ) CXX := ${ccache} $(CXX) CC := ${ccache} $(CXX) -endif +endif ifdef PROJECT_RESOURCE_COMPILER - RESOURCE_COMPILER ?= $(PROJECT_RESOURCE_COMPILER) + RESOURCE_COMPILER ?= $(PROJECT_RESOURCE_COMPILER) endif ifdef PLATFORM_RESOURCE_COMPILER - RESOURCE_COMPILER ?= $(PLATFORM_RESOURCE_COMPILER) + RESOURCE_COMPILER ?= $(PLATFORM_RESOURCE_COMPILER) endif # TODO: what is this for? @@ -488,23 +488,23 @@ ifeq ($(findstring Debug,$(TARGET_NAME)),Debug) OPTIMIZATION_LDFLAGS = $(PROJECT_OPTIMIZATION_LDFLAGS_DEBUG) endif - # Executable Icon - ################# - # if defined, use the project debug icon. - # if no debug icon defined for the project, use the project release icon - # if no icon defined for the project, use the OF default debug icon defined for the platform - # leave ICON empty for default system icon - ifdef PROJECT_DEBUG_ICON - ICON = $(PROJECT_DEBUG_ICON) - else - ifdef PROJECT_RELEASE_ICON - ICON = $(PROJECT_RELEASE_ICON) - else - ifdef PLATFORM_DEBUG_ICON - ICON = $(PLATFORM_DEBUG_ICON) - endif - endif - endif + # Executable Icon + ################# + # if defined, use the project debug icon. + # if no debug icon defined for the project, use the project release icon + # if no icon defined for the project, use the OF default debug icon defined for the platform + # leave ICON empty for default system icon + ifdef PROJECT_DEBUG_ICON + ICON = $(PROJECT_DEBUG_ICON) + else + ifdef PROJECT_RELEASE_ICON + ICON = $(PROJECT_RELEASE_ICON) + else + ifdef PLATFORM_DEBUG_ICON + ICON = $(PLATFORM_DEBUG_ICON) + endif + endif + endif endif ifeq ($(findstring Release,$(TARGET_NAME)),Release) @@ -526,18 +526,18 @@ ifeq ($(findstring Release,$(TARGET_NAME)),Release) OPTIMIZATION_LDFLAGS = $(PROJECT_OPTIMIZATION_LDFLAGS_RELEASE) endif - # Executable Icon - ################# - # if defined, use the project release icon. - # if no icon defined for the project, use the OF default release icon defined for the platform - # leave ICON empty for default system icon - ifdef PROJECT_RELEASE_ICON - ICON = $(PROJECT_RELEASE_ICON) - else - ifdef PLATFORM_RELEASE_ICON - ICON = $(PLATFORM_RELEASE_ICON) - endif - endif + # Executable Icon + ################# + # if defined, use the project release icon. + # if no icon defined for the project, use the OF default release icon defined for the platform + # leave ICON empty for default system icon + ifdef PROJECT_RELEASE_ICON + ICON = $(PROJECT_RELEASE_ICON) + else + ifdef PLATFORM_RELEASE_ICON + ICON = $(PLATFORM_RELEASE_ICON) + endif + endif endif @@ -553,12 +553,12 @@ endif # define the subdirectory for our target name ifdef MAKEFILE_DEBUG - $(info ---OF_PROJECT_SOURCE_FILES---) - $(foreach v, $(OF_PROJECT_SOURCE_FILES),$(info $(v))) + $(info ---OF_PROJECT_SOURCE_FILES---) + $(foreach v, $(OF_PROJECT_SOURCE_FILES),$(info $(v))) endif ifdef MAKEFILE_DEBUG - $(info ---OF_PROJECT_DEPENDENCY_FILES---) - $(foreach v, $(OF_PROJECT_DEPENDENCY_FILES),$(info $(v))) + $(info ---OF_PROJECT_DEPENDENCY_FILES---) + $(foreach v, $(OF_PROJECT_DEPENDENCY_FILES),$(info $(v))) endif @@ -571,7 +571,7 @@ OF_PROJECT_DEPS = $(patsubst %.o,%.d,$(OF_PROJECT_OBJS)) # Compiled resources (icon, ...) - msys2 only? OF_PROJECT_RESOURCES = ifeq ($(findstring msys2,$(PLATFORM_LIB_SUBPATH)),msys2) - OF_PROJECT_RESOURCES += $(addprefix $(OF_PROJECT_OBJ_OUTPUT_PATH), $(notdir $(patsubst %.ico, %.res, $(ICON)))) + OF_PROJECT_RESOURCES += $(addprefix $(OF_PROJECT_OBJ_OUTPUT_PATH), $(notdir $(patsubst %.ico, %.res, $(ICON)))) endif OF_PROJECT_DEPENDENCY_FILES = $(OF_PROJECT_DEPS) $(OF_PROJECT_ADDONS_DEPS) @@ -580,6 +580,6 @@ OF_PROJECT_DEPENDENCY_FILES = $(OF_PROJECT_DEPS) $(OF_PROJECT_ADDONS_DEPS) ifdef MAKEFILE_DEBUG - $(info ---OF_PROJECT_DEPENDENCY_FILES---) - $(foreach v, $(OF_PROJECT_DEPENDENCY_FILES),$(info $(v))) + $(info ---OF_PROJECT_DEPENDENCY_FILES---) + $(foreach v, $(OF_PROJECT_DEPENDENCY_FILES),$(info $(v))) endif diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 81a0873fa11..f0efd677dd9 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -224,7 +224,7 @@ ifdef MAKEFILE_DEBUG endif ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) -$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) / $(PLATFORM_LIB_SUBPATH) probably you downloaded the wrong package?) +$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) probably you downloaded the wrong package?) endif # generate a list of valid core platform variants from the files in the platform makefiles directory diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index b93a725b6e7..033ec777346 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -27,11 +27,13 @@ else cd libs/openFrameworksCompiled/project make -j2 DEBUG=1 MAKEFILE_DEBUG=1 echo "##[endgroup]" + echo -e "\033[1;32m**** Building OF core: COMPLETE ****\033[0m" echo "##[group]**** Building emptyExample ****" cd $ROOT/scripts/templates/linux64 make -j2 DEBUG=1 MAKEFILE_DEBUG=1 echo "##[endgroup]" + echo -e "\033[1;32m**** Building emptyExample: COMPLETE ****\033[0m" echo "##[group]**** Building allAddonsExample ****" cd $ROOT @@ -40,4 +42,5 @@ else cd examples/templates/allAddonsExample/ make -j2 DEBUG=1 MAKEFILE_DEBUG=1 echo "##[endgroup]" + echo -e "\033[1;32m**** Building allAddonsExample: COMPLETE ****\033[0m" fi From ffcc9d6e8bcbbbab40ed847e23ca3cb4d3511615 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 01:38:02 +1100 Subject: [PATCH 33/68] Makefile debug --- scripts/ci/linux/64/build.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 033ec777346..70569082e38 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -25,22 +25,22 @@ else echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk sed -i "s/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = .*/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = -g0/" libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk cd libs/openFrameworksCompiled/project - make -j2 DEBUG=1 MAKEFILE_DEBUG=1 + DEBUG=1 MAKEFILE_DEBUG=1 make -j2 Debug echo "##[endgroup]" - echo -e "\033[1;32m**** Building OF core: COMPLETE ****\033[0m" + echo -e "\033[33m**** Building OF core: COMPLETE ****\033[0m" echo "##[group]**** Building emptyExample ****" cd $ROOT/scripts/templates/linux64 - make -j2 DEBUG=1 MAKEFILE_DEBUG=1 + DEBUG=1 MAKEFILE_DEBUG=1 make -j2 Debug echo "##[endgroup]" - echo -e "\033[1;32m**** Building emptyExample: COMPLETE ****\033[0m" + echo -e "\033[33m**** Building emptyExample: COMPLETE ****\033[0m" echo "##[group]**** Building allAddonsExample ****" cd $ROOT cp scripts/templates/linux64/Makefile examples/templates/allAddonsExample/ cp scripts/templates/linux64/config.make examples/templates/allAddonsExample/ cd examples/templates/allAddonsExample/ - make -j2 DEBUG=1 MAKEFILE_DEBUG=1 + DEBUG=1 MAKEFILE_DEBUG=1 make -j2 Debug echo "##[endgroup]" - echo -e "\033[1;32m**** Building allAddonsExample: COMPLETE ****\033[0m" + echo -e "\033[33m**** Building allAddonsExample: COMPLETE ****\033[0m" fi From 688ed3b37901a7fee94199d4d358bc54d05f40a4 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:09:46 +1100 Subject: [PATCH 34/68] Reset file --- .../linux/64/config.linux64.default.mk | 6 +- .../project/makefileCommon/config.shared.mk | 93 +++++++++---------- 2 files changed, 49 insertions(+), 50 deletions(-) diff --git a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk index 79a4dfccc1a..97188835f48 100644 --- a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk @@ -28,8 +28,8 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk ifneq ($(shell command -v ld.gold),) - PLATFORM_LDFLAGS += -fuse-ld=gold - $(info Using Gold linker.) +PLATFORM_LDFLAGS += -fuse-ld=gold +$(info Using Gold linker.) else - $(info Gold linker not found. Using default linker.) +$(info Gold linker not found. Using default linker.) endif diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index f0efd677dd9..9073d758f6f 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -31,7 +31,7 @@ PLATFORM_OS ?= $(shell uname -s) HOST_OS=$(shell uname -s) ifdef MAKEFILE_DEBUG - $(info HOST_OS=${HOST_OS}) + $(info HOST_OS=${HOST_OS}) endif ifneq (,$(findstring MSYS_NT,$(HOST_OS))) @@ -70,13 +70,13 @@ endif ifdef MAKEFILE_DEBUG - $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) - $(info PLATFORM_OS=$(PLATFORM_OS)) - $(info HOST_ARCH=$(HOST_ARCH)) - $(info HOST_OS=$(HOST_OS)) - $(info CROSS_COMPILING=$(CROSS_COMPILING)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) - $(info IS_RASPBIAN=$(IS_RASPBIAN)) + $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) + $(info PLATFORM_OS=$(PLATFORM_OS)) + $(info HOST_ARCH=$(HOST_ARCH)) + $(info HOST_OS=$(HOST_OS)) + $(info CROSS_COMPILING=$(CROSS_COMPILING)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info IS_RASPBIAN=$(IS_RASPBIAN)) endif # if not defined, construct the default PLATFORM_LIB_SUBPATH @@ -142,11 +142,11 @@ endif # if desired, print the variables ifdef MAKEFILE_DEBUG - $(info =================== config.mk platform detection ================) - $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) - $(info PLATFORM_OS=$(PLATFORM_OS)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) - $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) + $(info =================== config.mk platform detection ================) + $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) + $(info PLATFORM_OS=$(PLATFORM_OS)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) endif @@ -209,32 +209,31 @@ endif ################################################################################ # print debug information if needed ifdef MAKEFILE_DEBUG - $(info =================== config.mk paths =============================) - $(info OF_ADDONS_PATH=$(OF_ADDONS_PATH)) - $(info OF_EXAMPLES_PATH=$(OF_EXAMPLES_PATH)) - $(info OF_APPS_PATH=$(OF_APPS_PATH)) - $(info OF_LIBS_PATH=$(OF_LIBS_PATH)) - $(info OF_LIBS_OPENFRAMEWORKS_PATH=$(OF_LIBS_OPENFRAMEWORKS_PATH)) - $(info OF_LIBS_OF_COMPILED_PATH=$(OF_LIBS_OF_COMPILED_PATH)) - $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) - $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) - $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) - $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info =================== config.mk paths =============================) + $(info OF_ADDONS_PATH=$(OF_ADDONS_PATH)) + $(info OF_EXAMPLES_PATH=$(OF_EXAMPLES_PATH)) + $(info OF_APPS_PATH=$(OF_APPS_PATH)) + $(info OF_LIBS_PATH=$(OF_LIBS_PATH)) + $(info OF_LIBS_OPENFRAMEWORKS_PATH=$(OF_LIBS_OPENFRAMEWORKS_PATH)) + $(info OF_LIBS_OF_COMPILED_PATH=$(OF_LIBS_OF_COMPILED_PATH)) + $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) + $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) + $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) + $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) endif + +$(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) +$(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) + ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) -$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) probably you downloaded the wrong package?) +$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH) probably you downloaded the wrong package?) endif # generate a list of valid core platform variants from the files in the platform makefiles directory AVAILABLE_PLATFORM_VARIANTS=$(shell $(FIND) $(OF_PLATFORM_MAKEFILES)/config.*.mk -maxdepth 1 -type f | sed -E 's/.*\.([^\.]*)\.mk/\1/' ) AVAILABLE_PLATFORM_VARIANTS+=default -ifdef MAKEFILE_DEBUG - $(info AVAILABLE_PLATFORM_VARIANTS=$(AVAILABLE_PLATFORM_VARIANTS)) -endif - # check to see if we have a file for the desired variant. if not, quit and list the variants. ifeq ($(findstring $(PLATFORM_VARIANT),$(AVAILABLE_PLATFORM_VARIANTS)),) $(error Platform Variant "$(PLATFORM_VARIANT)" is not valid. Valid variants include [$(strip $(AVAILABLE_PLATFORM_VARIANTS))]) @@ -312,14 +311,14 @@ CORE_PKG_CONFIG_LIBRARIES += $(PROJECT_PKG_CONFIG_LIBRARIES) ifneq ($(strip $(CORE_PKG_CONFIG_LIBRARIES)),) ifneq ($(strip $(PKG_CONFIG_LIBDIR)),) ifdef MAKEFILE_DEBUG - $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) - $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) + $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) + $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) endif FAILED_PKG=$(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR); for pkg in $(CORE_PKG_CONFIG_LIBRARIES); do $(PLATFORM_PKG_CONFIG) $$pkg --cflags > /dev/null; if [ $$? -ne 0 ]; then echo $$pkg; return; fi; done; echo 0) else ifdef MAKEFILE_DEBUG - $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) - $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) + $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) + $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) endif FAILED_PKG=$(shell for pkg in $(CORE_PKG_CONFIG_LIBRARIES); do $(PLATFORM_PKG_CONFIG) $$pkg --cflags > /dev/null; if [ $$? -ne 0 ]; then echo $$pkg; return; fi; done; echo 0) endif @@ -371,22 +370,22 @@ OF_CORE_HEADER_FILES=$(filter-out $(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_S # DEBUG INFO ################################################################################ ifdef MAKEFILE_DEBUG - $(info ========================= config.mk flags ========================) - $(info ---OF_CORE_DEFINES_CFLAGS---) - $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) + $(info ========================= config.mk flags ========================) + $(info ---OF_CORE_DEFINES_CFLAGS---) + $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) - $(info ---OF_CORE_INCLUDES_CFLAGS---) - $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) + $(info ---OF_CORE_INCLUDES_CFLAGS---) + $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) - $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) - $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) + $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) + $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) - $(info ---OF_CORE_SOURCE_FILES---) - $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) + $(info ---OF_CORE_SOURCE_FILES---) + $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) - $(info ---OF_CORE_HEADER_FILES---) - $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) + $(info ---OF_CORE_HEADER_FILES---) + $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) - $(info ---PLATFORM_CORE_EXCLUSIONS---) - $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) + $(info ---PLATFORM_CORE_EXCLUSIONS---) + $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) endif From 7643dd40ba5633961b2657fe636765356912f522 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:22:41 +1100 Subject: [PATCH 35/68] Spaces to Tabs --- .../makefileCommon/config.linux.common.mk | 6 +- .../project/makefileCommon/config.shared.mk | 82 +++++++++---------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk index 2c929709e52..11fc7d5b244 100755 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk @@ -44,13 +44,13 @@ ifndef GST_VERSION ifeq ($(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);pkg-config gstreamer-1.0 --exists; echo $$?),0) GST_VERSION = 1.0 ifdef MAKEFILE_DEBUG - $(info GSTVERSION=$(GST_VERSION)) + $(info GSTVERSION=$(GST_VERSION)) endif else GST_VERSION = 0.10 ifdef MAKEFILE_DEBUG - $(info GSTVERSION=$(GST_VERSION)) - $(info $(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);pkg-config gstreamer-1.0 --exists; echo $$?)) + $(info GSTVERSION=$(GST_VERSION)) + $(info $(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);pkg-config gstreamer-1.0 --exists; echo $$?)) endif endif else diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 9073d758f6f..161ab10a3f5 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -31,7 +31,7 @@ PLATFORM_OS ?= $(shell uname -s) HOST_OS=$(shell uname -s) ifdef MAKEFILE_DEBUG - $(info HOST_OS=${HOST_OS}) + $(info HOST_OS=${HOST_OS}) endif ifneq (,$(findstring MSYS_NT,$(HOST_OS))) @@ -70,13 +70,13 @@ endif ifdef MAKEFILE_DEBUG - $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) - $(info PLATFORM_OS=$(PLATFORM_OS)) - $(info HOST_ARCH=$(HOST_ARCH)) - $(info HOST_OS=$(HOST_OS)) - $(info CROSS_COMPILING=$(CROSS_COMPILING)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) - $(info IS_RASPBIAN=$(IS_RASPBIAN)) + $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) + $(info PLATFORM_OS=$(PLATFORM_OS)) + $(info HOST_ARCH=$(HOST_ARCH)) + $(info HOST_OS=$(HOST_OS)) + $(info CROSS_COMPILING=$(CROSS_COMPILING)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info IS_RASPBIAN=$(IS_RASPBIAN)) endif # if not defined, construct the default PLATFORM_LIB_SUBPATH @@ -142,11 +142,11 @@ endif # if desired, print the variables ifdef MAKEFILE_DEBUG - $(info =================== config.mk platform detection ================) - $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) - $(info PLATFORM_OS=$(PLATFORM_OS)) - $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) - $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) + $(info =================== config.mk platform detection ================) + $(info PLATFORM_ARCH=$(PLATFORM_ARCH)) + $(info PLATFORM_OS=$(PLATFORM_OS)) + $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) + $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) endif @@ -209,17 +209,17 @@ endif ################################################################################ # print debug information if needed ifdef MAKEFILE_DEBUG - $(info =================== config.mk paths =============================) - $(info OF_ADDONS_PATH=$(OF_ADDONS_PATH)) - $(info OF_EXAMPLES_PATH=$(OF_EXAMPLES_PATH)) - $(info OF_APPS_PATH=$(OF_APPS_PATH)) - $(info OF_LIBS_PATH=$(OF_LIBS_PATH)) - $(info OF_LIBS_OPENFRAMEWORKS_PATH=$(OF_LIBS_OPENFRAMEWORKS_PATH)) - $(info OF_LIBS_OF_COMPILED_PATH=$(OF_LIBS_OF_COMPILED_PATH)) - $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) - $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) - $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) - $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) + $(info =================== config.mk paths =============================) + $(info OF_ADDONS_PATH=$(OF_ADDONS_PATH)) + $(info OF_EXAMPLES_PATH=$(OF_EXAMPLES_PATH)) + $(info OF_APPS_PATH=$(OF_APPS_PATH)) + $(info OF_LIBS_PATH=$(OF_LIBS_PATH)) + $(info OF_LIBS_OPENFRAMEWORKS_PATH=$(OF_LIBS_OPENFRAMEWORKS_PATH)) + $(info OF_LIBS_OF_COMPILED_PATH=$(OF_LIBS_OF_COMPILED_PATH)) + $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) + $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) + $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) + $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) endif @@ -311,14 +311,14 @@ CORE_PKG_CONFIG_LIBRARIES += $(PROJECT_PKG_CONFIG_LIBRARIES) ifneq ($(strip $(CORE_PKG_CONFIG_LIBRARIES)),) ifneq ($(strip $(PKG_CONFIG_LIBDIR)),) ifdef MAKEFILE_DEBUG - $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) - $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) + $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) + $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) endif FAILED_PKG=$(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR); for pkg in $(CORE_PKG_CONFIG_LIBRARIES); do $(PLATFORM_PKG_CONFIG) $$pkg --cflags > /dev/null; if [ $$? -ne 0 ]; then echo $$pkg; return; fi; done; echo 0) else ifdef MAKEFILE_DEBUG - $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) - $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) + $(info checking pkg-config libraries: $(CORE_PKG_CONFIG_LIBRARIES)) + $(info with PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR)) endif FAILED_PKG=$(shell for pkg in $(CORE_PKG_CONFIG_LIBRARIES); do $(PLATFORM_PKG_CONFIG) $$pkg --cflags > /dev/null; if [ $$? -ne 0 ]; then echo $$pkg; return; fi; done; echo 0) endif @@ -370,22 +370,22 @@ OF_CORE_HEADER_FILES=$(filter-out $(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_S # DEBUG INFO ################################################################################ ifdef MAKEFILE_DEBUG - $(info ========================= config.mk flags ========================) - $(info ---OF_CORE_DEFINES_CFLAGS---) - $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) + $(info ========================= config.mk flags ========================) + $(info ---OF_CORE_DEFINES_CFLAGS---) + $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) - $(info ---OF_CORE_INCLUDES_CFLAGS---) - $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) + $(info ---OF_CORE_INCLUDES_CFLAGS---) + $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) - $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) - $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) + $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) + $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) - $(info ---OF_CORE_SOURCE_FILES---) - $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) + $(info ---OF_CORE_SOURCE_FILES---) + $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) - $(info ---OF_CORE_HEADER_FILES---) - $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) + $(info ---OF_CORE_HEADER_FILES---) + $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) - $(info ---PLATFORM_CORE_EXCLUSIONS---) - $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) + $(info ---PLATFORM_CORE_EXCLUSIONS---) + $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) endif From 8d7acf565a0c0dcf6d70054e6d4329606127b8e5 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:25:30 +1100 Subject: [PATCH 36/68] no debug flags --- scripts/ci/linux/64/build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 70569082e38..c9f8a65064d 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -25,13 +25,13 @@ else echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk sed -i "s/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = .*/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = -g0/" libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk cd libs/openFrameworksCompiled/project - DEBUG=1 MAKEFILE_DEBUG=1 make -j2 Debug + make -j2 Debug echo "##[endgroup]" echo -e "\033[33m**** Building OF core: COMPLETE ****\033[0m" echo "##[group]**** Building emptyExample ****" cd $ROOT/scripts/templates/linux64 - DEBUG=1 MAKEFILE_DEBUG=1 make -j2 Debug + make -j2 Debug echo "##[endgroup]" echo -e "\033[33m**** Building emptyExample: COMPLETE ****\033[0m" @@ -40,7 +40,7 @@ else cp scripts/templates/linux64/Makefile examples/templates/allAddonsExample/ cp scripts/templates/linux64/config.make examples/templates/allAddonsExample/ cd examples/templates/allAddonsExample/ - DEBUG=1 MAKEFILE_DEBUG=1 make -j2 Debug + make -j2 Debug echo "##[endgroup]" echo -e "\033[33m**** Building allAddonsExample: COMPLETE ****\033[0m" fi From 851a70e14bb17795081b2a83662664cb5a276d2f Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:33:58 +1100 Subject: [PATCH 37/68] Actions --- .github/workflows/of.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 26b67dd3ec9..42f4eb649c6 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -31,7 +31,7 @@ jobs: env: TARGET: ${{matrix.cfg.target}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Docker Step run: "docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:4.0.4 bash" # - name: Determine Release @@ -76,7 +76,7 @@ jobs: - name: Check system shell: bash run: gcc -v - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: @@ -258,7 +258,7 @@ jobs: with: packages: multistrap unzip gcc-${{matrix.cfg.suffix}} g++-${{matrix.cfg.suffix}} version: 1.0 - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: @@ -299,7 +299,7 @@ jobs: env: TARGET: ${{matrix.cfg.target}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: @@ -352,7 +352,7 @@ jobs: packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good version: 1.0 - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: @@ -388,17 +388,17 @@ jobs: run: if [ "$TARGET" = "linux" ]; then sudo apt-get remove libunwind-14 -y; fi - - name: Cache Packages - uses: awalsh128/cache-apt-pkgs-action@latest - with: - packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good - version: 1.0 - - - uses: actions/checkout@v4 - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2.14 - with: - key: ${{ matrix.cfg.target }} + # - name: Cache Packages + # uses: awalsh128/cache-apt-pkgs-action@latest + # with: + # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good + # version: 1.0 + + - uses: actions/checkout@v4.2.2 + # - name: ccache + # uses: hendrikmuhs/ccache-action@v1.2.14 + # with: + # key: ${{ matrix.cfg.target }}-22-04 - name: Install dependencies run: ./scripts/ci/$TARGET/$ARCH/install.sh; @@ -436,7 +436,7 @@ jobs: # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good # version: 1.0 - # - uses: actions/checkout@v4 + # - uses: actions/checkout@v4.2.2 # - name: ccache # uses: hendrikmuhs/ccache-action@v1.2.14 # with: @@ -465,7 +465,7 @@ jobs: - { target: osx, opt: "xcode" } - { target: osx, opt: "makefiles" } steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.14 with: From daa9bd4de35774e49f63177c370ce97ff90f734b Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:41:08 +1100 Subject: [PATCH 38/68] 22.04 disabled --- .github/workflows/of.yml | 93 ++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 42f4eb649c6..088f7c835d4 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -346,59 +346,18 @@ jobs: run: if [ "$TARGET" = "linux" ]; then sudo apt-get remove libunwind-14 -y; fi - - name: Cache Packages - uses: awalsh128/cache-apt-pkgs-action@latest - with: - packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good - version: 1.0 - - - uses: actions/checkout@v4.2.2 - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2.14 - with: - key: ${{ matrix.cfg.target }} - - - name: Install dependencies - run: ./scripts/ci/$TARGET/$ARCH/install.sh; - - - name: Download libs - run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} - - - name: Build - run: | - if [ "$TARGET" = "linux" ]; then - scripts/ci/$TARGET/$ARCH/build.sh; - scripts/ci/$TARGET/$ARCH/run_tests.sh; - else - scripts/ci/$TARGET/$ARCH/build.sh; - fi - build-linux-64-22-04: - runs-on: ubuntu-22.04 - strategy: - matrix: - cfg: - - {target: linux, arch: 64, gcc: 10} - env: - TARGET: ${{matrix.cfg.target}} - GCC: ${{matrix.cfg.gcc}} - ARCH: ${{matrix.cfg.arch}} - steps: - - name: Remove Old lib-unwind - run: if [ "$TARGET" = "linux" ]; then - sudo apt-get remove libunwind-14 -y; - fi # - name: Cache Packages # uses: awalsh128/cache-apt-pkgs-action@latest # with: # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good # version: 1.0 - - uses: actions/checkout@v4.2.2 - # - name: ccache - # uses: hendrikmuhs/ccache-action@v1.2.14 - # with: - # key: ${{ matrix.cfg.target }}-22-04 + - uses: actions/checkout@v4.2.2 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.14 + with: + key: ${{ matrix.cfg.target }} - name: Install dependencies run: ./scripts/ci/$TARGET/$ARCH/install.sh; @@ -415,6 +374,48 @@ jobs: scripts/ci/$TARGET/$ARCH/build.sh; fi + # build-linux-64-22-04: + # runs-on: ubuntu-22.04 + # strategy: + # matrix: + # cfg: + # - {target: linux, arch: 64, gcc: 10} + # env: + # TARGET: ${{matrix.cfg.target}} + # GCC: ${{matrix.cfg.gcc}} + # ARCH: ${{matrix.cfg.arch}} + # steps: + # - name: Remove Old lib-unwind + # run: if [ "$TARGET" = "linux" ]; then + # sudo apt-get remove libunwind-14 -y; + # fi + # # - name: Cache Packages + # # uses: awalsh128/cache-apt-pkgs-action@latest + # # with: + # # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good + # # version: 1.0 + + # - uses: actions/checkout@v4.2.2 + # # - name: ccache + # # uses: hendrikmuhs/ccache-action@v1.2.14 + # # with: + # # key: ${{ matrix.cfg.target }}-22-04 + + # - name: Install dependencies + # run: ./scripts/ci/$TARGET/$ARCH/install.sh; + + # - name: Download libs + # run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} + + # - name: Build + # run: | + # if [ "$TARGET" = "linux" ]; then + # scripts/ci/$TARGET/$ARCH/build.sh; + # scripts/ci/$TARGET/$ARCH/run_tests.sh; + # else + # scripts/ci/$TARGET/$ARCH/build.sh; + # fi + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # build-linux64-2204: From d87044828ab83e6b3e6a0560f96be3a9e741386f Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:49:08 +1100 Subject: [PATCH 39/68] ci build 64 --- scripts/ci/linux/64/build.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index c9f8a65064d..f602c90549a 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -22,8 +22,7 @@ else echo "##[group]**** Building OF core ****" # this carries over to subsequent compilations of examples - echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk - sed -i "s/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = .*/PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = -g0/" libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk + # echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk cd libs/openFrameworksCompiled/project make -j2 Debug echo "##[endgroup]" @@ -42,5 +41,5 @@ else cd examples/templates/allAddonsExample/ make -j2 Debug echo "##[endgroup]" - echo -e "\033[33m**** Building allAddonsExample: COMPLETE ****\033[0m" + echo -e "\033[33m**** Building allAddonsExample: COMPLETE ****\033[0m" fi From b10d1f317d1d6a8653405c502e3e084c0ad35c6f Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 02:52:48 +1100 Subject: [PATCH 40/68] Line spaces to tabs --- .../project/makefileCommon/config.linux.common.mk | 6 +++--- scripts/ci/linux/64/build.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk index 11fc7d5b244..cc40f6c2a81 100755 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk @@ -44,13 +44,13 @@ ifndef GST_VERSION ifeq ($(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);pkg-config gstreamer-1.0 --exists; echo $$?),0) GST_VERSION = 1.0 ifdef MAKEFILE_DEBUG - $(info GSTVERSION=$(GST_VERSION)) + $(info GSTVERSION=$(GST_VERSION)) endif else GST_VERSION = 0.10 ifdef MAKEFILE_DEBUG - $(info GSTVERSION=$(GST_VERSION)) - $(info $(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);pkg-config gstreamer-1.0 --exists; echo $$?)) + $(info GSTVERSION=$(GST_VERSION)) + $(info $(shell export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);pkg-config gstreamer-1.0 --exists; echo $$?)) endif endif else diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index f602c90549a..4b613ebc4fd 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ev +set -e ROOT=${TRAVIS_BUILD_DIR:-"$( cd "$(dirname "$0")/../../../.." ; pwd -P )"} # Add compiler flag to reduce memory usage to enable builds to complete # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56746#c7 From 19afe0e99b09b3f861d5a8c2bacd336ee554b493 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 03:14:10 +1100 Subject: [PATCH 41/68] gold --- .../project/linux/64/config.linux64.default.mk | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk index 97188835f48..3834dec201c 100644 --- a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk @@ -27,9 +27,5 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk -ifneq ($(shell command -v ld.gold),) PLATFORM_LDFLAGS += -fuse-ld=gold -$(info Using Gold linker.) -else -$(info Gold linker not found. Using default linker.) -endif + From 71f8bf22bdcc965d3c3527d462bd254676252cf6 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 03:34:16 +1100 Subject: [PATCH 42/68] Fix Linux string issue --- .../project/makefileCommon/config.shared.mk | 10 +++++----- scripts/ci/linux/64/build.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 161ab10a3f5..fa5e0394b4d 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -220,12 +220,10 @@ ifdef MAKEFILE_DEBUG $(info OF_SHARED_MAKEFILES_PATH=$(OF_SHARED_MAKEFILES_PATH)) $(info OF_PLATFORM_MAKEFILES=$(OF_PLATFORM_MAKEFILES)) $(info OF_CORE_LIB_PATH=$(OF_CORE_LIB_PATH)) + $(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) + $(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) endif - -$(info PLATFORM_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)) -$(info OF_LIBS_OF_COMPILED_PROJECT_PATH=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)) - ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) $(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH) probably you downloaded the wrong package?) endif @@ -240,7 +238,9 @@ ifeq ($(findstring $(PLATFORM_VARIANT),$(AVAILABLE_PLATFORM_VARIANTS)),) endif # include the platform specific user and platform configuration files -include $(OF_PLATFORM_MAKEFILES)/config.$(PLATFORM_LIB_SUBPATH).$(PLATFORM_VARIANT).mk +PLATFORM_LIB_SUBPATH_FIXED := $(subst /,,$(PLATFORM_LIB_SUBPATH)) +include $(OF_PLATFORM_MAKEFILES)/config.$(PLATFORM_LIB_SUBPATH_FIXED).$(PLATFORM_VARIANT).mk + ifdef ABI_PATH ABI_LIB_SUBPATH=$(PLATFORM_LIB_SUBPATH)/$(strip $(ABI_PATH)) diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 4b613ebc4fd..8de89846ac3 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -24,7 +24,7 @@ else # this carries over to subsequent compilations of examples # echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk cd libs/openFrameworksCompiled/project - make -j2 Debug + MAKEFILE_DEBUG=1 make -j2 Debug echo "##[endgroup]" echo -e "\033[33m**** Building OF core: COMPLETE ****\033[0m" From 14df16f5e3979c822e2cedcd92eb1feb4c2c4276 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 03:39:00 +1100 Subject: [PATCH 43/68] debug off --- scripts/ci/linux/64/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/linux/64/build.sh b/scripts/ci/linux/64/build.sh index 8de89846ac3..4b613ebc4fd 100755 --- a/scripts/ci/linux/64/build.sh +++ b/scripts/ci/linux/64/build.sh @@ -24,7 +24,7 @@ else # this carries over to subsequent compilations of examples # echo "PLATFORM_CFLAGS += $CUSTOMFLAGS" >> libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk cd libs/openFrameworksCompiled/project - MAKEFILE_DEBUG=1 make -j2 Debug + make -j2 Debug echo "##[endgroup]" echo -e "\033[33m**** Building OF core: COMPLETE ****\033[0m" From 8d14302396780938d4306389854ec5b8d0a4cbe1 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 03:43:55 +1100 Subject: [PATCH 44/68] gold linker on command --- .../project/linux/64/config.linux64.default.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk index 3834dec201c..79a4dfccc1a 100644 --- a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk @@ -27,5 +27,9 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk -PLATFORM_LDFLAGS += -fuse-ld=gold - +ifneq ($(shell command -v ld.gold),) + PLATFORM_LDFLAGS += -fuse-ld=gold + $(info Using Gold linker.) +else + $(info Gold linker not found. Using default linker.) +endif From ad32c5f3046dc36c69d5d130c043dcaa0b4236b3 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 04:06:05 +1100 Subject: [PATCH 45/68] gold linker comments disabled --- .../project/linux/64/config.linux64.default.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk index 79a4dfccc1a..b0593461911 100644 --- a/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk +++ b/libs/openFrameworksCompiled/project/linux/64/config.linux64.default.mk @@ -29,7 +29,4 @@ include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk ifneq ($(shell command -v ld.gold),) PLATFORM_LDFLAGS += -fuse-ld=gold - $(info Using Gold linker.) -else - $(info Gold linker not found. Using default linker.) endif From 96fe3c766de40a50fafe1d8e66b433f39e3c4d51 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 10:57:38 +1100 Subject: [PATCH 46/68] Update addon_config --- addons/ofxAssimp/addon_config.mk | 8 ++++---- addons/ofxAssimpModelLoader/addon_config.mk | 8 ++++---- addons/ofxKinect/addon_config.mk | 8 ++++---- .../libs/libfreenect/platform/windows/unistd.h | 3 +++ addons/ofxOpenCv/addon_config.mk | 8 ++++---- addons/ofxOsc/addon_config.mk | 8 ++++---- addons/ofxPoco/addon_config.mk | 10 +++++----- addons/ofxSvg/addon_config.mk | 8 ++++---- 8 files changed, 32 insertions(+), 29 deletions(-) diff --git a/addons/ofxAssimp/addon_config.mk b/addons/ofxAssimp/addon_config.mk index 02b0932ab0b..cadc8dba1a0 100644 --- a/addons/ofxAssimp/addon_config.mk +++ b/addons/ofxAssimp/addon_config.mk @@ -62,17 +62,17 @@ common: # a specific platform # ADDON_LIBS_EXCLUDE = -linuxarmv6l: +linux/armv6l: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp ADDON_INCLUDES_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp/% -linuxarmv7l: +linux/armv7l: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp ADDON_INCLUDES_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp/% -linuxaarch64: +linux/aarch64: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp ADDON_INCLUDES_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp/% @@ -82,7 +82,7 @@ linux: ADDON_LIBS_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp ADDON_INCLUDES_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp/% -linux64: +linux/64: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp ADDON_INCLUDES_EXCLUDE = ../ofxAssimpModelLoader/libs/assimp/% diff --git a/addons/ofxAssimpModelLoader/addon_config.mk b/addons/ofxAssimpModelLoader/addon_config.mk index a32080b2d1a..5b40093ce6a 100644 --- a/addons/ofxAssimpModelLoader/addon_config.mk +++ b/addons/ofxAssimpModelLoader/addon_config.mk @@ -60,17 +60,17 @@ common: # a specific platform # ADDON_LIBS_EXCLUDE = -linuxarmv6l: +linux/armv6l: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = libs/assimp ADDON_INCLUDES_EXCLUDE = libs/assimp/% -linuxarmv7l: +linux/armv7l: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = libs/assimp ADDON_INCLUDES_EXCLUDE = libs/assimp/% -linuxaarch64: +linux/aarch64: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = libs/assimp ADDON_INCLUDES_EXCLUDE = libs/assimp/% @@ -80,7 +80,7 @@ linux: ADDON_LIBS_EXCLUDE = libs/assimp ADDON_INCLUDES_EXCLUDE = libs/assimp/% -linux64: +linux/64: ADDON_PKG_CONFIG_LIBRARIES = assimp ADDON_LIBS_EXCLUDE = libs/assimp ADDON_INCLUDES_EXCLUDE = libs/assimp/% diff --git a/addons/ofxKinect/addon_config.mk b/addons/ofxKinect/addon_config.mk index a5cad5aff04..2a42c048329 100644 --- a/addons/ofxKinect/addon_config.mk +++ b/addons/ofxKinect/addon_config.mk @@ -68,7 +68,7 @@ common: # a specific platform # ADDON_INCLUDES_EXCLUDE = -linux64: +linux/64: # linux only, any library that should be included in the project using # pkg-config ADDON_PKG_CONFIG_LIBRARIES = libusb-1.0 @@ -127,7 +127,7 @@ vs: # when parsing the file system looking for include paths exclude this for all or # a specific platform -linuxarmv6l: +linux/armv6l: # linux only, any library that should be included in the project using # pkg-config ADDON_PKG_CONFIG_LIBRARIES = libusb-1.0 @@ -143,7 +143,7 @@ linuxarmv6l: ADDON_INCLUDES_EXCLUDE += libs/libusb-1.0/% -linuxarmv7l: +linux/armv7l: # linux only, any library that should be included in the project using # pkg-config ADDON_PKG_CONFIG_LIBRARIES = libusb-1.0 @@ -158,7 +158,7 @@ linuxarmv7l: ADDON_INCLUDES_EXCLUDE = libs/libfreenect/platform/% ADDON_INCLUDES_EXCLUDE += libs/libusb-1.0/% -linuxaarch64: +linuxa/arch64: # linux only, any library that should be included in the project using # pkg-config ADDON_PKG_CONFIG_LIBRARIES = libusb-1.0 diff --git a/addons/ofxKinect/libs/libfreenect/platform/windows/unistd.h b/addons/ofxKinect/libs/libfreenect/platform/windows/unistd.h index 86d41addc42..a47e2637a96 100644 --- a/addons/ofxKinect/libs/libfreenect/platform/windows/unistd.h +++ b/addons/ofxKinect/libs/libfreenect/platform/windows/unistd.h @@ -26,6 +26,8 @@ #pragma once +#ifdef _WIN32 + #include #include @@ -53,3 +55,4 @@ static void usleep(__int64 usec) WaitForSingleObject(timer, INFINITE); CloseHandle(timer); } +#endif diff --git a/addons/ofxOpenCv/addon_config.mk b/addons/ofxOpenCv/addon_config.mk index ee8e3e386a8..873e760914a 100644 --- a/addons/ofxOpenCv/addon_config.mk +++ b/addons/ofxOpenCv/addon_config.mk @@ -60,7 +60,7 @@ common: # a specific platform # ADDON_LIBS_EXCLUDE = -linux64: +linux/64: ADDON_PKG_CONFIG_LIBRARIES = opencv4 harfbuzz ADDON_LIBS_EXCLUDE = libs/opencv/% ADDON_INCLUDES_EXCLUDE = libs/opencv @@ -72,19 +72,19 @@ linux: ADDON_INCLUDES_EXCLUDE = libs/opencv ADDON_INCLUDES_EXCLUDE += libs/opencv/% -linuxarmv6l: +linux/armv6l: ADDON_PKG_CONFIG_LIBRARIES = opencv4 ADDON_LIBS_EXCLUDE = libs/opencv/% ADDON_INCLUDES_EXCLUDE = libs/opencv ADDON_INCLUDES_EXCLUDE += libs/opencv/% -linuxarmv7l: +linux/armv7l: ADDON_PKG_CONFIG_LIBRARIES = opencv4 ADDON_LIBS_EXCLUDE = libs/opencv/% ADDON_INCLUDES_EXCLUDE = libs/opencv ADDON_INCLUDES_EXCLUDE += libs/opencv/% -linuxaarch64: +linux/aarch64: ADDON_PKG_CONFIG_LIBRARIES = opencv4 ADDON_LIBS_EXCLUDE = libs/opencv/% ADDON_INCLUDES_EXCLUDE = libs/opencv diff --git a/addons/ofxOsc/addon_config.mk b/addons/ofxOsc/addon_config.mk index 71e58597920..a1dfb86fb32 100644 --- a/addons/ofxOsc/addon_config.mk +++ b/addons/ofxOsc/addon_config.mk @@ -68,15 +68,15 @@ common: # a specific platform # ADDON_INCLUDES_EXCLUDE = -linuxarmv6l: +linux/armv6l: ADDON_SOURCES_EXCLUDE = libs/oscpack/src/ip/win32/% ADDON_INCLUDES_EXCLUDE = libs/oscpack/src/ip/win32 -linuxarmv7l: +linux/armv7l: ADDON_SOURCES_EXCLUDE = libs/oscpack/src/ip/win32/% ADDON_INCLUDES_EXCLUDE = libs/oscpack/src/ip/win32 -linuxaarch64: +linux/aarch64: ADDON_SOURCES_EXCLUDE = libs/oscpack/src/ip/win32/% ADDON_INCLUDES_EXCLUDE = libs/oscpack/src/ip/win32 @@ -84,7 +84,7 @@ linux: ADDON_SOURCES_EXCLUDE = libs/oscpack/src/ip/win32/% ADDON_INCLUDES_EXCLUDE = libs/oscpack/src/ip/win32 -linux64: +linux/64: ADDON_SOURCES_EXCLUDE = libs/oscpack/src/ip/win32/% ADDON_INCLUDES_EXCLUDE = libs/oscpack/src/ip/win32 diff --git a/addons/ofxPoco/addon_config.mk b/addons/ofxPoco/addon_config.mk index 64815e1c580..d0f214bbccb 100644 --- a/addons/ofxPoco/addon_config.mk +++ b/addons/ofxPoco/addon_config.mk @@ -65,7 +65,7 @@ common: ADDON_SOURCES_EXCLUDE = libs/poco/include/% linux: - ADDON_LDFLAGS = -lPocoNetSSL + ADDON_LDFLAGS = -lPocoNetSSL ADDON_LDFLAGS += -lPocoNet ADDON_LDFLAGS += -lPocoCrypto ADDON_LDFLAGS += -lPocoUtil @@ -74,8 +74,8 @@ linux: ADDON_LDFLAGS += -lcrypto ADDON_LDFLAGS += -lssl -linux64: - ADDON_LDFLAGS = -lPocoNetSSL +linux/64: + ADDON_LDFLAGS = -lPocoNetSSL ADDON_LDFLAGS += -lPocoNet ADDON_LDFLAGS += -lPocoCrypto ADDON_LDFLAGS += -lPocoUtil @@ -84,7 +84,7 @@ linux64: ADDON_LDFLAGS += -lcrypto ADDON_LDFLAGS += -lssl -linuxarmv6l: +linux/armv6l: ADDON_LDFLAGS = -lPocoNetSSL ADDON_LDFLAGS += -lPocoNet ADDON_LDFLAGS += -lPocoCrypto @@ -94,7 +94,7 @@ linuxarmv6l: ADDON_LDFLAGS += -lcrypto ADDON_LDFLAGS += -lssl -linuxarmv7l: +linux/armv7l: ADDON_LDFLAGS = -lPocoNetSSL ADDON_LDFLAGS += -lPocoNet ADDON_LDFLAGS += -lPocoCrypto diff --git a/addons/ofxSvg/addon_config.mk b/addons/ofxSvg/addon_config.mk index 807744ddcdd..05dbdc3c48d 100644 --- a/addons/ofxSvg/addon_config.mk +++ b/addons/ofxSvg/addon_config.mk @@ -68,19 +68,19 @@ ios: ADDON_LIBS = libs/svgtiny/lib/ios/svgtiny.a ADDON_LIBS += libs/libxml2/lib/ios/xml2.a -linux64: +linux/64: ADDON_LIBS = libs/svgtiny/lib/linux/64/libsvgtiny.a ADDON_LIBS += libs/libxml2/lib/linux/64/libxml2.a -linuxarmv6l: +linux/armv6l: ADDON_LIBS = libs/svgtiny/lib/linux/armv6l/libsvgtiny.a ADDON_LIBS += libs/libxml2/lib/linux/armv6l/libxml2.a -linuxarmv7l: +linux/armv7l: ADDON_LIBS = libs/svgtiny/lib/linux/armv7l/libsvgtiny.a ADDON_LIBS += libs/libxml2/lib/linux/armv7l/libxml2.a -linuxaarch64: +linux/aarch64: ADDON_LIBS = libs/svgtiny/lib/linux/aarch64/libsvgtiny.a ADDON_LIBS += libs/libxml2/lib/linux/aarch64/libxml2.a From 35b31dc441749b9bb2acef6a9f976b4b2bcce3ba Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 17:23:54 +1100 Subject: [PATCH 47/68] Actions Linux 22.04 Enabled --- .github/workflows/of.yml | 92 ++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 088f7c835d4..712e0b2f064 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -347,11 +347,11 @@ jobs: sudo apt-get remove libunwind-14 -y; fi - # - name: Cache Packages - # uses: awalsh128/cache-apt-pkgs-action@latest - # with: - # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good - # version: 1.0 + - name: Cache Packages + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good + version: 1.0 - uses: actions/checkout@v4.2.2 - name: ccache @@ -374,47 +374,47 @@ jobs: scripts/ci/$TARGET/$ARCH/build.sh; fi - # build-linux-64-22-04: - # runs-on: ubuntu-22.04 - # strategy: - # matrix: - # cfg: - # - {target: linux, arch: 64, gcc: 10} - # env: - # TARGET: ${{matrix.cfg.target}} - # GCC: ${{matrix.cfg.gcc}} - # ARCH: ${{matrix.cfg.arch}} - # steps: - # - name: Remove Old lib-unwind - # run: if [ "$TARGET" = "linux" ]; then - # sudo apt-get remove libunwind-14 -y; - # fi - # # - name: Cache Packages - # # uses: awalsh128/cache-apt-pkgs-action@latest - # # with: - # # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good - # # version: 1.0 - - # - uses: actions/checkout@v4.2.2 - # # - name: ccache - # # uses: hendrikmuhs/ccache-action@v1.2.14 - # # with: - # # key: ${{ matrix.cfg.target }}-22-04 - - # - name: Install dependencies - # run: ./scripts/ci/$TARGET/$ARCH/install.sh; - - # - name: Download libs - # run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} - - # - name: Build - # run: | - # if [ "$TARGET" = "linux" ]; then - # scripts/ci/$TARGET/$ARCH/build.sh; - # scripts/ci/$TARGET/$ARCH/run_tests.sh; - # else - # scripts/ci/$TARGET/$ARCH/build.sh; - # fi + build-linux-64-22-04: + runs-on: ubuntu-22.04 + strategy: + matrix: + cfg: + - {target: linux, arch: 64, gcc: 10} + env: + TARGET: ${{matrix.cfg.target}} + GCC: ${{matrix.cfg.gcc}} + ARCH: ${{matrix.cfg.arch}} + steps: + - name: Remove Old lib-unwind + run: if [ "$TARGET" = "linux" ]; then + sudo apt-get remove libunwind-14 -y; + fi + # - name: Cache Packages + # uses: awalsh128/cache-apt-pkgs-action@latest + # with: + # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good + # version: 1.0 + + # - uses: actions/checkout@v4.2.2 + # - name: ccache + # uses: hendrikmuhs/ccache-action@v1.2.14 + # with: + # key: ${{ matrix.cfg.target }}-22-04 + + - name: Install dependencies + run: ./scripts/ci/$TARGET/$ARCH/install.sh; + + - name: Download libs + run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} + + - name: Build + run: | + if [ "$TARGET" = "linux" ]; then + scripts/ci/$TARGET/$ARCH/build.sh; + scripts/ci/$TARGET/$ARCH/run_tests.sh; + else + scripts/ci/$TARGET/$ARCH/build.sh; + fi # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 4acc8a8e98ca32a145429266f0a425caad1a6b80 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 17:37:45 +1100 Subject: [PATCH 48/68] Actions Linux 22.04 GCC 10 --- .github/workflows/of.yml | 54 ++++++---------------------------------- 1 file changed, 7 insertions(+), 47 deletions(-) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 712e0b2f064..55966227e37 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -374,7 +374,7 @@ jobs: scripts/ci/$TARGET/$ARCH/build.sh; fi - build-linux-64-22-04: + build-linux-22: runs-on: ubuntu-22.04 strategy: matrix: @@ -389,17 +389,18 @@ jobs: run: if [ "$TARGET" = "linux" ]; then sudo apt-get remove libunwind-14 -y; fi + # - name: Cache Packages # uses: awalsh128/cache-apt-pkgs-action@latest # with: # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good # version: 1.0 - # - uses: actions/checkout@v4.2.2 - # - name: ccache - # uses: hendrikmuhs/ccache-action@v1.2.14 - # with: - # key: ${{ matrix.cfg.target }}-22-04 + - uses: actions/checkout@v4.2.2 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.14 + with: + key: ${{ matrix.cfg.target }} - name: Install dependencies run: ./scripts/ci/$TARGET/$ARCH/install.sh; @@ -416,47 +417,6 @@ jobs: scripts/ci/$TARGET/$ARCH/build.sh; fi - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # build-linux64-2204: - # runs-on: ubuntu-22.04 - # strategy: - # matrix: - # cfg: - # - {target: linux64, libs: 64gcc6} - # env: - # TARGET: ${{matrix.cfg.target}} - # steps: - # - name: Remove Old lib-unwind - # run: if [ "$TARGET" = "linux64" ]; then - # sudo apt-get remove libunwind-14 -y; - # fi - # - name: Cache Packages - # uses: awalsh128/cache-apt-pkgs-action@latest - # with: - # packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good - # version: 1.0 - - # - uses: actions/checkout@v4.2.2 - # - name: ccache - # uses: hendrikmuhs/ccache-action@v1.2.14 - # with: - # key: ${{ matrix.cfg.target }}-${{ matrix.cfg.libs }} - - # - name: Download libs - # run: ./scripts/linux/download_libs.sh -a ${{matrix.cfg.libs}} - # - name: Install dependencies - # run: ./scripts/ci/$TARGET/install.sh; - # - name: Build - # run: if [ "$TARGET" = "linux64" ]; then - # scripts/ci/linux64/build.sh; - # scripts/ci/$TARGET/run_tests.sh; - # else - # scripts/ci/$TARGET/build.sh; - # fi - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - build-macos: runs-on: macos-15 needs: build-linux From 09bce48ce2651086863bdda38eb63cf830c9bf24 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 21:16:47 +1100 Subject: [PATCH 49/68] downloader [4.4.0 ~ 4.5.0] - fix close connection for zero urls. shfmt formatted bash --- scripts/dev/downloader.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/dev/downloader.sh b/scripts/dev/downloader.sh index 62b0391099c..b31f1f8c205 100755 --- a/scripts/dev/downloader.sh +++ b/scripts/dev/downloader.sh @@ -148,7 +148,8 @@ check_remote_vs_local() { finalurl() { local input_url="$1" local trimmed_url=$(echo "$input_url" | sed 's/[[:space:]]*$//') - local resolved_url=$(curl -L -I --retry "${RETRY_MAX:-5}" --max-redirs "${MAX_REDIRECTS:-5}" --retry-connrefused --write-out '%{url_effective}' --silent --output /dev/null "$trimmed_url") + local resolved_url=$(curl -L -I --retry "${RETRY_MAX:-5}" --max-redirs "${MAX_REDIRECTS:-5}" \ + --retry-connrefused --write-out '%{url_effective}' --silent --output /dev/null "$trimmed_url") if [[ -z "$resolved_url" ]]; then echoError "Failed to resolve URL: $trimmed_url" return 1 @@ -166,7 +167,7 @@ downloader() { NO_SSL=0 COMPRESSION=1 VERBOSE=0 - WGET2=0 + WGET2=1 CURL=1 WGET=1 CLOSE_CONNECTION=1 From 3444c517c65803a5058eb1003e6afeab32be9e2b Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Fri, 17 Jan 2025 21:45:46 +1100 Subject: [PATCH 50/68] Actions update Rpi disabled while fixed --- .github/workflows/of.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 55966227e37..d4357bef814 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -227,6 +227,7 @@ jobs: rpi-build: runs-on: ubuntu-24.04 needs: build-linux + if: ${{ false }} # DISABLED strategy: matrix: cfg: From 7f4e563f909a95e01c4cc6929ce51337ec60bfc7 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Sat, 18 Jan 2025 10:36:13 +1100 Subject: [PATCH 51/68] Linux script updates --- scripts/linux/buildAllExamples.sh | 8 +++++-- scripts/linux/buildAllRPIExamples.sh | 7 +++++- scripts/linux/cleanAllExamples.sh | 6 ++++- scripts/linux/compileOF.sh | 36 +++++++++++++++++----------- scripts/linux/compilePG.sh | 8 ++++--- scripts/linux/removeFMOD.sh | 25 ++++++++++++++++--- scripts/linux/testAllExamples.sh | 9 +++++-- 7 files changed, 73 insertions(+), 26 deletions(-) diff --git a/scripts/linux/buildAllExamples.sh b/scripts/linux/buildAllExamples.sh index 7048eefa767..bc06289b80f 100755 --- a/scripts/linux/buildAllExamples.sh +++ b/scripts/linux/buildAllExamples.sh @@ -2,9 +2,13 @@ export LC_ALL=C -for category in $( find ../../examples/ -maxdepth 1 -type d ) +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OFDIR="$(realpath "$OF_DIR/../..")" +OFCORE_EXAMPLES_DIR="$(realpath "$OF_DIR/examples")" + +for category in $( find "${OFCORE_EXAMPLES_DIR}/" -maxdepth 1 -type d ) do - if [ "$category" = "../../examples/android" -o "$category" = "../../examples/ios" -o "$category" = "../../examples/" -o "$category" = "../../examples/tvOS" ]; then + if [ "$category" = "${OFCORE_EXAMPLES_DIR}/android" -o "$category" = "${OFCORE_EXAMPLES_DIR}/ios" -o "$category" = "${OFCORE_EXAMPLES_DIR}/" -o "$category" = "${OFCORE_EXAMPLES_DIR}/tvOS" ]; then continue fi diff --git a/scripts/linux/buildAllRPIExamples.sh b/scripts/linux/buildAllRPIExamples.sh index 28a01d695f9..dac71dd1251 100755 --- a/scripts/linux/buildAllRPIExamples.sh +++ b/scripts/linux/buildAllRPIExamples.sh @@ -1,7 +1,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$(dirname "$DIR")" + +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OFDIR="$(realpath "$OF_DIR/../..")" +OFCORE_EXAMPLES_DIR="$(realpath "$OF_DIR/examples")" + MAKEFILE_PATH=$PARENT_DIR/templates/linuxarmv6l/Makefile -cd ${DIR}/../../examples +cd ${OFCORE_EXAMPLES_DIR} for category in $(ls -1d *) do diff --git a/scripts/linux/cleanAllExamples.sh b/scripts/linux/cleanAllExamples.sh index 11f1ee922f2..87cf395295d 100755 --- a/scripts/linux/cleanAllExamples.sh +++ b/scripts/linux/cleanAllExamples.sh @@ -1,8 +1,12 @@ #!/bin/bash +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OFDIR="$(realpath "$OF_DIR/../..")" +OFCORE_EXAMPLES_DIR="$(realpath "$OF_DIR/examples")" + for category in $( find ../../examples/ -maxdepth 1 -type d ) do - if [ "$category" = "../../examples/android" -o "$category" = "../../examples/ios" -o "$category" = "../../examples/" ]; then + if [ "$category" = "${OFCORE_EXAMPLES_DIR}/android" -o "$category" = "${OFCORE_EXAMPLES_DIR}/ios" -o "$category" = "${OFCORE_EXAMPLES_DIR}/" ]; then continue fi diff --git a/scripts/linux/compileOF.sh b/scripts/linux/compileOF.sh index 3f37c9974a3..a94be563efa 100755 --- a/scripts/linux/compileOF.sh +++ b/scripts/linux/compileOF.sh @@ -1,12 +1,20 @@ #!/usr/bin/env bash export LC_ALL=C +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OFDIR="$(realpath "$OF_DIR/../..")" ARCH=$(uname -m) -if [ "$ARCH" = "x86_64" ]; then - LIBSPATH=linux64 -else - LIBSPATH=linux +if [ "$ARCH" == "" ]; then + if [ "$ARCH" = "x86_64" ]; then + LIBSPATH=linux/64 + elif [ "$ARCH" = "arm64" ]; then + LIBSPATH=linux/arm64 + elif [ "$ARCH" = "jetson" ]; then + LIBSPATH=linux/jetson + else + LIBSPATH=linux + fi fi pushd `dirname $0` > /dev/null @@ -18,13 +26,13 @@ JOBS=1 while getopts tj: opt ; do case "$opt" in t) # testing, only build Debug - BUILD="test" ;; + BUILD="test" ;; j) # make job count for parallel build - JOBS="$OPTARG" + JOBS="$OPTARG" esac done -cd "${SCRIPTPATH}/../../libs/openFrameworksCompiled/project" +cd "${OFDIR}/libs/openFrameworksCompiled/project" make -j$JOBS Debug exit_code=$? if [ $exit_code != 0 ]; then @@ -34,11 +42,11 @@ if [ $exit_code != 0 ]; then fi if [ "$BUILD" == "install" ]; then - make -j$JOBS Release - exit_code=$? - if [ $exit_code != 0 ]; then - echo "there has been a problem compiling Release OF library" - echo "please report this problem in the forums" - exit $exit_code - fi + make -j$JOBS Release + exit_code=$? + if [ $exit_code != 0 ]; then + echo "there has been a problem compiling Release OF library" + echo "please report this problem in the forums" + exit $exit_code + fi fi diff --git a/scripts/linux/compilePG.sh b/scripts/linux/compilePG.sh index 348f78c4461..0e3e1935aa8 100755 --- a/scripts/linux/compilePG.sh +++ b/scripts/linux/compilePG.sh @@ -2,9 +2,11 @@ export LC_ALL=C -OF_ROOT=$(cd $(dirname $0)/../..; pwd -P) +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OF_ROOT="$(realpath "$OF_DIR/../..")" +OF_PG_DIR="$(realpath "$OF_DIR/apps/projectGenerator")" -make Release -C ${OF_ROOT}/apps/projectGenerator/commandLine +make Release -C ${OF_PG_DIR}/commandLine ret=$? if [ $ret -ne 0 ]; then echo "There has been a problem compiling the command line projectGenerator." @@ -18,7 +20,7 @@ read -p "Do you want to install the command line project generator? [Y/n] " -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then echo "To copy the command line project generator we need root permission." - sudo cp ${OF_ROOT}/apps/projectGenerator/commandLine/bin/projectGenerator /usr/local/bin/projectGenerator + sudo cp ${OF_PG_DIR}/commandLine/bin/projectGenerator /usr/local/bin/projectGenerator if [ ! $? -eq 0 ]; then echo "Failed to copy the projectGenerator file." exit diff --git a/scripts/linux/removeFMOD.sh b/scripts/linux/removeFMOD.sh index 1cb365fb219..d94f62365d0 100755 --- a/scripts/linux/removeFMOD.sh +++ b/scripts/linux/removeFMOD.sh @@ -1,3 +1,22 @@ -rm -r ../../libs/fmod -rm ../../export/linux/libs/libfmod* -rm ../../export/linux64/libs/libfmod* +#!/bin/bash +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OFDIR="$(realpath "$OF_DIR/../..")" + +if [ -d "${OFDIR}/libs/fmod" ]; then + rm -r "${OFDIR}/libs/fmod" + echo "Deleted ${OFDIR}/libs/fmod" +fi + +if [ -d "${OFDIR}/export/linux/libs" ]; then + if ls ${OFDIR}/export/linux/libs/libfmod* 1> /dev/null 2>&1; then + rm ${OFDIR}/export/linux/libs/libfmod* + echo "Deleted files in ${OFDIR}/export/linux/libs/" + fi +fi + +if [ -d "${OFDIR}/export/linux64/libs" ]; then + if ls ${OFDIR}/export/linux64/libs/libfmod* 1> /dev/null 2>&1; then + rm ${OFDIR}/export/linux64/libs/libfmod* + echo "Deleted files in ${OFDIR}/export/linux64/libs/" + fi +fi diff --git a/scripts/linux/testAllExamples.sh b/scripts/linux/testAllExamples.sh index 0017ee93170..2f91dcc7954 100755 --- a/scripts/linux/testAllExamples.sh +++ b/scripts/linux/testAllExamples.sh @@ -1,7 +1,11 @@ #!/bin/bash export LC_ALL=C -cd ../../examples +OFDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OFDIR="$(realpath "$OF_DIR/../..")" +OFCORE_EXAMPLES_DIR="$(realpath "$OF_DIR/examples")" + +cd ${OFCORE_EXAMPLES_DIR} for category in $( ls . ) do @@ -16,7 +20,7 @@ do continue fi echo "-----------------------------------------------------------------" - echo "building " + $example + echo "building [" + $example "]" cd $example make Debug ret=$? @@ -30,6 +34,7 @@ do echo error compiling $example exit fi + echo "build success [" + $example "]" cd bin ./$example cd ../../ From 6ec622fcf1625b970dfd9a7f34948f7fc151d11b Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Sat, 18 Jan 2025 17:47:08 +1100 Subject: [PATCH 52/68] osx / ios remove defined .a --- addons/ofxAssimp/addon_config.mk | 1 - addons/ofxAssimpModelLoader/addon_config.mk | 5 +++-- addons/ofxSvg/addon_config.mk | 7 ------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/addons/ofxAssimp/addon_config.mk b/addons/ofxAssimp/addon_config.mk index cadc8dba1a0..84126722d24 100644 --- a/addons/ofxAssimp/addon_config.mk +++ b/addons/ofxAssimp/addon_config.mk @@ -101,7 +101,6 @@ android/x86: ADDON_LIBS= ADDON_LIBS+=../ofxAssimpModelLoader/libs/assimp/lib/android/x86/libassimp.a ADDON_LIBS+=../ofxAssimpModelLoader/libs/assimp/lib/android/x86/libIrrXML.a - osx: ADDON_LIBS= ADDON_LIBS=../ofxAssimpModelLoader/libs/assimp/lib/macos/assimp.xcframework/macos-arm64_x86_64/assimp.a diff --git a/addons/ofxAssimpModelLoader/addon_config.mk b/addons/ofxAssimpModelLoader/addon_config.mk index 5b40093ce6a..7a574875f3c 100644 --- a/addons/ofxAssimpModelLoader/addon_config.mk +++ b/addons/ofxAssimpModelLoader/addon_config.mk @@ -99,10 +99,11 @@ android/x86: ADDON_LIBS= ADDON_LIBS+=libs/assimp/lib/android/x86/libassimp.a ADDON_LIBS+=libs/assimp/lib/android/x86/libIrrXML.a + +ios: + ADDON_INCLUDES_EXCLUDE = libs/assimp/include/% osx: ADDON_INCLUDES_EXCLUDE = libs/assimp/include/% - ADDON_LIBS= - ADDON_LIBS=libs/assimp/lib/macos/assimp.xcframework/macos-arm64_x86_64/assimp.a emscripten: ADDON_LIBS= diff --git a/addons/ofxSvg/addon_config.mk b/addons/ofxSvg/addon_config.mk index 05dbdc3c48d..d848f23ce08 100644 --- a/addons/ofxSvg/addon_config.mk +++ b/addons/ofxSvg/addon_config.mk @@ -60,13 +60,6 @@ common: # a specific platform # ADDON_LIBS_EXCLUDE = -osx: - ADDON_LIBS = libs/svgtiny/lib/macos/svgtiny.xcframework/macos-arm64_x86_64/libsvgtiny.a - ADDON_LIBS += libs/libxml2/lib/macos/libxml2.xcframework/macos-arm64_x86_64/libxml2.a - -ios: - ADDON_LIBS = libs/svgtiny/lib/ios/svgtiny.a - ADDON_LIBS += libs/libxml2/lib/ios/xml2.a linux/64: ADDON_LIBS = libs/svgtiny/lib/linux/64/libsvgtiny.a From f94ae80e2f581316381493a77644988f4a4fc237 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Sun, 19 Jan 2025 00:46:19 +1100 Subject: [PATCH 53/68] osx addon mk --- addons/ofxPoco/addon_config.mk | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/addons/ofxPoco/addon_config.mk b/addons/ofxPoco/addon_config.mk index d0f214bbccb..77be16a2de8 100644 --- a/addons/ofxPoco/addon_config.mk +++ b/addons/ofxPoco/addon_config.mk @@ -129,39 +129,12 @@ android/x86: osx: ADDON_INCLUDES += libs/openssl/include - ADDON_LIBS = libs/poco/lib/osx/PocoNetSSL.a - ADDON_LIBS += libs/poco/lib/osx/PocoNet.a - ADDON_LIBS += libs/poco/lib/osx/PocoCrypto.a - ADDON_LIBS += libs/poco/lib/osx/PocoUtil.a - ADDON_LIBS += libs/poco/lib/osx/PocoJSON.a - ADDON_LIBS += libs/poco/lib/osx/PocoXML.a - ADDON_LIBS += libs/poco/lib/osx/PocoFoundation.a - ADDON_LIBS += libs/openssl/lib/osx/crypto.a - ADDON_LIBS += libs/openssl/lib/osx/ssl.a ios: ADDON_INCLUDES += libs/openssl/include - ADDON_LIBS = libs/poco/lib/ios/PocoNetSSL.a - ADDON_LIBS += libs/poco/lib/ios/PocoNet.a - ADDON_LIBS += libs/poco/lib/ios/PocoCrypto.a - ADDON_LIBS += libs/poco/lib/ios/PocoUtil.a - ADDON_LIBS += libs/poco/lib/ios/PocoJSON.a - ADDON_LIBS += libs/poco/lib/ios/PocoXML.a - ADDON_LIBS += libs/poco/lib/ios/PocoFoundation.a - ADDON_LIBS += libs/openssl/lib/ios/crypto.a - ADDON_LIBS += libs/openssl/lib/ios/ssl.a tvos: ADDON_INCLUDES += libs/openssl/include - ADDON_LIBS = libs/poco/lib/tvos/PocoNetSSL.a - ADDON_LIBS += libs/poco/lib/tvos/PocoNet.a - ADDON_LIBS += libs/poco/lib/tvos/PocoCrypto.a - ADDON_LIBS += libs/poco/lib/tvos/PocoUtil.a - ADDON_LIBS += libs/poco/lib/tvos/PocoJSON.a - ADDON_LIBS += libs/poco/lib/tvos/PocoXML.a - ADDON_LIBS += libs/poco/lib/tvos/PocoFoundation.a - ADDON_LIBS += libs/openssl/lib/tvos/crypto.a - ADDON_LIBS += libs/openssl/lib/tvos/ssl.a msys2: ADDON_LDFLAGS = -lPocoNetSSL From 886d467e6cb15613b380b0e4e17ca9da01a770e4 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Mon, 20 Jan 2025 18:27:05 +1100 Subject: [PATCH 54/68] binutils-gold to depends --- scripts/linux/debian/install_dependencies.sh | 2 +- scripts/linux/fedora/install_dependencies.sh | 2 +- scripts/linux/ubuntu/install_dependencies.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/linux/debian/install_dependencies.sh b/scripts/linux/debian/install_dependencies.sh index 86a516645c1..8fdf1133a87 100755 --- a/scripts/linux/debian/install_dependencies.sh +++ b/scripts/linux/debian/install_dependencies.sh @@ -37,7 +37,7 @@ fi echo "installing OF dependencies" -apt-get install freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev libgtk${GTK_VERSION}-dev libopencv-dev libegl1-mesa-dev libgles1 libgles2-mesa-dev libassimp-dev librtaudio-dev libglfw3-dev liburiparser-dev libcurl4-openssl-dev libpugixml-dev libpoco-dev libgconf-2-4 brotli +apt-get install freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev libgtk${GTK_VERSION}-dev libopencv-dev libegl1-mesa-dev libgles1 libgles2-mesa-dev libassimp-dev librtaudio-dev libglfw3-dev liburiparser-dev libcurl4-openssl-dev libpugixml-dev libpoco-dev libgconf-2-4 brotli binutils-gold exit_code=$? if [ $exit_code != 0 ]; then echo "error installing dependencies, there could be an error with your internet connection" diff --git a/scripts/linux/fedora/install_dependencies.sh b/scripts/linux/fedora/install_dependencies.sh index 1f1eee4532b..5b8dea89d03 100755 --- a/scripts/linux/fedora/install_dependencies.sh +++ b/scripts/linux/fedora/install_dependencies.sh @@ -14,7 +14,7 @@ ROOT=$(cd $(dirname $0); pwd -P) # on older Fedora installs you might need to also do: # dnf install jack-audio-connection-kit-dbus -dnf install freeglut-devel alsa-lib-devel libXmu-devel libXxf86vm-devel gcc-c++ libraw1394-devel gstreamer1-devel gstreamer1-plugins-base-devel libudev-devel libtheora-devel libvorbis-devel openal-soft-devel libsndfile-devel python-lxml glew-devel flac-devel freeimage-devel cairo-devel pulseaudio-libs-devel openssl-devel libusbx-devel gtk2-devel libXrandr-devel libXi-devel opencv-devel libX11-devel assimp-devel rtaudio-devel gtk3-devel glfw-devel uriparser-devel curl-devel pugixml-devel poco-devel brotli +dnf install freeglut-devel alsa-lib-devel libXmu-devel libXxf86vm-devel gcc-c++ libraw1394-devel gstreamer1-devel gstreamer1-plugins-base-devel libudev-devel libtheora-devel libvorbis-devel openal-soft-devel libsndfile-devel python-lxml glew-devel flac-devel freeimage-devel cairo-devel pulseaudio-libs-devel openssl-devel libusbx-devel gtk2-devel libXrandr-devel libXi-devel opencv-devel libX11-devel assimp-devel rtaudio-devel gtk3-devel glfw-devel uriparser-devel curl-devel pugixml-devel poco-devel brotli binutils-gold exit_code=$? if [ $exit_code != 0 ]; then diff --git a/scripts/linux/ubuntu/install_dependencies.sh b/scripts/linux/ubuntu/install_dependencies.sh index 43c395428cf..4dd7370b5bc 100755 --- a/scripts/linux/ubuntu/install_dependencies.sh +++ b/scripts/linux/ubuntu/install_dependencies.sh @@ -187,7 +187,7 @@ else fi -PACKAGES="make nlohmann-json3-dev libssl3 libcurl4 brotli libcurl4-openssl-dev libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++${CXX_VER} libgl1-mesa-dev${XTAG} libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev ${LIB_GTK_DEV} libopencv-dev libassimp-dev librtaudio-dev libgstreamer${GSTREAMER_VERSION}-dev libgstreamer-plugins-base${GSTREAMER_VERSION}-dev ${GSTREAMER_FFMPEG} gstreamer${GSTREAMER_VERSION}-pulseaudio gstreamer${GSTREAMER_VERSION}-x gstreamer${GSTREAMER_VERSION}-plugins-bad gstreamer${GSTREAMER_VERSION}-alsa gstreamer${GSTREAMER_VERSION}-plugins-base gstreamer${GSTREAMER_VERSION}-plugins-good gdb ${GLFW_PKG} liburiparser-dev libpugixml-dev libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libxml2-dev" +PACKAGES="make nlohmann-json3-dev libssl3 libcurl4 brotli libcurl4-openssl-dev libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++${CXX_VER} libgl1-mesa-dev${XTAG} libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev ${LIB_GTK_DEV} libopencv-dev libassimp-dev librtaudio-dev libgstreamer${GSTREAMER_VERSION}-dev libgstreamer-plugins-base${GSTREAMER_VERSION}-dev ${GSTREAMER_FFMPEG} gstreamer${GSTREAMER_VERSION}-pulseaudio gstreamer${GSTREAMER_VERSION}-x gstreamer${GSTREAMER_VERSION}-plugins-bad gstreamer${GSTREAMER_VERSION}-alsa gstreamer${GSTREAMER_VERSION}-plugins-base gstreamer${GSTREAMER_VERSION}-plugins-good gdb ${GLFW_PKG} liburiparser-dev libpugixml-dev libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libxml2-dev binutils-gold" echo "installing OF dependencies" echo "OF needs to install the following packages using apt-get:" From 0486e20f1ade6e8974edb0ec6fd5931b92a4d29c Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 26 Feb 2025 06:40:28 +1100 Subject: [PATCH 55/68] apothecary d5cb2e24b30e50e908280b99285746e7beaf0ff4 --- scripts/apothecary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/apothecary b/scripts/apothecary index 5c0f7bab40d..d5cb2e24b30 160000 --- a/scripts/apothecary +++ b/scripts/apothecary @@ -1 +1 @@ -Subproject commit 5c0f7bab40da5a59ef354c7135535566d4fcc225 +Subproject commit d5cb2e24b30e50e908280b99285746e7beaf0ff4 From 3fd42d3768aafc7f364526fbf2fce7a63281fd83 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 26 Feb 2025 06:51:48 +1100 Subject: [PATCH 56/68] oF script / linux downloader --- scripts/dev/download_libs.sh | 6 +++--- scripts/of.sh | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index 6bb370bcf13..0efb0f083b3 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -170,9 +170,9 @@ if [ "$ARCH" == "" ]; then if [ "$ARCH" == "x86_64" ]; then ARCH=64 elif [ "$ARCH" == "arm64" ]; then - ARCH=64 # for now + ARCH=arm64 elif [ "$ARCH" == "aarch64" ]; then - ARCH=64 # for now + ARCH=arm64 elif [ "$ARCH" == "i686" ] || [ "$ARCH" == "i386" ]; then echo "32bit linux is not officially supported anymore but compiling the libraries using the build script in apothecary/scripts should compile all the dependencies without problem" exit 1 @@ -215,7 +215,7 @@ if [ "$PLATFORM" == "linux" ]; then elif [ "$ARCH" == "arm64" ]; then OPT="_${GCC_VERSION}" elif [ "$ARCH" == "aarch64" ]; then - OPT="" + OPT="_${GCC_VERSION}" elif [ "$ARCH" == "armv8l" ]; then OPT="" elif [ "$ARCH" == "armv7l" ]; then diff --git a/scripts/of.sh b/scripts/of.sh index 3760afa0bc6..5e399c16b6c 100755 --- a/scripts/of.sh +++ b/scripts/of.sh @@ -30,8 +30,8 @@ autoDetectOS() { ;; esac else - export OF_OS=$(${OF_PLATFORM} | tr '[:upper:]' '[:lower:]') - export OF_ARCH="" + export OF_OS=$(${OF_PLATFORM} | tr '[:upper:]' '[:lower:]') + export OF_ARCH="" fi } @@ -74,14 +74,14 @@ runCommand() { ;; update) echo "openFrameworks update" - SCRIPT="${OF_SCRIPT_PATH}/download_libs.sh" + SCRIPT="${OF_CORE_SCRIPT_DIR}/${OF_PLATFORM}/download_libs.sh" ;; upgrade) echo "openFrameworks upgrade" case "$SUBCMD" in addons) echo "Upgrading addons" - SCRIPT="${OF_SCRIPT_PATH}/dev/upgrade.sh" + SCRIPT="${OF_CORE_SCRIPT_DIR}/dev/upgrade.sh" ;; apps) echo "Upgrading apps" @@ -91,7 +91,7 @@ runCommand() { echo "Upgrade cancelled. No changes were made." exit 0 fi - SCRIPT="${OF_SCRIPT_PATH}/dev/upgrade.sh" + SCRIPT="${OF_CORE_SCRIPT_DIR}/dev/upgrade.sh" ;; *) echo "Unknown upgrade action: $SUBCMD" From f35435119e6058d2461c8861f3428fcbf0b34169 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 26 Feb 2025 15:18:54 +1100 Subject: [PATCH 57/68] Linux Wayland support --- libs/openFrameworks/app/ofAppGLFWWindow.cpp | 328 +++++++++++--------- libs/openFrameworks/app/ofAppGLFWWindow.h | 9 + 2 files changed, 196 insertions(+), 141 deletions(-) diff --git a/libs/openFrameworks/app/ofAppGLFWWindow.cpp b/libs/openFrameworks/app/ofAppGLFWWindow.cpp index a44aacb0de2..b4f3c7b5e97 100644 --- a/libs/openFrameworks/app/ofAppGLFWWindow.cpp +++ b/libs/openFrameworks/app/ofAppGLFWWindow.cpp @@ -11,15 +11,18 @@ #include "ofIcon.h" #include "ofImage.h" #define GLFW_EXPOSE_NATIVE_X11 + #define GLFW_EXPOSE_NATIVE_WAYLAND #ifndef TARGET_OPENGLES #define GLFW_EXPOSE_NATIVE_GLX #else #define GLFW_EXPOSE_NATIVE_EGL #endif #include - #include - #include - #include + #ifdef GLFW_EXPOSE_NATIVE_X11 + #include + #include + #include + #endif #include #include #elif defined(TARGET_OSX) @@ -59,6 +62,10 @@ ofAppGLFWWindow::ofAppGLFWWindow() currentW = 0; currentH = 0; + #if defined(TARGET_LINUX) && !defined(TARGET_RASPBERRY_PI_LEGACY) + usingWayland = false; + #endif + glfwSetErrorCallback(error_cb); } @@ -160,6 +167,11 @@ void ofAppGLFWWindow::setup(const ofGLESWindowSettings & settings) { ofLogError("ofAppGLFWWindow") << "couldn't init GLFW"; return; } + + #if defined(TARGET_LINUX) && !defined(TARGET_RASPBERRY_PI_LEGACY) + usingWayland = (glfwGetPlatform() == GLFW_PLATFORM_WAYLAND); + ofLogVerbose("ofAppGLFWWindow") << "Running under " << (usingWayland ? "Wayland" : "X11"); + #endif // ofLogNotice("ofAppGLFWWindow") << "WINDOW MODE IS " << screenMode; @@ -399,24 +411,34 @@ void ofAppGLFWWindow::setup(const ofGLESWindowSettings & settings) { glfwSetWindowRefreshCallback(windowP, refresh_cb); #ifdef TARGET_LINUX - XSetLocaleModifiers(""); - xim = XOpenIM(getX11Display(), 0, 0, 0); - if (!xim) { - // fallback to internal input method - XSetLocaleModifiers("@im=none"); - xim = XOpenIM(getX11Display(), 0, 0, 0); - } - xic = XCreateIC(xim, - XNInputStyle, XIMPreeditNothing | XIMStatusNothing, - XNClientWindow, getX11Window(), - XNFocusWindow, getX11Window(), - NULL); -#endif + if (!usingWayland) { + XSetLocaleModifiers(""); + xim = XOpenIM(getX11Display(), 0, 0, 0); + if (!xim) { + // fallback to internal input method + XSetLocaleModifiers("@im=none"); + xim = XOpenIM(getX11Display(), 0, 0, 0); + } + xic = XCreateIC(xim, + XNInputStyle, XIMPreeditNothing | XIMStatusNothing, + XNClientWindow, getX11Window(), + XNFocusWindow, getX11Window(), + NULL); + } else { + // Wayland input is handled by GLFW directly + ofLogVerbose("ofAppGLFWWindow") << "Using Wayland native input handling"; + } + + #endif } #ifdef TARGET_LINUX //------------------------------------------------------------ void ofAppGLFWWindow::setWindowIcon(const of::filesystem::path & path) { + if (usingWayland) { + ofLogWarning("ofAppGLFWWindow") << "Setting window icon is not supported on Wayland"; + return; + } ofPixels iconPixels; ofLoadImage(iconPixels, path); setWindowIcon(iconPixels); @@ -424,6 +446,10 @@ void ofAppGLFWWindow::setup(const ofGLESWindowSettings & settings) { //------------------------------------------------------------ void ofAppGLFWWindow::setWindowIcon(const ofPixels & iconPixels) { + if (usingWayland) { + ofLogWarning("ofAppGLFWWindow") << "Setting window icon is not supported on Wayland"; + return; + } iconSet = true; int length = 2 + iconPixels.getWidth() * iconPixels.getHeight(); vector buffer(length); @@ -744,127 +770,135 @@ void ofAppGLFWWindow::setup(const ofGLESWindowSettings & settings) { } #ifdef TARGET_LINUX -#include - - Window nativeWin = glfwGetX11Window(windowP); - Display * display = glfwGetX11Display(); - if (targetWindowMode == OF_FULLSCREEN) { - -#ifdef TARGET_RASPBERRY_PI - // save window shape before going fullscreen - if (windowP) { - int tmpW, tmpH; - glfwGetWindowSize(windowP, &tmpW, &tmpH); - windowRect.setSize(tmpW, tmpH); - } -#endif - - int monitorCount; - GLFWmonitor ** monitors = glfwGetMonitors(&monitorCount); - if (settings.multiMonitorFullScreen && monitorCount > 1) { - // find the monitors at the edges of the virtual desktop - int minx = numeric_limits::max(); - int miny = numeric_limits::max(); - int maxx = numeric_limits::min(); - int maxy = numeric_limits::min(); - int x, y, w, h; - int monitorLeft = 0, monitorRight = 0, monitorTop = 0, monitorBottom = 0; - for (int i = 0; i < monitorCount; i++) { - glfwGetMonitorPos(monitors[i], &x, &y); - auto videoMode = glfwGetVideoMode(monitors[i]); - w = videoMode->width; - h = videoMode->height; - if (x < minx) { - monitorLeft = i; - minx = x; - } - if (y < miny) { - monitorTop = i; - miny = y; - } - if (x + w > maxx) { - monitorRight = i; - maxx = x + w; - } - if (y + h > maxy) { - monitorBottom = i; - maxy = y + h; - } - } - - // send fullscreen_monitors event with the edges monitors - Atom m_net_fullscreen_monitors = XInternAtom(display, "_NET_WM_FULLSCREEN_MONITORS", false); - - XEvent xev; - - xev.xclient.type = ClientMessage; - xev.xclient.serial = 0; - xev.xclient.send_event = True; - xev.xclient.window = nativeWin; - xev.xclient.message_type = m_net_fullscreen_monitors; - xev.xclient.format = 32; - - xev.xclient.data.l[0] = monitorTop; - xev.xclient.data.l[1] = monitorBottom; - xev.xclient.data.l[2] = monitorLeft; - xev.xclient.data.l[3] = monitorRight; - xev.xclient.data.l[4] = 1; - XSendEvent(display, RootWindow(display, DefaultScreen(display)), - False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); - currentW = maxx - minx; - currentH = maxy - minx; - } else { - auto monitor = glfwGetWindowMonitor(windowP); - if (monitor) { - auto videoMode = glfwGetVideoMode(monitor); - if (videoMode) { - currentW = videoMode->width; - currentH = videoMode->height; - } - } - } - } - - // send fullscreen event - Atom m_net_state = XInternAtom(display, "_NET_WM_STATE", false); - Atom m_net_fullscreen = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", false); - - XEvent xev; - - xev.xclient.type = ClientMessage; - xev.xclient.serial = 0; - xev.xclient.send_event = True; - xev.xclient.window = nativeWin; - xev.xclient.message_type = m_net_state; - xev.xclient.format = 32; - - if (fullscreen) - xev.xclient.data.l[0] = 1; - else - xev.xclient.data.l[0] = 0; - - xev.xclient.data.l[1] = m_net_fullscreen; - xev.xclient.data.l[2] = 0; - xev.xclient.data.l[3] = 0; - xev.xclient.data.l[4] = 0; - XSendEvent(display, RootWindow(display, DefaultScreen(display)), - False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); - - // tell the window manager to bypass composition for this window in fullscreen for speed - // it'll probably help solving vsync issues - Atom m_bypass_compositor = XInternAtom(display, "_NET_WM_BYPASS_COMPOSITOR", False); - unsigned long value = fullscreen ? 1 : 0; - XChangeProperty(display, nativeWin, m_bypass_compositor, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&value, 1); - - XFlush(display); - -#ifdef TARGET_RASPBERRY_PI - if (!fullscreen) { - needsResizeCheck = true; - } -#endif - - // setWindowShape(windowW, windowH); + if (!usingWayland) { + Window nativeWin = glfwGetX11Window(windowP); + Display * display = glfwGetX11Display(); + if (targetWindowMode == OF_FULLSCREEN) { + + #ifdef TARGET_RASPBERRY_PI + // save window shape before going fullscreen + if (windowP) { + int tmpW, tmpH; + glfwGetWindowSize(windowP, &tmpW, &tmpH); + windowRect.setSize(tmpW, tmpH); + } + #endif + + int monitorCount; + GLFWmonitor ** monitors = glfwGetMonitors(&monitorCount); + if (settings.multiMonitorFullScreen && monitorCount > 1) { + // find the monitors at the edges of the virtual desktop + int minx = numeric_limits::max(); + int miny = numeric_limits::max(); + int maxx = numeric_limits::min(); + int maxy = numeric_limits::min(); + int x, y, w, h; + int monitorLeft = 0, monitorRight = 0, monitorTop = 0, monitorBottom = 0; + for (int i = 0; i < monitorCount; i++) { + glfwGetMonitorPos(monitors[i], &x, &y); + auto videoMode = glfwGetVideoMode(monitors[i]); + w = videoMode->width; + h = videoMode->height; + if (x < minx) { + monitorLeft = i; + minx = x; + } + if (y < miny) { + monitorTop = i; + miny = y; + } + if (x + w > maxx) { + monitorRight = i; + maxx = x + w; + } + if (y + h > maxy) { + monitorBottom = i; + maxy = y + h; + } + } + + // send fullscreen_monitors event with the edges monitors + Atom m_net_fullscreen_monitors = XInternAtom(display, "_NET_WM_FULLSCREEN_MONITORS", false); + + XEvent xev; + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.window = nativeWin; + xev.xclient.message_type = m_net_fullscreen_monitors; + xev.xclient.format = 32; + + xev.xclient.data.l[0] = monitorTop; + xev.xclient.data.l[1] = monitorBottom; + xev.xclient.data.l[2] = monitorLeft; + xev.xclient.data.l[3] = monitorRight; + xev.xclient.data.l[4] = 1; + XSendEvent(display, RootWindow(display, DefaultScreen(display)), + False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); + currentW = maxx - minx; + currentH = maxy - minx; + } else { + auto monitor = glfwGetWindowMonitor(windowP); + if (monitor) { + auto videoMode = glfwGetVideoMode(monitor); + if (videoMode) { + currentW = videoMode->width; + currentH = videoMode->height; + } + } + } + } + + // send fullscreen event + Atom m_net_state = XInternAtom(display, "_NET_WM_STATE", false); + Atom m_net_fullscreen = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", false); + + XEvent xev; + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.window = nativeWin; + xev.xclient.message_type = m_net_state; + xev.xclient.format = 32; + + if (fullscreen) + xev.xclient.data.l[0] = 1; + else + xev.xclient.data.l[0] = 0; + + xev.xclient.data.l[1] = m_net_fullscreen; + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + XSendEvent(display, RootWindow(display, DefaultScreen(display)), + False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); + + // tell the window manager to bypass composition for this window in fullscreen for speed + // it'll probably help solving vsync issues + Atom m_bypass_compositor = XInternAtom(display, "_NET_WM_BYPASS_COMPOSITOR", False); + unsigned long value = fullscreen ? 1 : 0; + XChangeProperty(display, nativeWin, m_bypass_compositor, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&value, 1); + + XFlush(display); + + #ifdef TARGET_RASPBERRY_PI + if (!fullscreen) { + needsResizeCheck = true; + } + #endif + } else { + int monitorCount; + GLFWmonitor ** monitors = glfwGetMonitors(&monitorCount); + int monitorIdx = getCurrentMonitor(); + if (fullscreen) { + auto mode = glfwGetVideoMode(monitors[monitorIdx]); + glfwSetWindowMonitor(windowP, monitors[monitorIdx], 0, 0, mode->width, mode->height, mode->refreshRate); + } else { + glfwSetWindowMonitor(windowP, nullptr, windowRect.x, windowRect.y, windowW, windowH, 0); + } + } #elif defined(TARGET_OSX) @@ -1738,17 +1772,29 @@ void ofAppGLFWWindow::setup(const ofGLESWindowSettings & settings) { #if defined(TARGET_LINUX) Display * ofAppGLFWWindow::getX11Display() { - return glfwGetX11Display(); + return usingWayland ? nullptr : glfwGetX11Display(); } Window ofAppGLFWWindow::getX11Window() { - return glfwGetX11Window(windowP); + return usingWayland ? 0 : glfwGetX11Window(windowP); } XIC ofAppGLFWWindow::getX11XIC() { - return xic; + return usingWayland ? nullptr : xic; } -#endif + + wl_display * ofAppGLFWWindow::getWaylandDisplay() { + return usingWayland ? glfwGetWaylandDisplay() : nullptr; + } + + wl_surface * ofAppGLFWWindow::getWaylandSurface() { + return usingWayland ? glfwGetWaylandWindow(windowP) : nullptr; + } + + bool ofAppGLFWWindow::isUsingWayland() const { + return usingWayland; + } + #endif #if defined(TARGET_LINUX) && !defined(TARGET_OPENGLES) GLXContext ofAppGLFWWindow::getGLXContext() { diff --git a/libs/openFrameworks/app/ofAppGLFWWindow.h b/libs/openFrameworks/app/ofAppGLFWWindow.h index 1a58743cf84..1a832081720 100644 --- a/libs/openFrameworks/app/ofAppGLFWWindow.h +++ b/libs/openFrameworks/app/ofAppGLFWWindow.h @@ -10,6 +10,8 @@ #if defined(TARGET_LINUX) && !defined(TARGET_RASPBERRY_PI_LEGACY) typedef struct _XIM * XIM; typedef struct _XIC * XIC; +typedef struct wl_display wl_display; +typedef struct wl_surface wl_surface; #endif class ofBaseApp; @@ -171,6 +173,12 @@ class ofAppGLFWWindow : public ofAppBaseGLWindow { void setWindowIcon(const of::filesystem::path & path); void setWindowIcon(const ofPixels & iconPixels); + + wl_display * getWaylandDisplay(); + wl_surface * getWaylandSurface(); + + // Helper to detect the current backend + bool isUsingWayland() const; #endif #if defined(TARGET_LINUX) && !defined(TARGET_OPENGLES) @@ -214,6 +222,7 @@ class ofAppGLFWWindow : public ofAppBaseGLWindow { #if defined(TARGET_LINUX) && !defined(TARGET_RASPBERRY_PI_LEGACY) XIM xim; XIC xic; + bool usingWayland; #endif std::unique_ptr coreEvents; From 83cf2fb3cbc2f2cec6f17a9807eae485c56e9159 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Wed, 26 Feb 2025 15:29:54 +1100 Subject: [PATCH 58/68] glfw --- scripts/linux/ubuntu/install_dependencies.sh | 64 ++++++++++---------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/scripts/linux/ubuntu/install_dependencies.sh b/scripts/linux/ubuntu/install_dependencies.sh index 4dd7370b5bc..898b9573ee3 100755 --- a/scripts/linux/ubuntu/install_dependencies.sh +++ b/scripts/linux/ubuntu/install_dependencies.sh @@ -155,39 +155,41 @@ then fi #check if glfw3 exists -apt-cache show libglfw3-dev -exit_code=$? -if [ $exit_code = 0 ]; then - GLFW_PKG=libglfw3-dev -else - echo installing glfw from source - GLFW_VER=32f38b97d544eb2fd9a568e94e37830106417b51 - - # tools for git use - GLFW_GIT_TAG=$GLFW_VER - apt-get install -y -qq libxrandr-dev libxinerama-dev libxcursor-dev cmake - wget https://github.com/glfw/glfw/archive/$GLFW_GIT_TAG.tar.gz -O glfw-$GLFW_GIT_TAG.tar.gz - tar -xf glfw-$GLFW_GIT_TAG.tar.gz - mv glfw-$GLFW_GIT_TAG glfw - rm glfw-$GLFW_GIT_TAG.tar.gz - cd glfw - mkdir -p build - cd build - cmake .. -DGLFW_BUILD_DOCS=OFF \ - -DGLFW_BUILD_TESTS=OFF \ - -DGLFW_BUILD_EXAMPLES=OFF \ - -DBUILD_SHARED_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release - make clean - make - make install - cd ../.. - rm -rf glfw - GLFW_PKG= -fi +# apt-cache show libglfw3-dev +# exit_code=$? +# if [ $exit_code = 0 ]; then +# GLFW_PKG=libglfw3-dev +# else +# echo installing glfw from source +# GLFW_VER=32f38b97d544eb2fd9a568e94e37830106417b51 + +# # tools for git use +# GLFW_GIT_TAG=$GLFW_VER +# apt-get install -y -qq libxrandr-dev libxinerama-dev libxcursor-dev cmake +# wget https://github.com/glfw/glfw/archive/$GLFW_GIT_TAG.tar.gz -O glfw-$GLFW_GIT_TAG.tar.gz +# tar -xf glfw-$GLFW_GIT_TAG.tar.gz +# mv glfw-$GLFW_GIT_TAG glfw +# rm glfw-$GLFW_GIT_TAG.tar.gz +# cd glfw +# mkdir -p build +# cd build +# cmake .. -DGLFW_BUILD_DOCS=OFF \ +# -DGLFW_BUILD_TESTS=OFF \ +# -DGLFW_BUILD_EXAMPLES=OFF \ +# -DBUILD_SHARED_LIBS=OFF \ +# -DCMAKE_BUILD_TYPE=Release +# make clean +# make +# make install +# cd ../.. +# rm -rf glfw +# GLFW_PKG= +# fi +GLFW_PKG= + +PACKAGES="make nlohmann-json3-dev libssl3 libcurl4 brotli libcurl4-openssl-dev libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++${CXX_VER} libgl1-mesa-dev${XTAG} libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev ${LIB_GTK_DEV} libopencv-dev libassimp-dev librtaudio-dev libgstreamer${GSTREAMER_VERSION}-dev libgstreamer-plugins-base${GSTREAMER_VERSION}-dev ${GSTREAMER_FFMPEG} gstreamer${GSTREAMER_VERSION}-pulseaudio gstreamer${GSTREAMER_VERSION}-x gstreamer${GSTREAMER_VERSION}-plugins-bad gstreamer${GSTREAMER_VERSION}-alsa gstreamer${GSTREAMER_VERSION}-plugins-base gstreamer${GSTREAMER_VERSION}-plugins-good gdb liburiparser-dev libpugixml-dev libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libxml2-dev binutils-gold ${GLFW_PKG}" -PACKAGES="make nlohmann-json3-dev libssl3 libcurl4 brotli libcurl4-openssl-dev libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++${CXX_VER} libgl1-mesa-dev${XTAG} libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libssl-dev libpulse-dev libusb-1.0-0-dev ${LIB_GTK_DEV} libopencv-dev libassimp-dev librtaudio-dev libgstreamer${GSTREAMER_VERSION}-dev libgstreamer-plugins-base${GSTREAMER_VERSION}-dev ${GSTREAMER_FFMPEG} gstreamer${GSTREAMER_VERSION}-pulseaudio gstreamer${GSTREAMER_VERSION}-x gstreamer${GSTREAMER_VERSION}-plugins-bad gstreamer${GSTREAMER_VERSION}-alsa gstreamer${GSTREAMER_VERSION}-plugins-base gstreamer${GSTREAMER_VERSION}-plugins-good gdb ${GLFW_PKG} liburiparser-dev libpugixml-dev libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libxml2-dev binutils-gold" echo "installing OF dependencies" echo "OF needs to install the following packages using apt-get:" From 1ddf619c4a43e7ad5bd89d7ff201f354f31a9d2b Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 27 Feb 2025 00:58:25 +1100 Subject: [PATCH 59/68] linux pg downloader --- scripts/dev/download_pg.sh | 27 ++++++++++++++++++++-- scripts/linux/download_projectGenerator.sh | 8 +++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100755 scripts/linux/download_projectGenerator.sh diff --git a/scripts/dev/download_pg.sh b/scripts/dev/download_pg.sh index 9bdea2851ad..644084f61f6 100755 --- a/scripts/dev/download_pg.sh +++ b/scripts/dev/download_pg.sh @@ -6,7 +6,7 @@ ARCH="" OVERWRITE=1 SILENT_ARGS="" BLEEDING_EDGE=0 -DL_VERSION=2.8.0 +DL_VERSION=3.0.0 TAG="" printHelp(){ @@ -171,6 +171,8 @@ fi if [ "$PLATFORM" == "vs" ]; then EXT=".exe" +elif [ "$PLATFORM" == "linux" ]; then + EXT="" else EXT=".app" fi @@ -180,7 +182,12 @@ if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then else GUI="" fi -PKG="projectGenerator-${PLATFORM}${GUI}.zip" + +if [ "$PLATFORM" == "linux" ]; then + PKG="projectGenerator-${PLATFORM}${GUI}.gz" +else + PKG="projectGenerator-${PLATFORM}${GUI}.zip" +fi echo " openFrameworks download_pg.sh" @@ -192,6 +199,10 @@ mkdir -p download cd download download $PKG +# if [ "$PLATFORM" == "linux" ]; then +# PKG="projectGenerator-${PLATFORM}.tar.bz2" +# download $PKG +# fi if [ -d "${OUTDIR}/${OUTPUT}" ] || [ -f "${OUTDIR}/${OUTPUT}" ]; then rm -rf "${OUTDIR}/${OUTPUT}" @@ -220,6 +231,18 @@ if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then # else # echo "Warning: chmod command not found, skipping permission adjustment." # fi +elif [ "$PLATFORM" == "linux" ]; then + # CLI version + mkdir -p "${OUTDIR}/${OUTPUT}" + # tar xjf "$PKG" -C "${OUTDIR}/${OUTPUT}" + # GUI version + if [ -f "projectGenerator-linux-gui.gz" ]; then + gunzip -c "projectGenerator-linux-gui.gz" > "${OUTDIR}/${OUTPUT}/projectGenerator" + chmod +x "${OUTDIR}/${OUTPUT}/projectGenerator" + fi + # Move CLI binary and set permissions + mv "${OUTDIR}/${OUTPUT}/resources/app/app/projectGenerator" "${OUTDIR}/${OUTPUT}/projectGeneratorCmd" + chmod +x "${OUTDIR}/${OUTPUT}/projectGeneratorCmd" else if ! command -v rsync &> /dev/null; then cp -arX "${OUTDIR}/${OUTPUT}/projectGenerator$EXT/Contents/Resources/app/app/projectGenerator" "${OUTDIR}/${OUTPUT}/projectGenerator" diff --git a/scripts/linux/download_projectGenerator.sh b/scripts/linux/download_projectGenerator.sh new file mode 100755 index 00000000000..591d837ce35 --- /dev/null +++ b/scripts/linux/download_projectGenerator.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR +if [ ! -z ${BITS+x} ]; then + ../dev/download_pg.sh -p linux -a $BITS -n $@ +else + ../dev/download_pg.sh -p linux $@ +fi From 4305c341fecc6f714483ada0f5c9e39b824ab34e Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 27 Feb 2025 01:08:05 +1100 Subject: [PATCH 60/68] linux makefile update arm64 / jetson / rpi --- .../project/makefileCommon/config.shared.mk | 49 ++++++++++++------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index fa5e0394b4d..4ebe0d644f5 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -40,6 +40,9 @@ else FIND=find endif +RPI_DETECTED := $(shell grep -qi 'Raspberry' /proc/device-tree/model && echo yes || echo no) +JETSON_DETECTED := $(shell grep -qi -e 'Jetson' -e 'Tegra' /proc/device-tree/model && echo yes || echo no) + #check for Raspbian as armv7l needs to use armv6l architecture ifeq ($(wildcard $(RPI_ROOT)/etc/*-release), /etc/os-release) ifeq ($(shell grep ID=raspbian $(RPI_ROOT)/etc/*-release),ID=raspbian) @@ -77,33 +80,41 @@ ifdef MAKEFILE_DEBUG $(info CROSS_COMPILING=$(CROSS_COMPILING)) $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) $(info IS_RASPBIAN=$(IS_RASPBIAN)) + $(info IS_RASPBIAN=$(IS_RASPBIAN)) endif # if not defined, construct the default PLATFORM_LIB_SUBPATH ifndef PLATFORM_LIB_SUBPATH # determine from the arch ifeq ($(PLATFORM_OS),Linux) - ifeq ($(PLATFORM_ARCH),x86_64) - PLATFORM_LIB_SUBPATH=linux/64 - else ifeq ($(PLATFORM_ARCH),64) - PLATFORM_LIB_SUBPATH=linux/64 - else ifeq ($(PLATFORM_ARCH),armv6l) - PLATFORM_LIB_SUBPATH=linux/armv6l - else ifeq ($(PLATFORM_ARCH),armv7l) - PLATFORM_LIB_SUBPATH=linux/armv7l - else ifeq ($(PLATFORM_ARCH),armv8l) - PLATFORM_LIB_SUBPATH=linux/armv8l - else ifeq ($(PLATFORM_ARCH),arm64) - PLATFORM_LIB_SUBPATH=linux/arm64 - else ifeq ($(PLATFORM_ARCH),aarch64) - PLATFORM_LIB_SUBPATH=linux/aarch64 - else ifeq ($(PLATFORM_ARCH),jetson) + ifeq ($(RPI_DETECTED),yes) + else ifeq ($(PLATFORM_ARCH),armv6l) + PLATFORM_LIB_SUBPATH=linux/armv6l + else ifeq ($(PLATFORM_ARCH),armv7l) + PLATFORM_LIB_SUBPATH=linux/armv7l + else ifeq ($(PLATFORM_ARCH),armv8l) + PLATFORM_LIB_SUBPATH=linux/armv8l + else ifeq ($(PLATFORM_ARCH),arm64) + PLATFORM_LIB_SUBPATH=linux/arm64 + else ifeq ($(PLATFORM_ARCH),aarch64) + PLATFORM_LIB_SUBPATH=linux/aarch64 + else ifeq ($(JETSON_DETECTED),yes) PLATFORM_LIB_SUBPATH=linux/jetson - else ifeq ($(PLATFORM_ARCH),i386) - PLATFORM_LIB_SUBPATH=linux else - PLATFORM_LIB_SUBPATH=linux - $(error This makefile does not support your architecture $(PLATFORM_ARCH)) + ifeq ($(PLATFORM_ARCH),x86_64) + PLATFORM_LIB_SUBPATH=linux/64 + else ifeq ($(PLATFORM_ARCH),64) + PLATFORM_LIB_SUBPATH=linux/64 + else ifeq ($(PLATFORM_ARCH),arm64) + PLATFORM_LIB_SUBPATH=linux/arm64 + else ifeq ($(PLATFORM_ARCH),aarch64) + PLATFORM_LIB_SUBPATH=linux/arm64 + else ifeq ($(PLATFORM_ARCH),i386) + PLATFORM_LIB_SUBPATH=linux/i386 + else + PLATFORM_LIB_SUBPATH=linux + $(error This makefile does not support your architecture $(PLATFORM_ARCH)) + endif endif SHARED_LIB_EXTENSION=so else ifneq (,$(findstring MINGW32_NT,$(PLATFORM_OS))) From 8855368e75a02a907f4df6c486b68a96efabe954 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 27 Feb 2025 12:00:03 +1100 Subject: [PATCH 61/68] Linux rasbian to folder makefiles fixed remove i386 --- .../linux/i386/config.linux.default.mk | 28 -- .../project/linux/i386/libopenFrameworks.cbp | 467 ------------------ .../config.linuxaarch64.default.mk | 0 .../config.linuxarmv6l.default.mk | 0 .../config.linuxarmv7l.default.mk | 0 .../config.linuxarmv7l.raspberry2.mk | 0 .../config.linuxarmv7l.udoo.mk | 0 .../project/makefileCommon/config.shared.mk | 13 +- 8 files changed, 8 insertions(+), 500 deletions(-) delete mode 100644 libs/openFrameworksCompiled/project/linux/i386/config.linux.default.mk delete mode 100644 libs/openFrameworksCompiled/project/linux/i386/libopenFrameworks.cbp rename libs/openFrameworksCompiled/project/linux/{aarch64 => rasbian}/config.linuxaarch64.default.mk (100%) rename libs/openFrameworksCompiled/project/linux/{armv6l => rasbian}/config.linuxarmv6l.default.mk (100%) rename libs/openFrameworksCompiled/project/linux/{armv7l => rasbian}/config.linuxarmv7l.default.mk (100%) rename libs/openFrameworksCompiled/project/linux/{armv7l => rasbian}/config.linuxarmv7l.raspberry2.mk (100%) rename libs/openFrameworksCompiled/project/linux/{armv7l => rasbian}/config.linuxarmv7l.udoo.mk (100%) diff --git a/libs/openFrameworksCompiled/project/linux/i386/config.linux.default.mk b/libs/openFrameworksCompiled/project/linux/i386/config.linux.default.mk deleted file mode 100644 index d7e5cfbed89..00000000000 --- a/libs/openFrameworksCompiled/project/linux/i386/config.linux.default.mk +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################### -# CONFIGURE CORE PLATFORM MAKEFILE -# This file is where we make platform and architecture specific -# configurations. This file can be specified for a generic architecture or can -# be defined as variants. For instance, normally this file will be located in -# a platform specific subpath such as -# -# $(OF_ROOT)/libs/openFrameworksComplied/linux64 -# -# This file will then be a generic platform file like: -# -# configure.linux64.default.make -# -# Or it can specify a specific platform variant like: -# -# configure.linuxarmv6l.raspberrypi.make -# -################################################################################ - -################################################################################ -# include common rules -# -# all linux systems have several rules in common so most of them are included -# from the following file -# -################################################################################ - -include $(OF_SHARED_MAKEFILES_PATH)/config.linux.common.mk diff --git a/libs/openFrameworksCompiled/project/linux/i386/libopenFrameworks.cbp b/libs/openFrameworksCompiled/project/linux/i386/libopenFrameworks.cbp deleted file mode 100644 index a43268a1d01..00000000000 --- a/libs/openFrameworksCompiled/project/linux/i386/libopenFrameworks.cbp +++ /dev/null @@ -1,467 +0,0 @@ - - - - - - diff --git a/libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk b/libs/openFrameworksCompiled/project/linux/rasbian/config.linuxaarch64.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux/aarch64/config.linuxaarch64.default.mk rename to libs/openFrameworksCompiled/project/linux/rasbian/config.linuxaarch64.default.mk diff --git a/libs/openFrameworksCompiled/project/linux/armv6l/config.linuxarmv6l.default.mk b/libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv6l.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux/armv6l/config.linuxarmv6l.default.mk rename to libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv6l.default.mk diff --git a/libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.default.mk b/libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv7l.default.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.default.mk rename to libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv7l.default.mk diff --git a/libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.raspberry2.mk b/libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv7l.raspberry2.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.raspberry2.mk rename to libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv7l.raspberry2.mk diff --git a/libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.udoo.mk b/libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv7l.udoo.mk similarity index 100% rename from libs/openFrameworksCompiled/project/linux/armv7l/config.linuxarmv7l.udoo.mk rename to libs/openFrameworksCompiled/project/linux/rasbian/config.linuxarmv7l.udoo.mk diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 4ebe0d644f5..34901692b2b 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -69,6 +69,13 @@ else CROSS_COMPILING=0 endif endif + ifeq ($(PLATFORM_OS),Linux) + ifeq ($(PLATFORM_ARCH),aarch64) + ifneq ($(RPI_DETECTED),no) + PLATFORM_ARCH=arm64 + endif + endif + endif endif @@ -80,7 +87,7 @@ ifdef MAKEFILE_DEBUG $(info CROSS_COMPILING=$(CROSS_COMPILING)) $(info PLATFORM_VARIANT=$(PLATFORM_VARIANT)) $(info IS_RASPBIAN=$(IS_RASPBIAN)) - $(info IS_RASPBIAN=$(IS_RASPBIAN)) + $(info JETSON_DETECTED=$(JETSON_DETECTED)) endif # if not defined, construct the default PLATFORM_LIB_SUBPATH @@ -94,8 +101,6 @@ ifndef PLATFORM_LIB_SUBPATH PLATFORM_LIB_SUBPATH=linux/armv7l else ifeq ($(PLATFORM_ARCH),armv8l) PLATFORM_LIB_SUBPATH=linux/armv8l - else ifeq ($(PLATFORM_ARCH),arm64) - PLATFORM_LIB_SUBPATH=linux/arm64 else ifeq ($(PLATFORM_ARCH),aarch64) PLATFORM_LIB_SUBPATH=linux/aarch64 else ifeq ($(JETSON_DETECTED),yes) @@ -109,8 +114,6 @@ ifndef PLATFORM_LIB_SUBPATH PLATFORM_LIB_SUBPATH=linux/arm64 else ifeq ($(PLATFORM_ARCH),aarch64) PLATFORM_LIB_SUBPATH=linux/arm64 - else ifeq ($(PLATFORM_ARCH),i386) - PLATFORM_LIB_SUBPATH=linux/i386 else PLATFORM_LIB_SUBPATH=linux $(error This makefile does not support your architecture $(PLATFORM_ARCH)) From 45a60f97710da2f2930dcc9d39cbe805365ff2a0 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 27 Feb 2025 14:43:09 +1100 Subject: [PATCH 62/68] make shell --- .../project/makefileCommon/config.shared.mk | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 34901692b2b..0af5dd005b5 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -40,8 +40,17 @@ else FIND=find endif -RPI_DETECTED := $(shell grep -qi 'Raspberry' /proc/device-tree/model && echo yes || echo no) -JETSON_DETECTED := $(shell grep -qi -e 'Jetson' -e 'Tegra' /proc/device-tree/model && echo yes || echo no) +RPI_DETECTED := $(shell \ + if [ -f /proc/device-tree/model ]; then file=/proc/device-tree/model; \ + elif [ -f /sys/firmware/devicetree/base/model ]; then file=/sys/firmware/devicetree/base/model; \ + else file=""; fi; \ + if [ -n "$$file" ] && grep -qi 'Raspberry' $$file; then echo yes; else echo no; fi) + +JETSON_DETECTED := $(shell \ + if [ -f /proc/device-tree/model ]; then file=/proc/device-tree/model; \ + elif [ -f /sys/firmware/devicetree/base/model ]; then file=/sys/firmware/devicetree/base/model; \ + else file=""; fi; \ + if [ -n "$$file" ] && grep -qi -e 'Jetson' -e 'Tegra' $$file; then echo yes; else echo no; fi) #check for Raspbian as armv7l needs to use armv6l architecture ifeq ($(wildcard $(RPI_ROOT)/etc/*-release), /etc/os-release) From c0e0ee1965c4e501660bba104ea39ad494493252 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Mon, 3 Mar 2025 17:21:52 +1100 Subject: [PATCH 63/68] makefiles must use tabs --- .../project/makefileCommon/config.shared.mk | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 0af5dd005b5..7039f7a42bc 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -41,16 +41,16 @@ else endif RPI_DETECTED := $(shell \ - if [ -f /proc/device-tree/model ]; then file=/proc/device-tree/model; \ - elif [ -f /sys/firmware/devicetree/base/model ]; then file=/sys/firmware/devicetree/base/model; \ - else file=""; fi; \ - if [ -n "$$file" ] && grep -qi 'Raspberry' $$file; then echo yes; else echo no; fi) + if [ -f /proc/device-tree/model ]; then file=/proc/device-tree/model; \ + elif [ -f /sys/firmware/devicetree/base/model ]; then file=/sys/firmware/devicetree/base/model; \ + else file=""; fi; \ + if [ -n "$$file" ] && grep -qi 'Raspberry' $$file; then echo yes; else echo no; fi) JETSON_DETECTED := $(shell \ - if [ -f /proc/device-tree/model ]; then file=/proc/device-tree/model; \ - elif [ -f /sys/firmware/devicetree/base/model ]; then file=/sys/firmware/devicetree/base/model; \ - else file=""; fi; \ - if [ -n "$$file" ] && grep -qi -e 'Jetson' -e 'Tegra' $$file; then echo yes; else echo no; fi) + if [ -f /proc/device-tree/model ]; then file=/proc/device-tree/model; \ + elif [ -f /sys/firmware/devicetree/base/model ]; then file=/sys/firmware/devicetree/base/model; \ + else file=""; fi; \ + if [ -n "$$file" ] && grep -qi -e 'Jetson' -e 'Tegra' $$file; then echo yes; else echo no; fi) #check for Raspbian as armv7l needs to use armv6l architecture ifeq ($(wildcard $(RPI_ROOT)/etc/*-release), /etc/os-release) @@ -79,11 +79,11 @@ else endif endif ifeq ($(PLATFORM_OS),Linux) - ifeq ($(PLATFORM_ARCH),aarch64) - ifneq ($(RPI_DETECTED),no) - PLATFORM_ARCH=arm64 + ifeq ($(PLATFORM_ARCH),aarch64) + ifneq ($(RPI_DETECTED),no) + PLATFORM_ARCH=arm64 + endif endif - endif endif endif From 3481e8df2f1c31c0725745284e6b5cd095a95f92 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Mon, 3 Mar 2025 18:13:58 +1100 Subject: [PATCH 64/68] Linux arm64 fix --- .../project/makefileCommon/config.shared.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 7039f7a42bc..66be74a6a17 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -80,9 +80,7 @@ else endif ifeq ($(PLATFORM_OS),Linux) ifeq ($(PLATFORM_ARCH),aarch64) - ifneq ($(RPI_DETECTED),no) - PLATFORM_ARCH=arm64 - endif + PLATFORM_ARCH=arm64 endif endif endif From 887b8a1aaca368903ad32f9a0e0c4b6003731c7d Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Tue, 4 Mar 2025 17:23:13 +1100 Subject: [PATCH 65/68] Setup GCC.sh --- scripts/linux/setupGCC.sh | 172 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 scripts/linux/setupGCC.sh diff --git a/scripts/linux/setupGCC.sh b/scripts/linux/setupGCC.sh new file mode 100644 index 00000000000..8dd759c3497 --- /dev/null +++ b/scripts/linux/setupGCC.sh @@ -0,0 +1,172 @@ +#!/usr/bin/env bash + +OF_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +OF_DIR="$(realpath "$OF_DIR/../..")" + +GCC_VERSION=$(gcc -dumpversion 2>/dev/null || echo "0") +GCC_REQUIRED_VERSION="14" +GCC_URL="https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.gz" +GCC_FILE="gcc-14.2.0" + +if [[ "$GCC_VERSION" =~ ^"$GCC_REQUIRED_VERSION" ]]; then + echo "GCC $GCC_VERSION is already installed." + exit 0 +fi + +ID="" +UBUNTU_VERSION="" +if [[ -f /etc/os-release ]]; then + . /etc/os-release + ID="$ID" + UBUNTU_VERSION="$VERSION_ID" +fi + +INSTALL_FROM_SOURCE=0 +echoVerbose() { echo "$1"; } +if [ $INSTALL_FROM_SOURCE = 0 ]; then + case "$ID" in + "ubuntu") + if [[ "$(echo "$UBUNTU_VERSION < 24.04" | bc)" -eq 1 ]]; then + echo "Ubuntu $UBUNTU_VERSION detected. GCC 14 not in default repos. Compiling from source..." + INSTALL_FROM_SOURCE=1 + else + echoVerbose "Installing GCC 14 via apt on Ubuntu $UBUNTU_VERSION..." + sudo apt update + sudo apt install -y gcc-14 g++-14 && { + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 \ + --slave /usr/bin/g++ g++ /usr/bin/g++-14 + sudo update-alternatives --set gcc /usr/bin/gcc-14 + exit 0 + } || { + echo "Apt install failed. Falling back to source..." + INSTALL_FROM_SOURCE=1 + } + fi + ;; + "debian") + echo "Debian detected. Checking for GCC 14 in repos..." + sudo apt update + sudo apt install -y gcc-14 g++-14 && { + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 \ + --slave /usr/bin/g++ g++ /usr/bin/g++-14 + sudo update-alternatives --set gcc /usr/bin/gcc-14 + exit 0 + } || { + echo "GCC 14 not available in Debian repos. Compiling from source..." + INSTALL_FROM_SOURCE=1 + } + ;; + "centos" | "rhel" | "fedora") + echoVerbose "Detected $ID. Trying DNF..." + sudo dnf install -y gcc gcc-c++ && { + if [[ "$(gcc -dumpversion)" =~ ^"$GCC_REQUIRED_VERSION" ]]; then + exit 0 + else + echo "DNF didn’t provide GCC 14. Compiling from source..." + INSTALL_FROM_SOURCE=1 + fi + } || INSTALL_FROM_SOURCE=1 + ;; + "arch") + echoVerbose "Arch Linux detected. Using pacman..." + sudo pacman -Syu gcc || { + echo "GCC 14 not available via pacman yet. Compiling from source..." + INSTALL_FROM_SOURCE=1 + } + ;; + "opensuse" | "suse") + echoVerbose "openSUSE detected. Trying zypper..." + sudo zypper install -y gcc14 gcc14-c++ || { + echo "GCC 14 not available via zypper. Compiling from source..." + INSTALL_FROM_SOURCE=1 + } + ;; + *) + echo "Unsupported distro: $ID. Compiling GCC 14 from source..." + INSTALL_FROM_SOURCE=1 + ;; + esac +fi + +if [[ "$INSTALL_FROM_SOURCE" -eq 1 ]]; then + echo "Compiling GCC 14 from source..." + if [[ -f /etc/debian_version ]]; then + sudo apt update + sudo apt install -y build-essential flex bison libgmp-dev libmpfr-dev libisl-dev libmpc-dev texinfo wget + elif [[ "$ID" == "centos" || "$ID" == "rhel" || "$ID" == "fedora" ]]; then + sudo dnf groupinstall -y "Development Tools" + sudo dnf install -y gmp-devel mpfr-devel libmpc-devel isl-devel flex bison texinfo wget + elif [[ "$ID" == "arch" ]]; then + sudo pacman -Syu base-devel gmp mpfr libmpc isl flex bison texinfo wget + elif [[ "$ID" == "opensuse" || "$ID" == "suse" ]]; then + sudo zypper install -y patterns-devel-base-devel_basis gmp-devel mpfr-devel libmpc3-devel isl-devel flex bison texinfo wget + else + echo "Warning: Unknown distro. Attempting source build without dependency check..." + fi + + "$OF_DIR/scripts/dev/downloader.sh" "$GCC_URL" "$GCC_FILE.tar.gz" || { echo "Download failed"; exit 1; } + tar -xzf "$GCC_FILE.tar.gz" || { echo "Extraction failed"; exit 1; } + cd "$GCC_FILE" || exit 1 + + # GCC requires its own prerequisites (e.g., GMP, MPFR) in-tree + ./contrib/download_prerequisites || { echo "Failed to download prerequisites"; exit 1; } + + # Configure and build + mkdir -p build && cd build || exit 1 + ../configure --prefix="/usr/local/gcc-14" \ + --enable-languages=c,c++ \ + --disable-multilib \ + --disable-bootstrap \ + --with-system-zlib || { echo "Configure failed"; exit 1; } + make -j"$(nproc)" || { echo "Make failed"; exit 1; } + sudo make install || { echo "Install failed"; exit 1; } + + # Set up paths based on architecture + ARCH=$(uname -m) + case "$ARCH" in + "x86_64") + GCC_PATH="/usr/local/gcc-14/bin" + GCC_LIB_PATH="/usr/local/gcc-14/lib64" + ;; + "aarch64" | "arm64") + GCC_PATH="/usr/local/gcc-14/bin" + GCC_LIB_PATH="/usr/local/gcc-14/lib" + ;; + *) + echo "Unsupported architecture: $ARCH" + exit 1 + ;; + esac + + # Symlink binaries + if [[ -f "$GCC_PATH/gcc" ]]; then + sudo ln -sf "$GCC_PATH/gcc" /usr/bin/gcc + sudo ln -sf "$GCC_PATH/g++" /usr/bin/g++ + else + echo "GCC 14 binary not found after install!" + exit 1 + fi + + # Update shell profile + USER_SHELL=$(basename "$SHELL") + case "$USER_SHELL" in + "bash") PROFILE_FILE="$HOME/.bashrc" ;; + "zsh") PROFILE_FILE="$HOME/.zshrc" ;; + "fish") PROFILE_FILE="$HOME/.config/fish/config.fish" ;; + *) PROFILE_FILE="$HOME/.profile" ;; # Fallback + esac + + if [[ "$USER_SHELL" == "fish" ]]; then + echo "set -x PATH $GCC_PATH \$PATH" >> "$PROFILE_FILE" + echo "set -x LD_LIBRARY_PATH $GCC_LIB_PATH \$LD_LIBRARY_PATH" >> "$PROFILE_FILE" + else + echo "export PATH=$GCC_PATH:\$PATH" >> "$PROFILE_FILE" + echo "export LD_LIBRARY_PATH=$GCC_LIB_PATH:\$LD_LIBRARY_PATH" >> "$PROFILE_FILE" + source "$PROFILE_FILE" 2>/dev/null || echo "Run 'source $PROFILE_FILE' manually." + fi +fi + +# Verify installation +echo "Installed GCC version:" +gcc --version || { echo "GCC not found after install!"; exit 1; } +g++ --version || { echo "G++ not found after install!"; exit 1; } From 70e5cb69c3d5faa0ce4d070ef9632c30e2024c64 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Tue, 4 Mar 2025 18:28:50 +1100 Subject: [PATCH 66/68] download libs linux minimum gcc 10 --- scripts/dev/download_libs.sh | 4 ++-- scripts/linux/setupGCC.sh | 0 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 scripts/linux/setupGCC.sh diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index 0efb0f083b3..7f7317e84df 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -8,7 +8,7 @@ LEGACY=0 SILENT_ARGS="" NO_SSL="" BLEEDING_EDGE=0 -DL_VERSION=2.8.1 +DL_VERSION=2.8.2 GCC_VERSION=0 TAG="" @@ -201,7 +201,7 @@ if [ "$PLATFORM" == "linux" ]; then GCC_VERSION=$(gcc -dumpversion | cut -f1 -d.) echo "GCC_VERSION from bash: [$GCC_VERSION]" else - GCC_VERSION=6 + GCC_VERSION=10 fi if [ "$GCC_VERSION" -gt 14 ]; then echo "GCC version is greater than 14. latest supported" diff --git a/scripts/linux/setupGCC.sh b/scripts/linux/setupGCC.sh old mode 100644 new mode 100755 From 79feff54bb8cc4a7a78fb16fabc1c405ce7a1f5b Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Tue, 4 Mar 2025 18:59:00 +1100 Subject: [PATCH 67/68] nightly arm64 linux --- scripts/ci/package_builds.sh | 28 ++++++++++++++-------------- scripts/dev/create_package.sh | 18 ++++++++++++------ 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/scripts/ci/package_builds.sh b/scripts/ci/package_builds.sh index 250807e3b3b..4852ac5d9c1 100755 --- a/scripts/ci/package_builds.sh +++ b/scripts/ci/package_builds.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ev +set -e ROOT=${GITHUB_WORKSPACE} @@ -50,21 +50,21 @@ echo "##[group]create package" cd $OUTPUT_FOLDER pwd if [[ "$(uname -s)" == "Linux" ]]; then - $ROOT/scripts/dev/create_package.sh linux64 $lastversion master gcc6 - $ROOT/scripts/dev/create_package.sh linuxarmv6l $lastversion master - $ROOT/scripts/dev/create_package.sh linuxaarch64 $lastversion master - $ROOT/scripts/dev/create_package.sh msys2 $lastversion master mingw64 - $ROOT/scripts/dev/create_package.sh msys2 $lastversion master clang64 - $ROOT/scripts/dev/create_package.sh msys2 $lastversion master ucrt64 - $ROOT/scripts/dev/create_package.sh vs $lastversion master - $ROOT/scripts/dev/create_package.sh vs $lastversion master 64 - # $ROOT/scripts/dev/create_package.sh vs2019 $lastversion master 64 + $ROOT/scripts/dev/create_package.sh linux64 $lastversion master 10 || echo "Failed: linux64" + $ROOT/scripts/dev/create_package.sh linuxarm64 $lastversion master 14 || echo "Failed: linuxarm64" + $ROOT/scripts/dev/create_package.sh linuxarmv6l $lastversion master || echo "Failed: linuxarmv6l" + $ROOT/scripts/dev/create_package.sh linuxaarch64 $lastversion master || echo "Failed: linuxaarch64" + $ROOT/scripts/dev/create_package.sh msys2 $lastversion master mingw64 || echo "Failed: msys2-mingw64" + $ROOT/scripts/dev/create_package.sh msys2 $lastversion master clang64 || echo "Failed: msys2-clang64" + $ROOT/scripts/dev/create_package.sh msys2 $lastversion master ucrt64 || echo "Failed: msys2-ucrt64" + $ROOT/scripts/dev/create_package.sh vs $lastversion master || echo "Failed: vs" + $ROOT/scripts/dev/create_package.sh vs $lastversion master 64 || echo "Failed: vs 64" + $ROOT/scripts/dev/create_package.sh vs2019 $lastversion master 64 || echo "Failed: vs2019 64" fi -$ROOT/scripts/dev/create_package.sh osx $lastversion master -$ROOT/scripts/dev/create_package.sh ios $lastversion master -echo "##[endgroup]" -# $ROOT/scripts/dev/create_package.sh macos $lastversion master +$ROOT/scripts/dev/create_package.sh osx $lastversion master || echo "Failed: osx" +$ROOT/scripts/dev/create_package.sh ios $lastversion master || echo "Failed: ios" +echo "##[endgroup]" ls -la cd $ROOT diff --git a/scripts/dev/create_package.sh b/scripts/dev/create_package.sh index f1473093afc..c470f42ab20 100755 --- a/scripts/dev/create_package.sh +++ b/scripts/dev/create_package.sh @@ -11,7 +11,7 @@ platform=$1 version=$2 -all_platforms="linux linux64 linuxarmv6l linuxarmv7l linuxaarch64 osx msys2 vs ios macos tvos android emscripten" +all_platforms="linux linux64 linuxarm64 linuxarmv6l linuxarmv7l linuxaarch64 osx msys2 vs ios macos tvos android emscripten" of_root=$(readlink -f "$(dirname "$(readlink -f "$0")")/../..") @@ -77,7 +77,7 @@ echoDots(){ } -if [ "$platform" != "msys2" ] && [ "$platform" != "linux" ] && [ "$platform" != "linux64" ] && [ "$platform" != "linuxarmv6l" ] && [ "$platform" != "linuxaarch64" ] && [ "$platform" != "linuxarmv7l" ] && [ "$platform" != "vs" ] && [ "$platform" != "vs2019" ] && [ "$platform" != "osx" ] && [ "$platform" != "android" ] && [ "$platform" != "ios" ] && [ "$platform" != "macos" ]; then +if [ "$platform" != "msys2" ] && [ "$platform" != "linux" ] && [ "$platform" != "linux64" ] && [ "$platform" != "linuxarm64" ] && [ "$platform" != "linuxarmv6l" ] && [ "$platform" != "linuxaarch64" ] && [ "$platform" != "linuxarmv7l" ] && [ "$platform" != "vs" ] && [ "$platform" != "vs2019" ] && [ "$platform" != "osx" ] && [ "$platform" != "android" ] && [ "$platform" != "ios" ] && [ "$platform" != "macos" ]; then echo usage: echo ./create_package.sh platform version echo platform: @@ -171,7 +171,7 @@ function deleteEclipse { function createProjectFiles { - if [ "$pkg_platform" != "linuxarmv6l" ] && [ "$pkg_platform" != "linuxarmv7l" ] && [ "$pkg_platform" != "linuxaarch64" ] ; then + if [ "$pkg_platform" != "linuxarmv6l" ] && [ "$pkg_platform" != "linuxarmv7l" ] && [ "$pkg_platform" != "linuxaarch64" ] && [ "$pkg_platform" != "linuxarm64" ]; then mkdir -p ${main_ofroot}/libs/openFrameworksCompiled/lib/linux64/ cd ${main_ofroot}/apps/projectGenerator/commandLine echo "Recompiling command line PG" @@ -296,7 +296,7 @@ function createPackage { rm -Rf windowing fi - if [ "$pkg_platform" == "linux" ] || [ "$pkg_platform" == "linux64" ]; then + if [ "$pkg_platform" == "linux" ] || [ "$pkg_platform" == "linux64" ] || [ "$pkg_platform" == "linuxarm64" ]; then rm -Rf gles fi @@ -350,7 +350,10 @@ function createPackage { scripts/osx/download_libs.sh -t $RELEASE scripts/emscripten/download_libs.sh -n -t $RELEASE elif [ "$pkg_platform" = "linux64" ]; then - scripts/linux/download_libs.sh -a 64$libs_abi + scripts/linux/download_libs.sh -t $RELEASE -a 64 -g $libs_abi + scripts/emscripten/download_libs.sh -n -t $RELEASE + elif [ "$pkg_platform" = "linuxarm64" ]; then + scripts/linux/download_libs.sh -t $RELEASE -a 64 -g $libs_abi scripts/emscripten/download_libs.sh -n -t $RELEASE elif [ "$pkg_platform" = "linuxarmv6l" ]; then scripts/linux/download_libs.sh -a armv6l -t $RELEASE @@ -390,6 +393,9 @@ function createPackage { elif [ "$pkg_platform" = "linux64" ]; then otherplatforms=$(remove_current_platform "$all_platforms" "emscripten") otherplatforms=$(remove_current_platform "$otherplatforms" "linux64") + elif [ "$pkg_platform" = "linuxarm64" ]; then + otherplatforms=$(remove_current_platform "$all_platforms" "emscripten") + otherplatforms=$(remove_current_platform "$otherplatforms" "linuxarm64") elif [ "$pkg_platform" = "linuxarmv6l" ]; then otherplatforms=$(remove_current_platform "$all_platforms" "linuxarmv6l") elif [ "$pkg_platform" = "linuxarmv7l" ]; then @@ -657,7 +663,7 @@ function createPackage { fi #create compressed package - if [[ "$pkg_platform" =~ ^(linux|linux64|android|linuxarmv6l|linuxarmv7l|linuxaarch64|macos|ios|osx)$ ]]; then + if [[ "$pkg_platform" =~ ^(linux|linuxarm64|linux64|android|linuxarmv6l|linuxarmv7l|linuxaarch64|macos|ios|osx)$ ]]; then if [ "$libs_abi" = "" ]; then pkg_name=of_v${pkg_version}_${pkg_platform}_release else From 6d12e9b8ebf8151b9e58cfb5dfa768b5611622f4 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Tue, 4 Mar 2025 21:17:41 +1100 Subject: [PATCH 68/68] testing nightly --- scripts/dev/create_package.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dev/create_package.sh b/scripts/dev/create_package.sh index c470f42ab20..ab32ef448d3 100755 --- a/scripts/dev/create_package.sh +++ b/scripts/dev/create_package.sh @@ -350,10 +350,10 @@ function createPackage { scripts/osx/download_libs.sh -t $RELEASE scripts/emscripten/download_libs.sh -n -t $RELEASE elif [ "$pkg_platform" = "linux64" ]; then - scripts/linux/download_libs.sh -t $RELEASE -a 64 -g $libs_abi + scripts/linux/download_libs.sh -a 64 -g $libs_abi -t $RELEASE scripts/emscripten/download_libs.sh -n -t $RELEASE elif [ "$pkg_platform" = "linuxarm64" ]; then - scripts/linux/download_libs.sh -t $RELEASE -a 64 -g $libs_abi + scripts/linux/download_libs.sh -a arm64 -g $libs_abi -t $RELEASE scripts/emscripten/download_libs.sh -n -t $RELEASE elif [ "$pkg_platform" = "linuxarmv6l" ]; then scripts/linux/download_libs.sh -a armv6l -t $RELEASE