From 158470dc919b3abb2b3ad2b88bd1a19882f2531e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Wed, 17 Jun 2026 05:16:37 -0400 Subject: [PATCH 1/3] ci: also build in/against ossia score (dev / SDK / JIT) Add a `score` job calling the score-addon.yml reusable workflow alongside the standalone back-end build, so the template is validated as an ossia score add-on too (dev tree + SDK + JIT tracks). release left off: the templates ship no release.sh. Renames the existing standalone job ci -> standalone for clarity. Co-Authored-By: Claude Opus 4.7 --- .github/workflows/builds.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/builds.yaml b/.github/workflows/builds.yaml index f4306b8..6ec4d78 100644 --- a/.github/workflows/builds.yaml +++ b/.github/workflows/builds.yaml @@ -11,7 +11,15 @@ concurrency: cancel-in-progress: true jobs: - ci: + # Build in/against ossia score: dev tree, SDK, and JIT artifact tracks. + score: + uses: ossia/actions/.github/workflows/score-addon.yml@master + secrets: inherit + with: + release: false # the templates ship no release.sh + + # Build the same object(s) standalone, one artifact per back-end. + standalone: uses: ossia/actions/.github/workflows/avnd-addon.yml@master secrets: inherit with: From 2d506e07072fa1f4ab9e22501991b84449282af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Wed, 17 Jun 2026 08:38:28 -0400 Subject: [PATCH 2/3] fix: integer plugin VERSION for the in-tree score build The score-plugin bootstrap bakes VERSION into generated C++; the dotted 1.0.0 compiled as an invalid float literal. The score plugin version is an integer (the standalone path ignores it), so use VERSION 1. Co-Authored-By: Claude Opus 4.7 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 060cc6d..918f74f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,4 +35,4 @@ avnd_addon_object( src/Model.hpp src/Processor.hpp) -avnd_addon_finalize(NAME MyData UUID d589bb28-5055-4758-9236-00747b31a41d VERSION 1.0.0) +avnd_addon_finalize(NAME MyData UUID d589bb28-5055-4758-9236-00747b31a41d VERSION 1) From d7f9a93826e1479ddd29529661af9e38bbefa880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Wed, 17 Jun 2026 12:52:36 -0400 Subject: [PATCH 3/3] build: set the static CRT at addon scope (Windows/Max) Set CMAKE_MSVC_RUNTIME_LIBRARY at the top of the addon so the object library and every back-end external share the /MT runtime the Max external needs; mixing /MT and /MD trips MSVC with LNK2038. Co-Authored-By: Claude Opus 4.7 --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 918f74f..bef3159 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,14 @@ cmake_minimum_required(VERSION 3.24 FATAL_ERROR) project(MyData CXX) +# Max/MSP externals link the static CRT (/MT) on Windows, as the official +# max-sdk-base requires. Set it for the whole addon -- before Avendish and the +# object library are created -- so every target shares one runtime; mixing /MT +# and /MD trips MSVC with LNK2038. (CMP0091 is NEW via cmake_minimum_required.) +if(MSVC) + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +endif() + # Use the Avendish the host already provides (e.g. ossia score); otherwise fetch it. # The same CMakeLists builds this as an ossia/score add-on or as a standalone object. find_package(Avendish QUIET)