From a084f5984d75437b98c24f575d9ac55bd46d0457 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Fri, 15 Aug 2025 09:04:30 -0600 Subject: [PATCH 01/79] add luajit as a module --- .gitmodules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitmodules b/.gitmodules index 5a5ceef..48ea00c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "Source/lua/lua"] path = Source/lua/lua url = ../../lua/lua.git +[submodule "LuaJIT"] + path = modules/LuaJIT + url = https://luajit.org/git/luajit.git \ No newline at end of file From 065af7a8360f4c4f45a96123fcc87283a6403b88 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Fri, 15 Aug 2025 09:12:33 -0600 Subject: [PATCH 02/79] add LuaJIT as a submodule --- .gitmodules | 2 +- modules/LuaJIT | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 160000 modules/LuaJIT diff --git a/.gitmodules b/.gitmodules index 48ea00c..9febb12 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,4 +12,4 @@ url = ../../lua/lua.git [submodule "LuaJIT"] path = modules/LuaJIT - url = https://luajit.org/git/luajit.git \ No newline at end of file + url = https://luajit.org/git/luajit.git diff --git a/modules/LuaJIT b/modules/LuaJIT new file mode 160000 index 0000000..871db2c --- /dev/null +++ b/modules/LuaJIT @@ -0,0 +1 @@ +Subproject commit 871db2c84ecefd70a850e03a6c340214a81739f0 From a4ed461887fde299d2844535e7c6e5b4e36959a1 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Fri, 15 Aug 2025 10:09:47 -0600 Subject: [PATCH 03/79] Switch to LuaJIT --- .gitmodules | 3 -- Source/lua/LuaParser.cpp | 8 ++--- Source/lua/lua | 1 - Source/lua/luaimport.cpp | 1 - Source/lua/luaimport.h | 40 --------------------- luajit_win.bat | 8 +++++ osci-render.jucer | 77 ++++------------------------------------ 7 files changed, 19 insertions(+), 119 deletions(-) delete mode 160000 Source/lua/lua delete mode 100644 Source/lua/luaimport.cpp delete mode 100644 Source/lua/luaimport.h create mode 100644 luajit_win.bat diff --git a/.gitmodules b/.gitmodules index 9febb12..16f29de 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,9 +7,6 @@ [submodule "modules/osci_render_core"] path = modules/osci_render_core url = ../../jameshball/osci_render_core.git -[submodule "Source/lua/lua"] - path = Source/lua/lua - url = ../../lua/lua.git [submodule "LuaJIT"] path = modules/LuaJIT url = https://luajit.org/git/luajit.git diff --git a/Source/lua/LuaParser.cpp b/Source/lua/LuaParser.cpp index d4c366f..f17b815 100644 --- a/Source/lua/LuaParser.cpp +++ b/Source/lua/LuaParser.cpp @@ -1,5 +1,5 @@ #include "LuaParser.h" -#include "luaimport.h" +#include std::function LuaParser::onPrint; std::function LuaParser::onClear; @@ -322,7 +322,7 @@ static int luaPrint(lua_State* L) { int nargs = lua_gettop(L); for (int i = 1; i <= nargs; ++i) { - LuaParser::onPrint(luaL_tolstring(L, i, nullptr)); + LuaParser::onPrint(lua_tolstring(L, i, nullptr)); lua_pop(L, 1); } @@ -468,7 +468,7 @@ void LuaParser::revertToFallback(lua_State*& L) { } void LuaParser::readTable(lua_State*& L, std::vector& values) { - auto length = lua_rawlen(L, -1); + auto length = lua_objlen(L, -1); for (int i = 1; i <= length; i++) { lua_pushinteger(L, i); @@ -493,7 +493,7 @@ std::vector LuaParser::run(lua_State*& L, LuaVariables& vars) { setGlobalVariables(L, vars); // Get the function from the registry - lua_geti(L, LUA_REGISTRYINDEX, functionRef); + lua_rawgeti(L, LUA_REGISTRYINDEX, functionRef); setMaximumInstructions(L, 5000000); diff --git a/Source/lua/lua b/Source/lua/lua deleted file mode 160000 index 3dbb1a4..0000000 --- a/Source/lua/lua +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3dbb1a4b894c0744a331d4319d8d1704dc4ad943 diff --git a/Source/lua/luaimport.cpp b/Source/lua/luaimport.cpp deleted file mode 100644 index 0a804bb..0000000 --- a/Source/lua/luaimport.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "luaimport.h" \ No newline at end of file diff --git a/Source/lua/luaimport.h b/Source/lua/luaimport.h deleted file mode 100644 index 673f56a..0000000 --- a/Source/lua/luaimport.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef LUAIMPORT_H -#define LUAIMPORT_H - -extern "C" { - #include "lua/lapi.c" - #include "lua/lauxlib.c" - #include "lua/lbaselib.c" - #include "lua/lcode.c" - #include "lua/lcorolib.c" - #include "lua/lctype.c" - #include "lua/ldblib.c" - #include "lua/ldebug.c" - #include "lua/ldo.c" - #include "lua/ldump.c" - #include "lua/lfunc.c" - #include "lua/lgc.c" - #include "lua/linit.c" - #include "lua/liolib.c" - #include "lua/llex.c" - #include "lua/lmathlib.c" - #include "lua/lmem.c" - #include "lua/loadlib.c" - #include "lua/lobject.c" - #include "lua/lopcodes.c" - #include "lua/loslib.c" - #include "lua/lparser.c" - #include "lua/lstate.c" - #include "lua/lstring.c" - #include "lua/lstrlib.c" - #include "lua/ltable.c" - #include "lua/ltablib.c" - #include "lua/ltests.c" - #include "lua/ltm.c" - #include "lua/lundump.c" - #include "lua/lutf8lib.c" - #include "lua/lvm.c" - #include "lua/lzio.c" -} - -#endif \ No newline at end of file diff --git a/luajit_win.bat b/luajit_win.bat new file mode 100644 index 0000000..ac070ff --- /dev/null +++ b/luajit_win.bat @@ -0,0 +1,8 @@ +if /I "%VSTEL_MSBuildProjectFullPath:~-18%" neq "SharedCode.vcxproj" ( + goto skip_luajit +) + +cd ..\..\..\modules\LuaJIT\src +.\msvcbuild.bat static + +:skip_luajit \ No newline at end of file diff --git a/osci-render.jucer b/osci-render.jucer index be38c77..453717f 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -365,73 +365,6 @@ file="Source/ixwebsocket/IXWebSocketVersion.h"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -730,11 +663,15 @@ + extraLinkerFlags="/IGNORE:4006" externalLibraries="lua51.lib"> - + + debugInformationFormat="ProgramDatabase" winWarningLevel="2" + prebuildCommand="..\..\..\luajit_win.bat" libraryPath="..\..\..\modules\LuaJIT\src" + headerPath="..\..\..\modules\LuaJIT\src"/> From 2f9ee2c0f1e2af46d3fef1516ed9a10ca593cb8f Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Fri, 15 Aug 2025 10:43:15 -0600 Subject: [PATCH 04/79] Add potential macOS support (needs to be tested) --- osci-render.jucer | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/osci-render.jucer b/osci-render.jucer index 453717f..5aabc9d 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -707,14 +707,18 @@ microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks" extraCustomFrameworks="/Library/Frameworks/Syphon.framework" hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" - iosDevelopmentTeamID="D86A3M3H2L"> + iosDevelopmentTeamID="D86A3M3H2L" prebuildCommand="if [[ $TARGET_NAME == *"Shared Code"* ]]; then cd ..\..\..\modules\LuaJIT\src make -j$(nproc) fi" + externalLibraries="lua51"> + codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)" + headerPath="..\..\..\modules\LuaJIT\src" libraryPath="..\..\..\modules\LuaJIT\src"/> + codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)" + headerPath="..\..\..\modules\LuaJIT\src" libraryPath="..\..\..\modules\LuaJIT\src"/> + codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)" + headerPath="..\..\..\modules\LuaJIT\src" libraryPath="..\..\..\modules\LuaJIT\src"/> From 40f1f602d7ed6f995b4081284ce2901b15495232 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sat, 16 Aug 2025 07:44:06 -0600 Subject: [PATCH 05/79] Add Linux build script and notices about syntax errors --- Source/lua/LuaParser.cpp | 4 ++++ luajit_linux.sh | 7 +++++++ luajit_win.bat | 17 +++++++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 luajit_linux.sh diff --git a/Source/lua/LuaParser.cpp b/Source/lua/LuaParser.cpp index f17b815..7fa9219 100644 --- a/Source/lua/LuaParser.cpp +++ b/Source/lua/LuaParser.cpp @@ -1,4 +1,8 @@ #include "LuaParser.h" + +// If you haven't compiled LuaJIT yet, this will fail, and you'll get a ton of syntax errors in a few Lua-related files! +// On Windows and MacOS, this will be done automatically as a pre-build step when you compile SharedCode. +// On Linux, you'll have to run the shell script "luajit_linux.sh" in the root of the Git repository. #include std::function LuaParser::onPrint; diff --git a/luajit_linux.sh b/luajit_linux.sh new file mode 100644 index 0000000..609c675 --- /dev/null +++ b/luajit_linux.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Run this if you're on Linux and you haven't already built LuaJIT. +# If you don't, osci-render won't compile. + +cd ..\..\..\modules\LuaJIT\src +make -j$(nproc) \ No newline at end of file diff --git a/luajit_win.bat b/luajit_win.bat index ac070ff..0957fc4 100644 --- a/luajit_win.bat +++ b/luajit_win.bat @@ -1,8 +1,21 @@ +@echo off +if "%VisualStudioVersion%"=="" ( + ECHO Visual Studio command line variables not detected! + ECHO This script will only work if you run it from a Visual Studio command line! + goto error_luajit +) + if /I "%VSTEL_MSBuildProjectFullPath:~-18%" neq "SharedCode.vcxproj" ( - goto skip_luajit + goto finish_luajit ) cd ..\..\..\modules\LuaJIT\src .\msvcbuild.bat static +goto finish_luajit -:skip_luajit \ No newline at end of file +:error_luajit + +timeout /T 10 + +:finish_luajit +@echo on \ No newline at end of file From 59629bc1a89f8c516263faaee29e8a8ac0c90336 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sat, 16 Aug 2025 07:55:27 -0600 Subject: [PATCH 06/79] Make LuaJIT build a little more robust --- Source/lua/LuaParser.cpp | 4 ++-- luajit_linux.sh => luajit_linux_macos.sh | 0 osci-render.jucer | 21 +++++++++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) rename luajit_linux.sh => luajit_linux_macos.sh (100%) diff --git a/Source/lua/LuaParser.cpp b/Source/lua/LuaParser.cpp index 7fa9219..98a4840 100644 --- a/Source/lua/LuaParser.cpp +++ b/Source/lua/LuaParser.cpp @@ -1,8 +1,8 @@ #include "LuaParser.h" // If you haven't compiled LuaJIT yet, this will fail, and you'll get a ton of syntax errors in a few Lua-related files! -// On Windows and MacOS, this will be done automatically as a pre-build step when you compile SharedCode. -// On Linux, you'll have to run the shell script "luajit_linux.sh" in the root of the Git repository. +// On all platforms, this should be done automatically when you run the export. +// If not, use the luajit_win.bat or luajit_linux_macos.sh scripts in the git root from the dev environment. #include std::function LuaParser::onPrint; diff --git a/luajit_linux.sh b/luajit_linux_macos.sh similarity index 100% rename from luajit_linux.sh rename to luajit_linux_macos.sh diff --git a/osci-render.jucer b/osci-render.jucer index 5aabc9d..0573ef5 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -6,7 +6,7 @@ cppLanguageStandard="20" projectLineFeed=" " headerPath="./include" version="2.5.1.1" companyName="James H Ball" companyWebsite="https://osci-render.com" companyEmail="james@ball.sh" defines="NOMINMAX=1 INTERNET_FLAG_NO_AUTO_REDIRECT=0 OSCI_PREMIUM=1 JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 JUCE_MODAL_LOOPS_PERMITTED=1" - pluginAUMainType="'aumf'"> + pluginAUMainType="'aumf'" postExportShellCommandPosix="cd %%1%%; .\luajit_linux_macos.sh "> @@ -628,10 +628,12 @@ JUCE_WEB_BROWSER="0"/> + bigIcon="pSc1mq" externalLibraries="lua51"> - - + + @@ -666,12 +668,12 @@ extraLinkerFlags="/IGNORE:4006" externalLibraries="lua51.lib"> + libraryPath="..\..\..\modules\LuaJIT\src" headerPath="..\..\..\modules\LuaJIT\src" + prebuildCommand="..\..\..\luajit_win.bat"/> + libraryPath="..\..\..\modules\LuaJIT\src" headerPath="..\..\..\modules\LuaJIT\src" + prebuildCommand="..\..\..\luajit_win.bat"/> @@ -707,8 +709,7 @@ microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks" extraCustomFrameworks="/Library/Frameworks/Syphon.framework" hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" - iosDevelopmentTeamID="D86A3M3H2L" prebuildCommand="if [[ $TARGET_NAME == *"Shared Code"* ]]; then cd ..\..\..\modules\LuaJIT\src make -j$(nproc) fi" - externalLibraries="lua51"> + iosDevelopmentTeamID="D86A3M3H2L" externalLibraries="lua51"> Date: Sat, 16 Aug 2025 09:08:43 -0600 Subject: [PATCH 07/79] fix Linux build --- luajit_linux_macos.sh | 4 ++-- osci-render.jucer | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) mode change 100644 => 100755 luajit_linux_macos.sh diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh old mode 100644 new mode 100755 index 609c675..62f5f2f --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -3,5 +3,5 @@ # Run this if you're on Linux and you haven't already built LuaJIT. # If you don't, osci-render won't compile. -cd ..\..\..\modules\LuaJIT\src -make -j$(nproc) \ No newline at end of file +cd modules/LuaJIT/src +BUILDMODE=static make -j$(nproc) diff --git a/osci-render.jucer b/osci-render.jucer index 0573ef5..4c9fdce 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -6,7 +6,7 @@ cppLanguageStandard="20" projectLineFeed=" " headerPath="./include" version="2.5.1.1" companyName="James H Ball" companyWebsite="https://osci-render.com" companyEmail="james@ball.sh" defines="NOMINMAX=1 INTERNET_FLAG_NO_AUTO_REDIRECT=0 OSCI_PREMIUM=1 JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 JUCE_MODAL_LOOPS_PERMITTED=1" - pluginAUMainType="'aumf'" postExportShellCommandPosix="cd %%1%%; .\luajit_linux_macos.sh "> + pluginAUMainType="'aumf'" postExportShellCommandPosix="%%1%%/luajit_linux_macos.sh "> @@ -628,12 +628,12 @@ JUCE_WEB_BROWSER="0"/> + bigIcon="pSc1mq" externalLibraries="luajit"> - - + + @@ -709,17 +709,17 @@ microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks" extraCustomFrameworks="/Library/Frameworks/Syphon.framework" hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" - iosDevelopmentTeamID="D86A3M3H2L" externalLibraries="lua51"> + iosDevelopmentTeamID="D86A3M3H2L" externalLibraries="luajit"> + headerPath="../../../modules/LuaJIt/src" libraryPath="../../../modules/LuaJIt/src"/> + headerPath="../../../modules/LuaJIt/src" libraryPath="../../../modules/LuaJIt/src"/> + headerPath="../../../modules/LuaJIt/src" libraryPath="../../../modules/LuaJIt/src"/> From 7bb2a676c4dc9ec200c5c8c48345d8aa29615d70 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sat, 16 Aug 2025 10:28:55 -0600 Subject: [PATCH 08/79] Make compilation work out of the box on MacOS by updating LuaJIT script and removing hardcoded developer ID --- luajit_linux_macos.sh | 9 +++++++-- osci-render.jucer | 9 +++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 62f5f2f..c034cf3 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -3,5 +3,10 @@ # Run this if you're on Linux and you haven't already built LuaJIT. # If you don't, osci-render won't compile. -cd modules/LuaJIT/src -BUILDMODE=static make -j$(nproc) +cd "$DIR/modules/LuaJIT/src" + +if [[ "$OSTYPE" == "darwin"* ]]; then + make -j$(sysctl -n hw.logicalcpu) BUILDMODE=static MACOSX_DEPLOYMENT_TARGET=10.13 +else + make -j$(nproc) BUILDMODE=static +fi diff --git a/osci-render.jucer b/osci-render.jucer index ecaf4fb..c6488ff 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -6,7 +6,7 @@ cppLanguageStandard="20" projectLineFeed=" " headerPath="./include" version="2.5.1.1" companyName="James H Ball" companyWebsite="https://osci-render.com" companyEmail="james@ball.sh" defines="NOMINMAX=1 INTERNET_FLAG_NO_AUTO_REDIRECT=0 OSCI_PREMIUM=1 JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 JUCE_MODAL_LOOPS_PERMITTED=1" - pluginAUMainType="'aumf'" postExportShellCommandPosix="%%1%%/luajit_linux_macos.sh "> + pluginAUMainType="'aumf'" postExportShellCommandPosix="DIR=%%1%% %%1%%/luajit_linux_macos.sh "> @@ -707,17 +707,14 @@ bigIcon="aZXbCi" applicationCategory="public.app-category.music" microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks" extraCustomFrameworks="/Library/Frameworks/Syphon.framework" - hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" - iosDevelopmentTeamID="D86A3M3H2L" externalLibraries="luajit"> + hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.allow-jit,com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" + externalLibraries="luajit"> From 90585abd549c81c8b910100a4e9a8f0a5aac968f Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sat, 16 Aug 2025 12:25:05 -0600 Subject: [PATCH 09/79] revert development id removal --- osci-render.jucer | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/osci-render.jucer b/osci-render.jucer index c6488ff..020d707 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -708,14 +708,17 @@ microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks" extraCustomFrameworks="/Library/Frameworks/Syphon.framework" hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.allow-jit,com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" - externalLibraries="luajit"> + externalLibraries="luajit" iosDevelopmentTeamID="D86A3M3H2L"> + headerPath="../../../modules/LuaJIt/src" libraryPath="../../../modules/LuaJIt/src" + codeSigningIdentity=""Developer ID Application: James Ball (D86A3M3H2L)""/> + headerPath="../../../modules/LuaJIt/src" libraryPath="../../../modules/LuaJIt/src" + codeSigningIdentity=""Developer ID Application: James Ball (D86A3M3H2L)""/> + headerPath="../../../modules/LuaJIt/src" libraryPath="../../../modules/LuaJIt/src" + codeSigningIdentity=""Developer ID Application: James Ball (D86A3M3H2L)""/> From 80b36a716269adadab5a898054fb63da3e330918 Mon Sep 17 00:00:00 2001 From: James H Ball Date: Sun, 17 Aug 2025 09:37:52 +0100 Subject: [PATCH 10/79] Update luajit_linux_macos.sh --- luajit_linux_macos.sh | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index c034cf3..359c3cc 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -1,12 +1,42 @@ #!/bin/sh -# Run this if you're on Linux and you haven't already built LuaJIT. +# Run this if you're on Linux or macOS and you haven't already built LuaJIT. # If you don't, osci-render won't compile. -cd "$DIR/modules/LuaJIT/src" +cd "$DIR/modules/LuaJIT/src" || exit 1 if [[ "$OSTYPE" == "darwin"* ]]; then - make -j$(sysctl -n hw.logicalcpu) BUILDMODE=static MACOSX_DEPLOYMENT_TARGET=10.13 + echo "Building LuaJIT universal binary (x86_64 + arm64)..." + + # Clean old builds + make clean + + # Build x86_64 + make -j$(sysctl -n hw.logicalcpu) \ + BUILDMODE=static \ + MACOSX_DEPLOYMENT_TARGET=10.13 \ + CC="clang -arch x86_64" \ + XCFLAGS="-DLUAJIT_ENABLE_GC64" \ + || exit 1 + + mv libluajit.a libluajit_x86_64.a + make clean + + # Build arm64 + make -j$(sysctl -n hw.logicalcpu) \ + BUILDMODE=static \ + MACOSX_DEPLOYMENT_TARGET=10.13 \ + CC="clang -arch arm64" \ + XCFLAGS="-DLUAJIT_ENABLE_GC64" \ + || exit 1 + + mv libluajit.a libluajit_arm64.a + + # Merge into fat binary + lipo -create -output libluajit.a libluajit_x86_64.a libluajit_arm64.a + echo "✅ Universal libluajit.a created." + else + echo "Building LuaJIT for Linux..." make -j$(nproc) BUILDMODE=static fi From e1240f8460bac9214877c3a1c87934ef1fd2f702 Mon Sep 17 00:00:00 2001 From: James H Ball Date: Sun, 17 Aug 2025 09:57:45 +0100 Subject: [PATCH 11/79] Update luajit_linux_macos.sh --- luajit_linux_macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 359c3cc..61ca2ec 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Run this if you're on Linux or macOS and you haven't already built LuaJIT. # If you don't, osci-render won't compile. From 6cbaed56639acc78ec02436a097e2ef81a2e99b1 Mon Sep 17 00:00:00 2001 From: James H Ball Date: Sun, 17 Aug 2025 10:04:30 +0100 Subject: [PATCH 12/79] Update luajit_linux_macos.sh --- luajit_linux_macos.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 61ca2ec..96daf12 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -8,9 +8,6 @@ cd "$DIR/modules/LuaJIT/src" || exit 1 if [[ "$OSTYPE" == "darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." - # Clean old builds - make clean - # Build x86_64 make -j$(sysctl -n hw.logicalcpu) \ BUILDMODE=static \ @@ -38,5 +35,5 @@ if [[ "$OSTYPE" == "darwin"* ]]; then else echo "Building LuaJIT for Linux..." - make -j$(nproc) BUILDMODE=static + make -j$(nproc) BUILDMODE=static XCFLAGS="-fPIC" fi From c78dcfbc321403b687421668ccdfbd376bd872ee Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 07:25:01 -0600 Subject: [PATCH 13/79] possible Windows ci fix --- ci/build.sh | 5 +++++ ci/vcvars_export.bat | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 ci/vcvars_export.bat diff --git a/ci/build.sh b/ci/build.sh index bbcb66e..f16ff55 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -44,6 +44,11 @@ fi if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" + VS_PATH=$("$VS_WHERE" -latest -property installationPath) + DEVCMD_BAT="$VS_PATH\Common7\Tools\vsdevcmd.bat" + + eval "$($(cygpath "$COMSPEC") /cvcvars_export "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" + MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE diff --git a/ci/vcvars_export.bat b/ci/vcvars_export.bat new file mode 100644 index 0000000..06076a2 --- /dev/null +++ b/ci/vcvars_export.bat @@ -0,0 +1,3 @@ +@echo off +call %1 > nul +"%2" -c "export -p" \ No newline at end of file From 3632fef0a7959313b14e96d4f97e00e177c29bbd Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 07:38:08 -0600 Subject: [PATCH 14/79] further ci work --- ci/build.sh | 2 +- modules/osci_render_core | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index f16ff55..783676f 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$VS_PATH\Common7\Tools\vsdevcmd.bat" - eval "$($(cygpath "$COMSPEC") /cvcvars_export "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$ROOT\\ci\\vcvars_export "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE diff --git a/modules/osci_render_core b/modules/osci_render_core index fedc246..913c3b0 160000 --- a/modules/osci_render_core +++ b/modules/osci_render_core @@ -1 +1 @@ -Subproject commit fedc2463e64e13f1348d49ae6504d31c9db41cc0 +Subproject commit 913c3b052404818c45ad93c5e6022244d57df5e9 From cecc9fd09c959cd0d8807bff30b7332023dedeba Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 07:39:47 -0600 Subject: [PATCH 15/79] furtherer ci work --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 783676f..64f73a8 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$VS_PATH\Common7\Tools\vsdevcmd.bat" - eval "$($(cygpath "$COMSPEC") /c$ROOT\\ci\\vcvars_export "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 9e558658d002beb19bf68bfb4dbae20b2fb6d46e Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 07:48:13 -0600 Subject: [PATCH 16/79] furthererer ci work --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 64f73a8..781e276 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$VS_PATH\Common7\Tools\vsdevcmd.bat" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 78f213355055f07f6a78f257f19081416b7cf21b Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 07:57:36 -0600 Subject: [PATCH 17/79] furtherererer ci work --- ci/build.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 781e276..019cf78 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -16,8 +16,8 @@ if [ "$VERSION" = "free" ]; then fi # Resave jucer file -RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" -eval "$RESAVE_COMMAND" +#RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" +#eval "$RESAVE_COMMAND" # Build mac version if [ "$OS" = "mac" ]; then @@ -45,9 +45,10 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$VS_PATH\Common7\Tools\vsdevcmd.bat" + DEVCMD_BAT="$(cygpath -u $VS_PATH)/Common7/Tools/vsdevcmd.bat" + echo DEVCMD_BAT - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) $(cygpath -w "$DEVCMD_BAT") "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 1e99bf53da3d3e89ef020db955bd203617a5ac51 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:09:36 -0600 Subject: [PATCH 18/79] forgor:skull: to add the dollar sign --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 019cf78..d0ee299 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -46,7 +46,7 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$(cygpath -u $VS_PATH)/Common7/Tools/vsdevcmd.bat" - echo DEVCMD_BAT + echo $DEVCMD_BAT eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) $(cygpath -w "$DEVCMD_BAT") "$(cygpath -w "$SHELL")")" From 0a214eda997658f95c03ec73dcd2f81737a338cc Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:11:15 -0600 Subject: [PATCH 19/79] forgor:skull: to uncomment something --- ci/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index d0ee299..7a03162 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -16,8 +16,8 @@ if [ "$VERSION" = "free" ]; then fi # Resave jucer file -#RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" -#eval "$RESAVE_COMMAND" +RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" +eval "$RESAVE_COMMAND" # Build mac version if [ "$OS" = "mac" ]; then From 0731f20bec1591d297f8441911570d9cfaf50326 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:17:43 -0600 Subject: [PATCH 20/79] increase debugging and possibly fix --- ci/build.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 7a03162..abde000 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -46,9 +46,13 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$(cygpath -u $VS_PATH)/Common7/Tools/vsdevcmd.bat" - echo $DEVCMD_BAT - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) $(cygpath -w "$DEVCMD_BAT") "$(cygpath -w "$SHELL")")" + echo "$(cygpath "$COMSPEC")" + echo "/c$(cygpath -w $ROOT/ci/vcvars_export.bat)" + echo "$(cygpath -w "$DEVCMD_BAT")" + echo "$(cygpath -w "$SHELL")" + + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) $(cygpath -w "$DEVCMD_BAT") $(cygpath -w "$SHELL"))" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From f0f1314dd27648f971af0a9068525d671eaa6981 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:24:39 -0600 Subject: [PATCH 21/79] make cygpath interpret backslashes properly --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index abde000..4610047 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -45,7 +45,7 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$(cygpath -u $VS_PATH)/Common7/Tools/vsdevcmd.bat" + DEVCMD_BAT="$(cygpath -u '$VS_PATH')/Common7/Tools/vsdevcmd.bat" echo "$(cygpath "$COMSPEC")" echo "/c$(cygpath -w $ROOT/ci/vcvars_export.bat)" From c54314cf20ce83e8dd6722781ce070d767027207 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:26:35 -0600 Subject: [PATCH 22/79] Rename build.yaml to build.yaml.bak for testing purposes --- .github/workflows/{build.yaml => build.yaml.bak} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{build.yaml => build.yaml.bak} (100%) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml.bak similarity index 100% rename from .github/workflows/build.yaml rename to .github/workflows/build.yaml.bak From 29c8b4294825979d64f97d3acd40af50aa9cb50b Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:26:55 -0600 Subject: [PATCH 23/79] Create build.yaml for testing purposes --- .github/workflows/build.yaml | 183 +++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..b72cbaf --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,183 @@ +name: Build +on: + push: + branches: + - main + - develop + workflow_dispatch: +jobs: + build-linux: + name: Build Linux + runs-on: ubuntu-24.04 + strategy: + matrix: + include: + - project: osci-render + version: free + - project: osci-render + version: premium + - project: sosci + version: premium + steps: + - name: Fix up git URLs + run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig + shell: bash + + - uses: actions/checkout@v1 + with: + token: ${{ secrets.ACCESS_TOKEN }} + submodules: true + + - name: "Run script" + run: | + export OS="linux" + source ./ci/setup-env.sh + source ./ci/test.sh + source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" + shell: bash + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: "${{ matrix.project }}-${{ matrix.version }}-linux" + path: bin + retention-days: 7 + build-macos: + name: Build macOS + runs-on: macos-latest + strategy: + matrix: + include: + - project: osci-render + version: free + - project: osci-render + version: premium + - project: sosci + version: premium + steps: + - name: Fix up git URLs + run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig + shell: bash + + - uses: actions/checkout@v1 + with: + token: ${{ secrets.ACCESS_TOKEN }} + submodules: true + + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest + + - name: Import application certificates + uses: apple-actions/import-codesign-certs@v3 + with: + keychain: oscirender + keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} + p12-file-base64: ${{ secrets.APPLE_APPLICATION_CERTIFICATE }} + p12-password: ${{ secrets.APPLE_APPLICATION_CERTIFICATE_PASSWORD }} + + - name: Import installer certificates + uses: apple-actions/import-codesign-certs@v3 + with: + keychain: oscirender + keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} + p12-file-base64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE }} + p12-password: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }} + create-keychain: false + + - name: "Run script" + run: | + export OS="mac" + source ./ci/setup-env.sh + source ./ci/test.sh + source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" + shell: bash + + - name: Download Packages installer build tool + run: wget http://s.sudre.free.fr/files/Packages_1211_dev.dmg + + - name: Mount Packages image + run: hdiutil attach Packages_1211_dev.dmg + + - name: Install Packages + run: sudo installer -pkg /Volumes/Packages\ 1.2.11/Install\ Packages.pkg -target / + + - name: Build installer + run: packagesbuild --project "packaging/${{ matrix.project }}.pkgproj" + + - name: Sign installer + run: | + productsign -s "${{ secrets.APPLE_DEVELOPER_ID_INSTALLER }}" "packaging/build/${{ matrix.project }}.pkg" "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" + pkgutil --check-signature "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" + + - name: Notarize installer + uses: lando/notarize-action@v2 + with: + product-path: "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" + appstore-connect-username: ${{ secrets.APPLE_ID }} + appstore-connect-password: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} + appstore-connect-team-id: ${{ secrets.APPLE_TEAM_ID }} + primary-bundle-id: com.${{ matrix.project }}.pkg + tool: notarytool + verbose: true + + - name: Staple installer + run: xcrun stapler staple "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" + + - name: Check installer + run: spctl -a -vvv -t install "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: "${{ matrix.project }}-${{ matrix.version }}-macos" + path: bin + retention-days: 7 + build-windows: + name: Build Windows + runs-on: windows-latest + strategy: + matrix: + include: + - project: osci-render + version: free + - project: osci-render + version: premium + steps: + - name: Fix up git URLs + run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig + shell: bash + + - uses: actions/checkout@v1 + with: + token: ${{ secrets.ACCESS_TOKEN }} + submodules: true + + - name: Setup NuGet.exe for use with actions + uses: NuGet/setup-nuget@v1.0.5 + + - name: NuGet Sources + run: nuget sources + + - name: "Run script" + run: | + export OS="win" + source ./ci/setup-env.sh + source ./ci/test.sh + source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" + shell: bash + + - name: Compile .ISS to .EXE Installer + uses: Minionguyjpro/Inno-Setup-Action@v1.2.2 + with: + path: "packaging/${{ matrix.project }}.iss" + + - name: Move installer to bin + run: mv "packaging/build/${{ matrix.project }}.exe" "bin/${{ matrix.project }}-${{ matrix.version }}.exe" + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: "${{ matrix.project }}-${{ matrix.version }}-windows" + path: bin + retention-days: 7 From 322129a1807d54cc034cd786a97c99e84ae16db1 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:32:58 -0600 Subject: [PATCH 24/79] make quotes work --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 4610047..e3b90be 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -45,7 +45,7 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$(cygpath -u '$VS_PATH')/Common7/Tools/vsdevcmd.bat" + DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" echo "$(cygpath "$COMSPEC")" echo "/c$(cygpath -w $ROOT/ci/vcvars_export.bat)" From 66015fc33c20df5df633bb7a485e816881744095 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:35:28 -0600 Subject: [PATCH 25/79] Update build.yaml for testing --- .github/workflows/build.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b72cbaf..f937942 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -163,7 +163,6 @@ jobs: run: | export OS="win" source ./ci/setup-env.sh - source ./ci/test.sh source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" shell: bash From c48350d2b4853b7203d3f7543aaf14fe3ec57ca5 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:38:03 -0600 Subject: [PATCH 26/79] MOAR QUOTES --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index e3b90be..0ee929d 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -52,7 +52,7 @@ if [ "$OS" = "win" ]; then echo "$(cygpath -w "$DEVCMD_BAT")" echo "$(cygpath -w "$SHELL")" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w $ROOT/ci/vcvars_export.bat) $(cygpath -w "$DEVCMD_BAT") $(cygpath -w "$SHELL"))" + eval "$($(cygpath "$COMSPEC") /c"$(cygpath -w $ROOT/ci/vcvars_export.bat)" "$(cygpath -w "$DEVCMD_BAT")" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 2dcd301756630286ee7b3b4fcf800e03b126d016 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:44:02 -0600 Subject: [PATCH 27/79] hope this works... --- ci/build.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 0ee929d..0f5f207 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,12 +47,9 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" - echo "$(cygpath "$COMSPEC")" - echo "/c$(cygpath -w $ROOT/ci/vcvars_export.bat)" - echo "$(cygpath -w "$DEVCMD_BAT")" - echo "$(cygpath -w "$SHELL")" + echo "$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") $(cygpath -w "$DEVCMD_BAT") $(cygpath -w "$SHELL")" - eval "$($(cygpath "$COMSPEC") /c"$(cygpath -w $ROOT/ci/vcvars_export.bat)" "$(cygpath -w "$DEVCMD_BAT")" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") $(cygpath -w "$DEVCMD_BAT") $(cygpath -w "$SHELL"))" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From bf2eebb7e7945761f5981ab3c81a9dda115fbff9 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:45:48 -0600 Subject: [PATCH 28/79] hope this worksssssss... --- ci/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 0f5f207..e47af40 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,9 +47,9 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" - echo "$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") $(cygpath -w "$DEVCMD_BAT") $(cygpath -w "$SHELL")" + echo "$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL"\")" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") $(cygpath -w "$DEVCMD_BAT") $(cygpath -w "$SHELL"))" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL")\")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From c4efe4bd96dec7db500dd4866d1a44b2f9629fe8 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:48:13 -0600 Subject: [PATCH 29/79] codebase's haunted --- ci/build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index e47af40..bd139e2 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,9 +47,10 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" - echo "$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL"\")" + DEVCMD="$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL"\")" + echo DEVCMD - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL")\")" + eval "$($DEVCMD)" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 155d7bedd5772a8c6bbf9fe73738e3847b37624e Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:48:30 -0600 Subject: [PATCH 30/79] almost forgot the $ --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index bd139e2..b608f2f 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -48,7 +48,7 @@ if [ "$OS" = "win" ]; then DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" DEVCMD="$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL"\")" - echo DEVCMD + echo $DEVCMD eval "$($DEVCMD)" From 3a77b513d8a3806f890f91bc9086466999e29543 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:50:19 -0600 Subject: [PATCH 31/79] typo --- ci/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index b608f2f..438c2de 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,10 +47,10 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" - DEVCMD="$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL"\")" + DEVCMD="$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL")\"" echo $DEVCMD - eval "$($DEVCMD)" + eval "$($(echo $DEVCMD))" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From bda49f77fcc00323992bced76716bf1d606bd1bc Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 08:54:21 -0600 Subject: [PATCH 32/79] use vcvars --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 438c2de..1fd3f81 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -45,7 +45,7 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vsdevcmd.bat" + DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vcvars64.bat" DEVCMD="$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL")\"" echo $DEVCMD From f11bfe04f8c54ecce2a639ad2ee75a87cec4850c Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:01:12 -0600 Subject: [PATCH 33/79] use vcvars better --- ci/build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 1fd3f81..c6b7361 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -45,9 +45,10 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/Common7/Tools/vcvars64.bat" + DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/VC/Auxiliary/Build/vcvars64.bat" - DEVCMD="$(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$(cygpath -w "$SHELL")\"" + DEVCMD="$(cygpath "$COMSPEC") /C$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$( + cygpath -w "$SHELL")\"" echo $DEVCMD eval "$($(echo $DEVCMD))" From 4a93d646468433fc02951eb336c1c95f4c5ecf6c Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:05:32 -0600 Subject: [PATCH 34/79] use vcvars betterer? --- ci/build.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index c6b7361..2c9e3bc 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -45,13 +45,12 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$(cygpath -u "$(echo $VS_PATH | sed 's/\\/\\\\/g')")/VC/Auxiliary/Build/vcvars64.bat" + DEVCMD_BAT="$VS_PATH\\VC\\Auxiliary\\Build\\vcvars64.bat" - DEVCMD="$(cygpath "$COMSPEC") /C$(cygpath -w "$ROOT/ci/vcvars_export.bat") \"$(cygpath -w "$DEVCMD_BAT")\" \"$( - cygpath -w "$SHELL")\"" + DEVCMD=$(cygpath "$COMSPEC") /C$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$DEVCMD_BAT" "$(cygpath -w "$SHELL")" echo $DEVCMD - eval "$($(echo $DEVCMD))" + eval "$($DEVCMD)" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 2fee38afc4b88793c8c14f597451160b53a2210b Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:08:58 -0600 Subject: [PATCH 35/79] almost there I hopeeeee --- ci/build.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 2c9e3bc..eacf530 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,10 +47,7 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$VS_PATH\\VC\\Auxiliary\\Build\\vcvars64.bat" - DEVCMD=$(cygpath "$COMSPEC") /C$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$DEVCMD_BAT" "$(cygpath -w "$SHELL")" - echo $DEVCMD - - eval "$($DEVCMD)" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 464679ebc8a31ff1c0cebd899356ddadea39a594 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:10:50 -0600 Subject: [PATCH 36/79] why do quotes hate me --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index eacf530..6d7f4cf 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) DEVCMD_BAT="$VS_PATH\\VC\\Auxiliary\\Build\\vcvars64.bat" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$DEVCMD_BAT" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(echo $DEVCMD_BAT)" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From b7e2faaaf2bf3d9d3d42313c10656deb2e71504c Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:13:15 -0600 Subject: [PATCH 37/79] why do quotes hate meeee --- ci/build.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 6d7f4cf..ce4c586 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -45,9 +45,8 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" VS_PATH=$("$VS_WHERE" -latest -property installationPath) - DEVCMD_BAT="$VS_PATH\\VC\\Auxiliary\\Build\\vcvars64.bat" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(echo $DEVCMD_BAT)" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(echo $VS_PATH)\\VC\\Auxiliary\\Build\\vcvars64.bat" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 3f647759ed451ad570e334eb1f0404d503facb24 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:16:21 -0600 Subject: [PATCH 38/79] I'm actually going to go insane --- ci/build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/build.sh b/ci/build.sh index ce4c586..da533f7 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -46,6 +46,9 @@ if [ "$OS" = "win" ]; then VS_PATH=$("$VS_WHERE" -latest -property installationPath) + echo $VS_PATH + echo "$(echo $VS_PATH)\\VC\\Auxiliary\\Build\\vcvars64.bat" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(echo $VS_PATH)\\VC\\Auxiliary\\Build\\vcvars64.bat" "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") From 73cfa4bed744cb43068e6a774dcbf2c4f5c4ec97 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:23:34 -0600 Subject: [PATCH 39/79] refactor to reduce quotation-mark-fuckery --- ci/build.sh | 7 +------ ci/vcvars_export.bat | 7 +++++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index da533f7..201a29b 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -44,12 +44,7 @@ fi if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" - VS_PATH=$("$VS_WHERE" -latest -property installationPath) - - echo $VS_PATH - echo "$(echo $VS_PATH)\\VC\\Auxiliary\\Build\\vcvars64.bat" - - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(echo $VS_PATH)\\VC\\Auxiliary\\Build\\vcvars64.bat" "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(cygpath -w "$SHELL")")" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE diff --git a/ci/vcvars_export.bat b/ci/vcvars_export.bat index 06076a2..111ac63 100644 --- a/ci/vcvars_export.bat +++ b/ci/vcvars_export.bat @@ -1,3 +1,6 @@ @echo off -call %1 > nul -"%2" -c "export -p" \ No newline at end of file + +set "VSPATH=C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -latest -property installationPath" + +call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat" > nul +"%1" -c "export -p" \ No newline at end of file From c867954ab0fa168caf4daa0b1bbd09534a21af10 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:47:37 -0600 Subject: [PATCH 40/79] 24th time's the charm --- ci/vcvars_export.bat | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ci/vcvars_export.bat b/ci/vcvars_export.bat index 111ac63..0cf62fe 100644 --- a/ci/vcvars_export.bat +++ b/ci/vcvars_export.bat @@ -1,6 +1,8 @@ @echo off -set "VSPATH=C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -latest -property installationPath" +set VSWHERE="C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere" -call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat" > nul +for /f "tokens=*" %%i in ('%VSWHERE% -latest -property installationPath') do set VSWHERE2=%%i + +call "%VSWHERE2%\Common7\Tools\VsDevCmd.bat" > nul "%1" -c "export -p" \ No newline at end of file From 39e77940f6f8c785288c2f2aa4685aec0b521f32 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 09:49:51 -0600 Subject: [PATCH 41/79] just hardcode bash, maybe that'll work --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 201a29b..992e8a3 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -44,7 +44,7 @@ fi if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") "$(cygpath -w "$SHELL")")" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") bash)" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE From 25d74c41549449c25f6f6e7fc55bfb6726d810ad Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 10:37:44 -0600 Subject: [PATCH 42/79] Slight cleanup --- ci/build.sh | 2 +- ci/vcvars_export.bat | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 992e8a3..925a067 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -44,7 +44,7 @@ fi if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" - eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat") bash)" + eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") echo $MSBUILD_EXE diff --git a/ci/vcvars_export.bat b/ci/vcvars_export.bat index 0cf62fe..b13ec1a 100644 --- a/ci/vcvars_export.bat +++ b/ci/vcvars_export.bat @@ -1,8 +1,7 @@ @echo off set VSWHERE="C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere" - for /f "tokens=*" %%i in ('%VSWHERE% -latest -property installationPath') do set VSWHERE2=%%i call "%VSWHERE2%\Common7\Tools\VsDevCmd.bat" > nul -"%1" -c "export -p" \ No newline at end of file +bash -c "export -p" \ No newline at end of file From 701f4d82249a4ee70a10d336e107dfb7e15bf964 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 10:41:29 -0600 Subject: [PATCH 43/79] Undo testing changes --- .github/workflows/build.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f937942..0c71d95 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -143,6 +143,8 @@ jobs: version: free - project: osci-render version: premium + - project: sosci + version: premium steps: - name: Fix up git URLs run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig @@ -163,6 +165,7 @@ jobs: run: | export OS="win" source ./ci/setup-env.sh + source ./ci/test.sh source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" shell: bash From f559495c3c9650ad76bf6fda6ec0e555ed842bce Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 10:43:23 -0600 Subject: [PATCH 45/79] Remove backup since it has been obsoleted --- .github/workflows/build.yaml.bak | 185 ------------------------------- 1 file changed, 185 deletions(-) delete mode 100644 .github/workflows/build.yaml.bak diff --git a/.github/workflows/build.yaml.bak b/.github/workflows/build.yaml.bak deleted file mode 100644 index 0c71d95..0000000 --- a/.github/workflows/build.yaml.bak +++ /dev/null @@ -1,185 +0,0 @@ -name: Build -on: - push: - branches: - - main - - develop - workflow_dispatch: -jobs: - build-linux: - name: Build Linux - runs-on: ubuntu-24.04 - strategy: - matrix: - include: - - project: osci-render - version: free - - project: osci-render - version: premium - - project: sosci - version: premium - steps: - - name: Fix up git URLs - run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig - shell: bash - - - uses: actions/checkout@v1 - with: - token: ${{ secrets.ACCESS_TOKEN }} - submodules: true - - - name: "Run script" - run: | - export OS="linux" - source ./ci/setup-env.sh - source ./ci/test.sh - source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" - shell: bash - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: "${{ matrix.project }}-${{ matrix.version }}-linux" - path: bin - retention-days: 7 - build-macos: - name: Build macOS - runs-on: macos-latest - strategy: - matrix: - include: - - project: osci-render - version: free - - project: osci-render - version: premium - - project: sosci - version: premium - steps: - - name: Fix up git URLs - run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig - shell: bash - - - uses: actions/checkout@v1 - with: - token: ${{ secrets.ACCESS_TOKEN }} - submodules: true - - - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: latest - - - name: Import application certificates - uses: apple-actions/import-codesign-certs@v3 - with: - keychain: oscirender - keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} - p12-file-base64: ${{ secrets.APPLE_APPLICATION_CERTIFICATE }} - p12-password: ${{ secrets.APPLE_APPLICATION_CERTIFICATE_PASSWORD }} - - - name: Import installer certificates - uses: apple-actions/import-codesign-certs@v3 - with: - keychain: oscirender - keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} - p12-file-base64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE }} - p12-password: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }} - create-keychain: false - - - name: "Run script" - run: | - export OS="mac" - source ./ci/setup-env.sh - source ./ci/test.sh - source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" - shell: bash - - - name: Download Packages installer build tool - run: wget http://s.sudre.free.fr/files/Packages_1211_dev.dmg - - - name: Mount Packages image - run: hdiutil attach Packages_1211_dev.dmg - - - name: Install Packages - run: sudo installer -pkg /Volumes/Packages\ 1.2.11/Install\ Packages.pkg -target / - - - name: Build installer - run: packagesbuild --project "packaging/${{ matrix.project }}.pkgproj" - - - name: Sign installer - run: | - productsign -s "${{ secrets.APPLE_DEVELOPER_ID_INSTALLER }}" "packaging/build/${{ matrix.project }}.pkg" "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" - pkgutil --check-signature "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" - - - name: Notarize installer - uses: lando/notarize-action@v2 - with: - product-path: "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" - appstore-connect-username: ${{ secrets.APPLE_ID }} - appstore-connect-password: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} - appstore-connect-team-id: ${{ secrets.APPLE_TEAM_ID }} - primary-bundle-id: com.${{ matrix.project }}.pkg - tool: notarytool - verbose: true - - - name: Staple installer - run: xcrun stapler staple "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" - - - name: Check installer - run: spctl -a -vvv -t install "bin/${{ matrix.project }}-${{ matrix.version }}.pkg" - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: "${{ matrix.project }}-${{ matrix.version }}-macos" - path: bin - retention-days: 7 - build-windows: - name: Build Windows - runs-on: windows-latest - strategy: - matrix: - include: - - project: osci-render - version: free - - project: osci-render - version: premium - - project: sosci - version: premium - steps: - - name: Fix up git URLs - run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig - shell: bash - - - uses: actions/checkout@v1 - with: - token: ${{ secrets.ACCESS_TOKEN }} - submodules: true - - - name: Setup NuGet.exe for use with actions - uses: NuGet/setup-nuget@v1.0.5 - - - name: NuGet Sources - run: nuget sources - - - name: "Run script" - run: | - export OS="win" - source ./ci/setup-env.sh - source ./ci/test.sh - source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" - shell: bash - - - name: Compile .ISS to .EXE Installer - uses: Minionguyjpro/Inno-Setup-Action@v1.2.2 - with: - path: "packaging/${{ matrix.project }}.iss" - - - name: Move installer to bin - run: mv "packaging/build/${{ matrix.project }}.exe" "bin/${{ matrix.project }}-${{ matrix.version }}.exe" - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: "${{ matrix.project }}-${{ matrix.version }}-windows" - path: bin - retention-days: 7 From e2e95edab5aaf686295606598edfe6e7a3e86227 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 10:45:29 -0600 Subject: [PATCH 46/79] update submodules --- modules/chowdsp_utils | 2 +- modules/osci_render_core | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/chowdsp_utils b/modules/chowdsp_utils index 17edebc..ffc70ba 160000 --- a/modules/chowdsp_utils +++ b/modules/chowdsp_utils @@ -1 +1 @@ -Subproject commit 17edebcc64d9dc96a9c0b0c7e9b9bd1673a585f9 +Subproject commit ffc70ba399f9afaeefb996eb14e55a1d487270b8 diff --git a/modules/osci_render_core b/modules/osci_render_core index 913c3b0..fedc246 160000 --- a/modules/osci_render_core +++ b/modules/osci_render_core @@ -1 +1 @@ -Subproject commit 913c3b052404818c45ad93c5e6022244d57df5e9 +Subproject commit fedc2463e64e13f1348d49ae6504d31c9db41cc0 From 5659f1234ed309b179d55a54bfc9bf0cf2af1392 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 11:11:32 -0600 Subject: [PATCH 47/79] use 64 bit --- ci/vcvars_export.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/vcvars_export.bat b/ci/vcvars_export.bat index b13ec1a..b4bb8fb 100644 --- a/ci/vcvars_export.bat +++ b/ci/vcvars_export.bat @@ -3,5 +3,5 @@ set VSWHERE="C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere" for /f "tokens=*" %%i in ('%VSWHERE% -latest -property installationPath') do set VSWHERE2=%%i -call "%VSWHERE2%\Common7\Tools\VsDevCmd.bat" > nul +call "%VSWHERE2%\VC\Auxiliary\Build\VCVars64.bat" > nul bash -c "export -p" \ No newline at end of file From f7b4766ef636e794e4077f3bc2a99e482ef7fa91 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 11:30:55 -0600 Subject: [PATCH 48/79] seriously use 64 bit --- ci/build.sh | 2 +- ci/vcvars_export.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 925a067..997ed73 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -46,7 +46,7 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" - MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe") + MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\amd64\MSBuild.exe") echo $MSBUILD_EXE cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" diff --git a/ci/vcvars_export.bat b/ci/vcvars_export.bat index b4bb8fb..bec2fe5 100644 --- a/ci/vcvars_export.bat +++ b/ci/vcvars_export.bat @@ -3,5 +3,5 @@ set VSWHERE="C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere" for /f "tokens=*" %%i in ('%VSWHERE% -latest -property installationPath') do set VSWHERE2=%%i -call "%VSWHERE2%\VC\Auxiliary\Build\VCVars64.bat" > nul +call "%VSWHERE2%\VC\Auxiliary\Build\vcvars64.bat" > nul bash -c "export -p" \ No newline at end of file From cefb11cf24fab44178dd84649bdc4f0184d81c51 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 12:05:37 -0600 Subject: [PATCH 49/79] msbuild is already found --- ci/build.sh | 9 +++------ luajit_win.bat | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 997ed73..51ed8da 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -16,8 +16,8 @@ if [ "$VERSION" = "free" ]; then fi # Resave jucer file -RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" -eval "$RESAVE_COMMAND" +#RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" +#eval "$RESAVE_COMMAND" # Build mac version if [ "$OS" = "mac" ]; then @@ -45,12 +45,9 @@ if [ "$OS" = "win" ]; then VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" - - MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\amd64\MSBuild.exe") - echo $MSBUILD_EXE cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" - "$MSBUILD_EXE" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" + msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi diff --git a/luajit_win.bat b/luajit_win.bat index 0957fc4..e204659 100644 --- a/luajit_win.bat +++ b/luajit_win.bat @@ -15,7 +15,7 @@ goto finish_luajit :error_luajit -timeout /T 10 +timeout 10 :finish_luajit @echo on \ No newline at end of file From 69f4a3cc12fe284a3a5e1276de8313ae91f58311 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 12:25:41 -0600 Subject: [PATCH 50/79] ensure luajit is used by copying lua51.lib to luajit51.lib --- luajit_win.bat | 3 ++- osci-render.jucer | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/luajit_win.bat b/luajit_win.bat index e204659..2d3f553 100644 --- a/luajit_win.bat +++ b/luajit_win.bat @@ -10,7 +10,8 @@ if /I "%VSTEL_MSBuildProjectFullPath:~-18%" neq "SharedCode.vcxproj" ( ) cd ..\..\..\modules\LuaJIT\src -.\msvcbuild.bat static +call .\msvcbuild.bat static +copy /b lua51.lib luajit51.lib goto finish_luajit :error_luajit diff --git a/osci-render.jucer b/osci-render.jucer index 37cbaba..9106fc4 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -708,7 +708,7 @@ + extraLinkerFlags="/IGNORE:4006" externalLibraries="luajit51.lib"> Date: Sun, 17 Aug 2025 12:30:01 -0600 Subject: [PATCH 51/79] uncomment critical code --- ci/build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 51ed8da..2a71792 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -16,8 +16,8 @@ if [ "$VERSION" = "free" ]; then fi # Resave jucer file -#RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" -#eval "$RESAVE_COMMAND" +RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'" +eval "$RESAVE_COMMAND" # Build mac version if [ "$OS" = "mac" ]; then @@ -46,7 +46,7 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" - cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" + cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi From fdd3705a155396946ec227c6c4bff9203843c6b6 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 13:01:54 -0600 Subject: [PATCH 52/79] try adding spout dll to path --- ci/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 2a71792..04cd878 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -46,7 +46,8 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" - cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" + cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" + PATH=$PATH:"$ROOT/External/spout" msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi From 5643a4f01cdf8e3296bdc62754c7a41f8a8a9b92 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 13:07:35 -0600 Subject: [PATCH 53/79] test --- osci-render.jucer | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osci-render.jucer b/osci-render.jucer index 9106fc4..7df48ef 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -716,7 +716,8 @@ + prebuildCommand="..\..\..\luajit_win.bat" enablePluginBinaryCopyStep="0" + postbuildCommand="ls .\x64\Release\VST3"/> From 607482e5f1c0731954fb5ffbbf8a6e8177b85df0 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 13:14:33 -0600 Subject: [PATCH 54/79] tesst --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0c71d95..0f3ddca 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -165,8 +165,8 @@ jobs: run: | export OS="win" source ./ci/setup-env.sh - source ./ci/test.sh source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" + source ./ci/test.sh shell: bash - name: Compile .ISS to .EXE Installer From 54559163484053db0aa698160a00e62cd46b1139 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 13:27:08 -0600 Subject: [PATCH 55/79] error handler --- osci-render.jucer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osci-render.jucer b/osci-render.jucer index 7df48ef..8b1ba2c 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -717,7 +717,7 @@ debugInformationFormat="ProgramDatabase" winWarningLevel="2" libraryPath="..\..\..\modules\LuaJIT\src" headerPath="..\..\..\modules\LuaJIT\src" prebuildCommand="..\..\..\luajit_win.bat" enablePluginBinaryCopyStep="0" - postbuildCommand="ls .\x64\Release\VST3"/> + postbuildCommand="if exist .\x64\Release\VST3 ( ls .\x64\Release\VST3 )"/> From c71c47564bcf95007b4484b20564a89007cae702 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 13:29:18 -0600 Subject: [PATCH 56/79] error handler 2 --- osci-render.jucer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osci-render.jucer b/osci-render.jucer index 8b1ba2c..8661421 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -717,7 +717,7 @@ debugInformationFormat="ProgramDatabase" winWarningLevel="2" libraryPath="..\..\..\modules\LuaJIT\src" headerPath="..\..\..\modules\LuaJIT\src" prebuildCommand="..\..\..\luajit_win.bat" enablePluginBinaryCopyStep="0" - postbuildCommand="if exist .\x64\Release\VST3 ( ls .\x64\Release\VST3 )"/> + postbuildCommand="if exist .\x64\Release\VST3\ ( ls .\x64\Release\VST3\ )"/> From 133370c8802bc5b53082c23ee117e8d076708b9e Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 14:23:55 -0600 Subject: [PATCH 57/79] error handler 3 --- osci-render.jucer | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/osci-render.jucer b/osci-render.jucer index 8661421..25b0eb5 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -712,12 +712,11 @@ + prebuildCommand="call ..\..\..\luajit_win.bat"/> + prebuildCommand="call ..\..\..\luajit_win.bat" enablePluginBinaryCopyStep="0"/> From 9e9e09451b875bc295a0af777b6932a2b960008e Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Sun, 17 Aug 2025 15:28:21 -0600 Subject: [PATCH 58/79] revert debugging change --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0f3ddca..0c71d95 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -165,8 +165,8 @@ jobs: run: | export OS="win" source ./ci/setup-env.sh - source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" source ./ci/test.sh + source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" shell: bash - name: Compile .ISS to .EXE Installer From 057e8e7983b8da382b2e570ce673eeec3cf64a06 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:23:21 -0600 Subject: [PATCH 59/79] address requested changes --- ci/build.sh | 1 - osci-render.jucer | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 04cd878..908bbae 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,6 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" - PATH=$PATH:"$ROOT/External/spout" msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi diff --git a/osci-render.jucer b/osci-render.jucer index 25b0eb5..5daac06 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -757,13 +757,13 @@ + codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/> + codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/> + codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/> From 330a8b9601c9bd164ed49d9574b84a06146dcea7 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:27:12 -0600 Subject: [PATCH 60/79] Possibly correct variable for MacOS --- luajit_linux_macos.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 96daf12..ecf9a11 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -3,9 +3,9 @@ # Run this if you're on Linux or macOS and you haven't already built LuaJIT. # If you don't, osci-render won't compile. -cd "$DIR/modules/LuaJIT/src" || exit 1 +cd "$ROOT/modules/LuaJIT/src" || exit 1 -if [[ "$OSTYPE" == "darwin"* ]]; then +if [[ "$OSTYPE" == *"darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." # Build x86_64 @@ -31,7 +31,7 @@ if [[ "$OSTYPE" == "darwin"* ]]; then # Merge into fat binary lipo -create -output libluajit.a libluajit_x86_64.a libluajit_arm64.a - echo "✅ Universal libluajit.a created." + echo "Universal libluajit.a created." else echo "Building LuaJIT for Linux..." From 385ce5d5a39cc7330f3a2fcc7be08b562c29210b Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:29:27 -0600 Subject: [PATCH 61/79] DEBUG - REVERT LATER - Don't import certs --- .github/workflows/build.yaml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0c71d95..b31df99 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -68,23 +68,6 @@ jobs: with: xcode-version: latest - - name: Import application certificates - uses: apple-actions/import-codesign-certs@v3 - with: - keychain: oscirender - keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} - p12-file-base64: ${{ secrets.APPLE_APPLICATION_CERTIFICATE }} - p12-password: ${{ secrets.APPLE_APPLICATION_CERTIFICATE_PASSWORD }} - - - name: Import installer certificates - uses: apple-actions/import-codesign-certs@v3 - with: - keychain: oscirender - keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} - p12-file-base64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE }} - p12-password: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }} - create-keychain: false - - name: "Run script" run: | export OS="mac" From 51d3d01a97ba44eb2691138cea8843b57ef68097 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:33:35 -0600 Subject: [PATCH 62/79] use relative directory for MacOS --- luajit_linux_macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index ecf9a11..e879d56 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -3,7 +3,7 @@ # Run this if you're on Linux or macOS and you haven't already built LuaJIT. # If you don't, osci-render won't compile. -cd "$ROOT/modules/LuaJIT/src" || exit 1 +cd "../../../modules/LuaJIT/src" || exit 1 if [[ "$OSTYPE" == *"darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." From a64a376e02c4de9dea52480248b16dcce114e7cb Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:34:42 -0600 Subject: [PATCH 63/79] use more exit codes --- luajit_linux_macos.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index e879d56..ce6915c 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -14,7 +14,7 @@ if [[ "$OSTYPE" == *"darwin"* ]]; then MACOSX_DEPLOYMENT_TARGET=10.13 \ CC="clang -arch x86_64" \ XCFLAGS="-DLUAJIT_ENABLE_GC64" \ - || exit 1 + || exit 2 mv libluajit.a libluajit_x86_64.a make clean @@ -25,7 +25,7 @@ if [[ "$OSTYPE" == *"darwin"* ]]; then MACOSX_DEPLOYMENT_TARGET=10.13 \ CC="clang -arch arm64" \ XCFLAGS="-DLUAJIT_ENABLE_GC64" \ - || exit 1 + || exit 3 mv libluajit.a libluajit_arm64.a From 7ba7f07755f3895ae3814754b664dc93632da96f Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:35:06 -0600 Subject: [PATCH 64/79] DEBUG - REVERT LATER - Don't compile Sosci on macOS --- .github/workflows/build.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b31df99..9730edc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -52,8 +52,6 @@ jobs: version: free - project: osci-render version: premium - - project: sosci - version: premium steps: - name: Fix up git URLs run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig From 23e8f5d2fa78ead3c41018b513c684739a084820 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 12:36:10 -0600 Subject: [PATCH 65/79] revert relative directory for now --- luajit_linux_macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index ce6915c..9f50967 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -3,7 +3,7 @@ # Run this if you're on Linux or macOS and you haven't already built LuaJIT. # If you don't, osci-render won't compile. -cd "../../../modules/LuaJIT/src" || exit 1 +cd "$DIR/modules/LuaJIT/src" || exit 1 if [[ "$OSTYPE" == *"darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." From e171314e8dc6dec026dfa662acbc68f8eae19761 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:00:07 -0600 Subject: [PATCH 66/79] possible macos fix --- luajit_linux_macos.sh | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 9f50967..0420eda 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -8,24 +8,27 @@ cd "$DIR/modules/LuaJIT/src" || exit 1 if [[ "$OSTYPE" == *"darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." - # Build x86_64 + make clean + + export MACOSX_DEPLOYMENT_TARGET=10.13 + + # build x86_64 make -j$(sysctl -n hw.logicalcpu) \ + LUAJIT_T=luajit-x86_64 \ BUILDMODE=static \ - MACOSX_DEPLOYMENT_TARGET=10.13 \ - CC="clang -arch x86_64" \ - XCFLAGS="-DLUAJIT_ENABLE_GC64" \ - || exit 2 - + CC='clang -target x86_64-apple-macos' \ + || exit 2 + mv libluajit.a libluajit_x86_64.a + make clean # Build arm64 make -j$(sysctl -n hw.logicalcpu) \ + LUAJIT_T=luajit-arm64 \ BUILDMODE=static \ - MACOSX_DEPLOYMENT_TARGET=10.13 \ - CC="clang -arch arm64" \ - XCFLAGS="-DLUAJIT_ENABLE_GC64" \ - || exit 3 + CC='clang -target arm64-apple-macos' \ + || exit 3 mv libluajit.a libluajit_arm64.a From 4bf773f5ff02c2af3e25e08ed6ebc33f353db507 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:02:11 -0600 Subject: [PATCH 67/79] shorten output of ci script by like 8000 lines --- ci/setup-env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/setup-env.sh b/ci/setup-env.sh index da97dda..5f54f55 100755 --- a/ci/setup-env.sh +++ b/ci/setup-env.sh @@ -31,7 +31,7 @@ fi curl -s -S -L "https://api.juce.com/api/v1/download/juce/latest/$PROJUCER_OS" -o Projucer.zip # curl -s -S -L "https://github.com/juce-framework/JUCE/releases/download/8.0.4/juce-8.0.4-$PROJUCER_OS.zip" -o Projucer.zip -unzip Projucer.zip +unzip -q Projucer.zip # Set Projucer path based on OS if [ "$OS" = "mac" ]; then From ccc15e5c577ad1fea5e6494322e22807ed7ebbd7 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:02:26 -0600 Subject: [PATCH 68/79] TEMPORARY - shorten run cycle --- .github/workflows/build.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9730edc..db1f02a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -70,7 +70,6 @@ jobs: run: | export OS="mac" source ./ci/setup-env.sh - source ./ci/test.sh source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" shell: bash From e697a9b93925404eb4c1b3b1aed44b9e271aed0a Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:05:38 -0600 Subject: [PATCH 69/79] increase macos logging --- luajit_linux_macos.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 0420eda..c582f31 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -5,6 +5,8 @@ cd "$DIR/modules/LuaJIT/src" || exit 1 +echo "Building LuaJIT for $OSTYPE..." + if [[ "$OSTYPE" == *"darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." @@ -37,6 +39,5 @@ if [[ "$OSTYPE" == *"darwin"* ]]; then echo "Universal libluajit.a created." else - echo "Building LuaJIT for Linux..." make -j$(nproc) BUILDMODE=static XCFLAGS="-fPIC" fi From 61311874de8743266aa2b7ba91c0a6b1e7047fa8 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:09:52 -0600 Subject: [PATCH 70/79] increase macos logging further --- luajit_linux_macos.sh | 4 +--- osci-render.jucer | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index c582f31..9ce3be7 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -5,9 +5,7 @@ cd "$DIR/modules/LuaJIT/src" || exit 1 -echo "Building LuaJIT for $OSTYPE..." - -if [[ "$OSTYPE" == *"darwin"* ]]; then +if [[ "$OSTYPE" == "darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." make clean diff --git a/osci-render.jucer b/osci-render.jucer index 5daac06..dc1e505 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -6,7 +6,7 @@ cppLanguageStandard="20" projectLineFeed=" " headerPath="./include" version="2.5.1.1" companyName="James H Ball" companyWebsite="https://osci-render.com" companyEmail="james@ball.sh" defines="NOMINMAX=1 INTERNET_FLAG_NO_AUTO_REDIRECT=0 OSCI_PREMIUM=1 JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 JUCE_MODAL_LOOPS_PERMITTED=1" - pluginAUMainType="'aumf'" postExportShellCommandPosix="DIR=%%1%% %%1%%/luajit_linux_macos.sh "> + pluginAUMainType="'aumf'" postExportShellCommandPosix="echo "Building LuaJIT for $OSTYPE..." && DIR=%%1%% %%1%%/luajit_linux_macos.sh "> From bffd3280374f1eb12805f89894753c6d2097330e Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:20:50 -0600 Subject: [PATCH 71/79] use multithreading to compile on all systems --- ci/build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 908bbae..720620a 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -22,13 +22,13 @@ eval "$RESAVE_COMMAND" # Build mac version if [ "$OS" = "mac" ]; then cd "$ROOT/Builds/$PLUGIN/MacOSX" - xcodebuild -configuration Release || exit 1 + xcodebuild -configuration Release -parallelizeTargets -jobs $(sysctl -n hw.logicalcpu) || exit 1 fi # Build linux version if [ "$OS" = "linux" ]; then cd "$ROOT/Builds/$PLUGIN/LinuxMakefile" - make CONFIG=Release + make -J$(nproc) CONFIG=Release cp -r ./build/$PLUGIN.vst3 "$ROOT/ci/bin/$PLUGIN.vst3" cp -r ./build/$PLUGIN "$ROOT/ci/bin/$PLUGIN" @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" - msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" + msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" -maxcpucount cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi From dfd4e4621320dc94220df8229c62b7f5856cd10b Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:30:28 -0600 Subject: [PATCH 72/79] use multithreading to compile on all systems including in tests --- ci/test.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/test.sh b/ci/test.sh index c59ce08..9dbd6f6 100755 --- a/ci/test.sh +++ b/ci/test.sh @@ -9,7 +9,7 @@ eval "$RESAVE_COMMAND" # Build mac version if [ "$OS" = "mac" ]; then cd "$ROOT/Builds/Test/MacOSX" - xcodebuild -configuration Release || exit 1 + xcodebuild -configuration Release -parallelizeTargets -jobs $(sysctl -n hw.logicalcpu) || exit 1 cd "build/Release" find . echo "Running the test" @@ -20,7 +20,7 @@ fi # Build linux version if [ "$OS" = "linux" ]; then cd "$ROOT/Builds/Test/LinuxMakefile" - make CONFIG=Release + make -J$(nproc) CONFIG=Release cd build echo "Running the test" @@ -36,7 +36,7 @@ if [ "$OS" = "win" ]; then echo $MSBUILD_EXE cd "$ROOT/Builds/Test/VisualStudio2022" - "$MSBUILD_EXE" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" + "$MSBUILD_EXE" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" -maxcpucount cd "x64/Release/ConsoleApp" echo "Running the test" From af3ba99507fd2707248ffa93944801d935e18dda Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:38:59 -0600 Subject: [PATCH 73/79] use multithreading to compile on all systems including in tests but for real --- ci/build.sh | 4 ++-- ci/test.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 720620a..9ecc02d 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -28,7 +28,7 @@ fi # Build linux version if [ "$OS" = "linux" ]; then cd "$ROOT/Builds/$PLUGIN/LinuxMakefile" - make -J$(nproc) CONFIG=Release + make -j$(nproc) CONFIG=Release cp -r ./build/$PLUGIN.vst3 "$ROOT/ci/bin/$PLUGIN.vst3" cp -r ./build/$PLUGIN "$ROOT/ci/bin/$PLUGIN" @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" - msbuild.exe "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" -maxcpucount + msbuild.exe "//m" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//p:MultiProcessorCompilation=true" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi diff --git a/ci/test.sh b/ci/test.sh index 9dbd6f6..3ff9a97 100755 --- a/ci/test.sh +++ b/ci/test.sh @@ -20,7 +20,7 @@ fi # Build linux version if [ "$OS" = "linux" ]; then cd "$ROOT/Builds/Test/LinuxMakefile" - make -J$(nproc) CONFIG=Release + make -j$(nproc) CONFIG=Release cd build echo "Running the test" @@ -36,7 +36,7 @@ if [ "$OS" = "win" ]; then echo $MSBUILD_EXE cd "$ROOT/Builds/Test/VisualStudio2022" - "$MSBUILD_EXE" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" -maxcpucount + "$MSBUILD_EXE" "//m" "$PLUGIN.sln" "//p:MultiProcessorCompilation=true" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" cd "x64/Release/ConsoleApp" echo "Running the test" From 620f712c58db6ba4717e5eeb6398ab940355a330 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:54:12 -0600 Subject: [PATCH 74/79] increase windows threading --- ci/build.sh | 2 +- ci/test.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 9ecc02d..98e9dc9 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" - msbuild.exe "//m" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//p:MultiProcessorCompilation=true" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" + msbuild.exe "//m" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//p:MultiProcessorCompilation=true" "//p:CL_MPCount=16" "/p:BuildInParallel=true" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi diff --git a/ci/test.sh b/ci/test.sh index 3ff9a97..8efdb1d 100755 --- a/ci/test.sh +++ b/ci/test.sh @@ -36,7 +36,7 @@ if [ "$OS" = "win" ]; then echo $MSBUILD_EXE cd "$ROOT/Builds/Test/VisualStudio2022" - "$MSBUILD_EXE" "//m" "$PLUGIN.sln" "//p:MultiProcessorCompilation=true" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" + "$MSBUILD_EXE" "//m" "$PLUGIN.sln" "//p:MultiProcessorCompilation=true" "//p:CL_MPCount=32" "//p:VisualStudioVersion=16.0" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" cd "x64/Release/ConsoleApp" echo "Running the test" From d89d33ecc69b86ae164cf83609b614b0000bb9ea Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 13:57:57 -0600 Subject: [PATCH 75/79] typo --- ci/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 98e9dc9..ac10525 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -47,7 +47,7 @@ if [ "$OS" = "win" ]; then eval "$($(cygpath "$COMSPEC") /c$(cygpath -w "$ROOT/ci/vcvars_export.bat"))" cd "$ROOT/Builds/$PLUGIN/VisualStudio2022" - msbuild.exe "//m" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//p:MultiProcessorCompilation=true" "//p:CL_MPCount=16" "/p:BuildInParallel=true" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" + msbuild.exe "//m" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//p:MultiProcessorCompilation=true" "//p:CL_MPCount=16" "//p:BuildInParallel=true" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64" "//restore" "//p:RestorePackagesConfig=true" cp "$ROOT/Builds/$PLUGIN/VisualStudio2022/x64/Release/Standalone Plugin/$PLUGIN.pdb" "$ROOT/bin/$OUTPUT_NAME.pdb" fi From 2600fbf1b8389326f7304c48ee60d943d351380e Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Mon, 18 Aug 2025 14:20:31 -0600 Subject: [PATCH 76/79] revert debug test changes --- .github/workflows/build.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index db1f02a..9f6d6db 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -52,6 +52,8 @@ jobs: version: free - project: osci-render version: premium + - project: sosci + version: premium steps: - name: Fix up git URLs run: echo -e '[url "https://github.com/"]\n insteadOf = "git@github.com:"' >> ~/.gitconfig @@ -65,11 +67,29 @@ jobs: - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: latest + + - name: Import application certificates + uses: apple-actions/import-codesign-certs@v3 + with: + keychain: oscirender + keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} + p12-file-base64: ${{ secrets.APPLE_APPLICATION_CERTIFICATE }} + p12-password: ${{ secrets.APPLE_APPLICATION_CERTIFICATE_PASSWORD }} + + - name: Import installer certificates + uses: apple-actions/import-codesign-certs@v3 + with: + keychain: oscirender + keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} + p12-file-base64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE }} + p12-password: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }} + create-keychain: false - name: "Run script" run: | export OS="mac" source ./ci/setup-env.sh + source ./ci/test.sh source ./ci/build.sh "${{ matrix.project }}" "${{ matrix.version }}" shell: bash From 3bf31d519f1d7ccc0353910b288e1e9db8e91c6f Mon Sep 17 00:00:00 2001 From: James H Ball Date: Mon, 18 Aug 2025 22:19:26 +0100 Subject: [PATCH 77/79] Increment version --- osci-render.jucer | 2 +- sosci.jucer | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/osci-render.jucer b/osci-render.jucer index 11df168..76af580 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -4,7 +4,7 @@ addUsingNamespaceToJuceHeader="0" jucerFormatVersion="1" pluginCharacteristicsValue="pluginWantsMidiIn" pluginManufacturer="jameshball" aaxIdentifier="sh.ball.oscirender" cppLanguageStandard="20" projectLineFeed=" " headerPath="./include" - version="2.5.1.1" companyName="James H Ball" companyWebsite="https://osci-render.com" + version="2.6.0.0" companyName="James H Ball" companyWebsite="https://osci-render.com" companyEmail="james@ball.sh" defines="NOMINMAX=1 INTERNET_FLAG_NO_AUTO_REDIRECT=0 OSCI_PREMIUM=1 JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1 JUCE_MODAL_LOOPS_PERMITTED=1" pluginAUMainType="'aumf'"> diff --git a/sosci.jucer b/sosci.jucer index 87bab75..da847e8 100644 --- a/sosci.jucer +++ b/sosci.jucer @@ -3,7 +3,7 @@ From aa3facbd9746b2bae8568384f927af6a4ec14fd3 Mon Sep 17 00:00:00 2001 From: DJLevel3 Date: Tue, 19 Aug 2025 08:24:35 -0600 Subject: [PATCH 78/79] Patch a crash in Sosci due to missing submenu --- Source/components/SosciMainMenuBarModel.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/components/SosciMainMenuBarModel.cpp b/Source/components/SosciMainMenuBarModel.cpp index 324f8dd..4a52642 100644 --- a/Source/components/SosciMainMenuBarModel.cpp +++ b/Source/components/SosciMainMenuBarModel.cpp @@ -8,10 +8,13 @@ SosciMainMenuBarModel::SosciMainMenuBarModel(SosciPluginEditor& e, SosciAudioPro } void SosciMainMenuBarModel::resetMenuItems() { + MainMenuBarModel::resetMenuItems(); + addTopLevelMenu("File"); addTopLevelMenu("About"); addTopLevelMenu("Video"); addTopLevelMenu("Audio"); + addTopLevelMenu("Interface"); std::vector> examples = { {"default.sosci", BinaryData::default_sosci, BinaryData::default_sosciSize}, @@ -111,8 +114,7 @@ void SosciMainMenuBarModel::resetMenuItems() { } // Interface menu index depends on whether Audio menu exists - int interfaceMenuIndex = (editor.processor.wrapperType == juce::AudioProcessor::WrapperType::wrapperType_Standalone) ? 4 : 3; - addToggleMenuItem(interfaceMenuIndex, "Listen for Special Keys", [this] { + addToggleMenuItem(4, "Listen for Special Keys", [this] { processor.setAcceptsKeys(! processor.getAcceptsKeys()); resetMenuItems(); }, [this] { return processor.getAcceptsKeys(); }); From 3bb2815f4b7c789b44bf4b4f7fd9428760428555 Mon Sep 17 00:00:00 2001 From: James H Ball Date: Fri, 22 Aug 2025 19:47:48 +0100 Subject: [PATCH 79/79] Update build script to be idempotent on mac --- .gitmodules | 1 + luajit_linux_macos.sh | 81 +++++++++++++++++++++++++++---------------- osci-render.jucer | 2 +- 3 files changed, 53 insertions(+), 31 deletions(-) diff --git a/.gitmodules b/.gitmodules index 16f29de..3979b29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,4 @@ [submodule "LuaJIT"] path = modules/LuaJIT url = https://luajit.org/git/luajit.git + ignore = untracked diff --git a/luajit_linux_macos.sh b/luajit_linux_macos.sh index 9ce3be7..9e709de 100755 --- a/luajit_linux_macos.sh +++ b/luajit_linux_macos.sh @@ -1,41 +1,62 @@ #!/bin/bash -# Run this if you're on Linux or macOS and you haven't already built LuaJIT. -# If you don't, osci-render won't compile. +# Build LuaJIT for Linux or macOS (produces universal static lib on macOS). +# Safe to run multiple times; always re-build cleanly for each architecture. -cd "$DIR/modules/LuaJIT/src" || exit 1 +set -euo pipefail + +# Resolve DIR (allow user override). Prefer script directory so you can invoke from anywhere. +: "${DIR:=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" + +LUAJIT_SRC="$DIR/modules/LuaJIT/src" +if [[ ! -d "$LUAJIT_SRC" ]]; then + echo "Error: LuaJIT source directory not found: $LUAJIT_SRC" >&2 + echo "(Did you forget to init submodules or place LuaJIT under modules/LuaJIT?)" >&2 + exit 1 +fi + +cd "$LUAJIT_SRC" if [[ "$OSTYPE" == "darwin"* ]]; then echo "Building LuaJIT universal binary (x86_64 + arm64)..." - - make clean - - export MACOSX_DEPLOYMENT_TARGET=10.13 - - # build x86_64 - make -j$(sysctl -n hw.logicalcpu) \ - LUAJIT_T=luajit-x86_64 \ - BUILDMODE=static \ - CC='clang -target x86_64-apple-macos' \ - || exit 2 - - mv libluajit.a libluajit_x86_64.a - - make clean - - # Build arm64 - make -j$(sysctl -n hw.logicalcpu) \ - LUAJIT_T=luajit-arm64 \ - BUILDMODE=static \ - CC='clang -target arm64-apple-macos' \ - || exit 3 - mv libluajit.a libluajit_arm64.a - - # Merge into fat binary + # Allow caller to override; default minimum version. + export MACOSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET:-10.13}" + CPUs=$(sysctl -n hw.logicalcpu) + + # Remove any previous fat/intermediate libs to avoid accidental reuse. + rm -f libluajit_x86_64.a libluajit_arm64.a libluajit.a + + # Function to build one architecture. + build_arch() { + local ARCH="$1" TARGET_NAME="$2" + echo "-- Building $ARCH ..." + make clean || true # ignore if already clean + MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET \ + make -j"$CPUs" \ + LUAJIT_T="$TARGET_NAME" \ + BUILDMODE=static \ + CC="clang -arch $ARCH -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET" \ + XCFLAGS="-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET" \ + || { echo "Build failed for $ARCH" >&2; exit 2; } + mv libluajit.a "libluajit_${ARCH}.a" + echo "-- Built $ARCH OK" + } + + build_arch x86_64 luajit-x86_64 + build_arch arm64 luajit-arm64 + + echo "-- Creating universal libluajit.a" lipo -create -output libluajit.a libluajit_x86_64.a libluajit_arm64.a + lipo -info libluajit.a || true echo "Universal libluajit.a created." - else - make -j$(nproc) BUILDMODE=static XCFLAGS="-fPIC" + # Linux path + CPUs="${NPROC:-$(getconf _NPROCESSORS_ONLN 2>/dev/null || nproc 2>/dev/null || echo 1)}" + echo "Building LuaJIT static library for Linux with $CPUs threads..." + make clean || true + make -j"$CPUs" BUILDMODE=static XCFLAGS="-fPIC" + echo "Linux libluajit.a built." fi + +echo "Done." diff --git a/osci-render.jucer b/osci-render.jucer index 420fbdc..89c9070 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -759,7 +759,7 @@ bigIcon="aZXbCi" applicationCategory="public.app-category.music" microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks" extraCustomFrameworks="/Library/Frameworks/Syphon.framework" - hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.allow-jit,com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" + hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.allow-jit,com.apple.security.cs.allow-unsigned-executable-memory,com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input" externalLibraries="luajit" iosDevelopmentTeamID="D86A3M3H2L">