From 64f4d9df4534b30637ecad2e412758e6248a4a1b Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 17:59:29 +0100 Subject: [PATCH 01/11] remove global shell setup --- .../build-puredata-plugins-with-pd-lib-builder.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 5491bd4..f41012e 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -20,10 +20,6 @@ on: types: - completed -defaults: - run: - shell: bash - jobs: macOS: runs-on: macos-latest @@ -155,7 +151,7 @@ jobs: arch: x64 - name: Install Pd - id: pd + shell: pwsh run: | wget -q -O Pd.zip http://msp.ucsd.edu/Software/pd-0.53-2.msw.zip rm -rf "${PROGRAMFILES}/pd" && mkdir -p "${PROGRAMFILES}/pd" @@ -173,9 +169,6 @@ jobs: run-id: ${{ github.event.workflow_run.id || inputs.core_run_id }} github-token: ${{ github.token }} - # - name: Display structure of downloaded files - # run: ls -la core/lib/ - - name: Set up Conan run: | pip install conan @@ -194,6 +187,7 @@ jobs: conan install . --output-folder=build --build=missing -pr:b=mingw -pr:h=mingw - name: Build External + shell: bash working-directory: puredata run: | mingw32-make From 9ba93f885638f40f1da75f7232e61fa94a4ffbc2 Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 18:08:37 +0100 Subject: [PATCH 02/11] add shell spec --- .github/workflows/build-puredata-plugins-with-pd-lib-builder.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index f41012e..8d5c29f 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -137,6 +137,7 @@ jobs: submodules: true - name: Ensure core artifact id present + shell: bash env: CORE_RUN_ID: ${{ github.event.workflow_run.id || inputs.core_run_id }} run: | From 333aa99005f175f903df64ddb83e6e1c6b9c6e92 Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 18:16:35 +0100 Subject: [PATCH 03/11] remove the pwsh mark --- .github/workflows/build-puredata-plugins-with-pd-lib-builder.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 8d5c29f..3f828e8 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -152,7 +152,6 @@ jobs: arch: x64 - name: Install Pd - shell: pwsh run: | wget -q -O Pd.zip http://msp.ucsd.edu/Software/pd-0.53-2.msw.zip rm -rf "${PROGRAMFILES}/pd" && mkdir -p "${PROGRAMFILES}/pd" From 63eba9d6ebe1fe082fede8b240d95d458e8f0951 Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 18:20:36 +0100 Subject: [PATCH 04/11] change to pwsh install script --- ...d-puredata-plugins-with-pd-lib-builder.yml | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 3f828e8..ac67111 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -152,14 +152,33 @@ jobs: arch: x64 - name: Install Pd + id: pd + shell: pwsh run: | - wget -q -O Pd.zip http://msp.ucsd.edu/Software/pd-0.53-2.msw.zip - rm -rf "${PROGRAMFILES}/pd" && mkdir -p "${PROGRAMFILES}/pd" - unzip -q Pd.zip -d "${PROGRAMFILES}/pd" - mv -v "${PROGRAMFILES}/pd"/*/* "${PROGRAMFILES}/pd" - rm -f Pd.zip - export PD="${PROGRAMFILES}/pd/bin/pd.com" - echo "PD=${PD}" | tee "$GITHUB_OUTPUT" + $ErrorActionPreference = "Stop" + + $url = "http://msp.ucsd.edu/Software/pd-0.53-2.msw.zip" + $zip = Join-Path $env:RUNNER_TEMP "Pd.zip" + $pdDir = Join-Path $env:ProgramFiles "pd" + + Invoke-WebRequest $url -OutFile $zip + + if (Test-Path $pdDir) { Remove-Item $pdDir -Recurse -Force } + New-Item -ItemType Directory -Path $pdDir | Out-Null + + Expand-Archive -LiteralPath $zip -DestinationPath $pdDir -Force + Remove-Item $zip -Force + + # flatten nested directory + $top = Get-ChildItem $pdDir | Where-Object { $_.PSIsContainer } | Select-Object -First 1 + if ($top) { + Get-ChildItem $top.FullName | Move-Item -Destination $pdDir -Force + Remove-Item $top.FullName -Recurse -Force + } + + $pd = "$pdDir\bin\pd.com" + "PD=$pd" | Out-File -FilePath $env:GITHUB_ENV -Append + "PD=$pd" | Out-File -FilePath $env:GITHUB_OUTPUT -Append - name: Download zerr-core library uses: actions/download-artifact@v4 From 4dbae0254a5635798710606ca0fb50c1e54a095c Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 18:27:23 +0100 Subject: [PATCH 05/11] update conan profile setup --- ...d-puredata-plugins-with-pd-lib-builder.yml | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index ac67111..8fc6e27 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -189,15 +189,26 @@ jobs: github-token: ${{ github.token }} - name: Set up Conan + shell: bash run: | pip install conan - conan profile detect --name=mingw --force - conan profile update settings.compiler=gcc mingw - conan profile update settings.compiler.version=13 mingw - conan profile update settings.compiler.libcxx=libstdc++11 mingw - conan profile update settings.os=Windows mingw - conan profile update settings.arch=x86_64 mingw - conan profile update settings.build_type=Release mingw + + PROFILE="$HOME/.conan2/profiles/mingw" + + cat > "$PROFILE" << 'EOF' + [settings] + os=Windows + arch=x86_64 + build_type=Release + compiler=gcc + compiler.version=13 + compiler.libcxx=libstdc++11 + + [conf] + tools.build:compiler_executables={"c":"x86_64-w64-mingw32-gcc","cpp":"x86_64-w64-mingw32-g++"} + EOF + + conan profile show mingw - name: Install Dependencies working-directory: puredata From bfa5a53b4feb0d29eb136f8777b32d66a53e2d1f Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 18:38:13 +0100 Subject: [PATCH 06/11] create profile folder --- .../build-puredata-plugins-with-pd-lib-builder.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 8fc6e27..24c4e8e 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -191,9 +191,14 @@ jobs: - name: Set up Conan shell: bash run: | + set -euo pipefail pip install conan - PROFILE="$HOME/.conan2/profiles/mingw" + + PROFILE_DIR="$HOME/.conan2/profiles" + mkdir -p "$PROFILE_DIR" + + PROFILE="$PROFILE_DIR/mingw" cat > "$PROFILE" << 'EOF' [settings] @@ -211,6 +216,7 @@ jobs: conan profile show mingw - name: Install Dependencies + shell: bash working-directory: puredata run: | mkdir -p build From 40ce125194fea3c92d5d39282cb60a76e2d7ff02 Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 21:29:27 +0100 Subject: [PATCH 07/11] manually overwrite the compiler for conan --- ...d-puredata-plugins-with-pd-lib-builder.yml | 59 +++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 24c4e8e..0376c35 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -188,39 +188,50 @@ jobs: run-id: ${{ github.event.workflow_run.id || inputs.core_run_id }} github-token: ${{ github.token }} - - name: Set up Conan - shell: bash - run: | - set -euo pipefail - pip install conan + # - name: Set up Conan + # shell: bash + # run: | + # pip install conan + + # conan profile detect --name mingw --force + # PROFILE_PATH=$(conan profile path default) - PROFILE_DIR="$HOME/.conan2/profiles" - mkdir -p "$PROFILE_DIR" + # echo "Default profile path: $PROFILE_PATH" - PROFILE="$PROFILE_DIR/mingw" + # conan profile set settings.os=Windows mingw + # conan profile set settings.arch=x86_64 mingw + # conan profile set settings.compiler=gcc mingw + # conan profile set settings.compiler.version=13 mingw + # conan profile set settings.compiler.libcxx=libstdc++11 mingw + # conan profile set settings.build_type=Release mingw - cat > "$PROFILE" << 'EOF' - [settings] - os=Windows - arch=x86_64 - build_type=Release - compiler=gcc - compiler.version=13 - compiler.libcxx=libstdc++11 + # conan profile set conf.tools.build:compiler_executables.c=x86_64-w64-mingw32-gcc mingw + # conan profile set conf.tools.build:compiler_executables.cpp=x86_64-w64-mingw32-g++ mingw - [conf] - tools.build:compiler_executables={"c":"x86_64-w64-mingw32-gcc","cpp":"x86_64-w64-mingw32-g++"} - EOF + # conan profile show mingw - conan profile show mingw + # - name: Install Dependencies + # shell: bash + # working-directory: puredata + # run: | + # mkdir -p build + # conan install . --output-folder=build --build=missing -pr:b=mingw -pr:h=mingw + + - name: Set up Conan + run: | + pip install conan + conan profile detect --force - name: Install Dependencies - shell: bash - working-directory: puredata + working-directory: core run: | - mkdir -p build - conan install . --output-folder=build --build=missing -pr:b=mingw -pr:h=mingw + mkdir build + conan install . --output-folder=build --build=missing ` + -s compiler=gcc ` + -s compiler.version=13 ` + -s compiler.libcxx=libstdc++11 ` + -s build_type=Release - name: Build External shell: bash From 6af0bb9ce68b8e7f6a0f2075da22c45996b26aa2 Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 21:53:44 +0100 Subject: [PATCH 08/11] add mingw-profile.txt --- puredata/mingw-profile.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 puredata/mingw-profile.txt diff --git a/puredata/mingw-profile.txt b/puredata/mingw-profile.txt new file mode 100644 index 0000000..79e8607 --- /dev/null +++ b/puredata/mingw-profile.txt @@ -0,0 +1,13 @@ +[settings] +os=Windows +arch=x86_64 +build_type=Release +compiler=gcc +compiler.version=13 +compiler.libcxx=libstdc++11 +compiler.threads=posix +compiler.exception=seh +compiler.cppstd=17 + +[conf] +tools.build:compiler_executables={"c":"x86_64-w64-mingw32-gcc","cpp":"x86_64-w64-mingw32-g++"} \ No newline at end of file From c58b75d6cf2eee31cdf15be94819d7f4158f10ae Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 21:56:07 +0100 Subject: [PATCH 09/11] add mingw-profile.txt --- .../build-puredata-plugins-with-pd-lib-builder.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 0376c35..4869369 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -224,14 +224,11 @@ jobs: conan profile detect --force - name: Install Dependencies - working-directory: core + working-directory: puredata run: | mkdir build - conan install . --output-folder=build --build=missing ` - -s compiler=gcc ` - -s compiler.version=13 ` - -s compiler.libcxx=libstdc++11 ` - -s build_type=Release + conan install . -of=build --build=missing \ + -pr:h=./mingw-profile.txt -pr:b=./mingw-profile.txt - name: Build External shell: bash From 0a0a083ed0c45a951620e61371a3ce149062c6c2 Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 22:22:26 +0100 Subject: [PATCH 10/11] update -pr --- .../workflows/build-puredata-plugins-with-pd-lib-builder.yml | 3 +-- puredata/Makefile | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 4869369..94503ab 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -227,8 +227,7 @@ jobs: working-directory: puredata run: | mkdir build - conan install . -of=build --build=missing \ - -pr:h=./mingw-profile.txt -pr:b=./mingw-profile.txt + conan install . -pr=./mingw-profile.txt --output-folder=build --build=missing - name: Build External shell: bash diff --git a/puredata/Makefile b/puredata/Makefile index 840c30f..b1c045a 100644 --- a/puredata/Makefile +++ b/puredata/Makefile @@ -6,6 +6,7 @@ CC = g++ cflags += -std=c++17 -Wall -DYAML_CPP_STATIC_DEFINE include build/conandeps.mk + cflags += -I$(CONAN_INCLUDE_DIRS_YAML_CPP) -I$(CONAN_INCLUDE_DIRS_FFTW) # ldflags = -L$(CONAN_LIB_DIRS_YAML_CPP) # Add library directories # ldlibs = -l$(CONAN_LIBS_YAML_CPP) # Link the yaml-cpp library From a5ea2b61ab16d18124d97667e0d9393d9d997beb Mon Sep 17 00:00:00 2001 From: Zeyu Yang <213153676zsq@gmail.com> Date: Sun, 18 Jan 2026 22:32:06 +0100 Subject: [PATCH 11/11] change to pr:h + ph:b --- .../workflows/build-puredata-plugins-with-pd-lib-builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml index 94503ab..061e755 100644 --- a/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml +++ b/.github/workflows/build-puredata-plugins-with-pd-lib-builder.yml @@ -227,7 +227,7 @@ jobs: working-directory: puredata run: | mkdir build - conan install . -pr=./mingw-profile.txt --output-folder=build --build=missing + conan install . -pr:h=./mingw-profile.txt -pr:b=./mingw-profile.txt --output-folder=build --build=missing - name: Build External shell: bash