diff --git a/.github/workflows/build-mac.yml b/.github/workflows/build-mac.yml
new file mode 100644
index 0000000..5acc3db
--- /dev/null
+++ b/.github/workflows/build-mac.yml
@@ -0,0 +1,171 @@
+name: Build macOS
+
+on:
+ workflow_dispatch:
+ push:
+
+concurrency:
+ group: ${{github.ref}}
+ cancel-in-progress: true
+
+env:
+ PROJECT_NAME: TemplateProject
+ BUILD_DIR: build-mac
+ ARTIFACT_EXT: mac
+ PLUGINVAL_VER: v1.0.2
+ VST3_VER: v3.7.9_build_61
+ CLAP_VER: v1.2.5
+
+jobs:
+ build-mac:
+ name: Build macOS
+ runs-on: macos-latest
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v3.3.0
+ with:
+ submodules: recursive
+
+ - name: Cache Prebuilt Libs
+ id: cache-deps
+ uses: actions/cache@v3
+ with:
+ path: |
+ iPlug2/Dependencies/Build
+ iPlug2/Dependencies/iPlug
+ key: ${{runner.os}}-deps-${{hashFiles('iPlug2/Dependencies/download-prebuilt-libs.sh', 'iPlug2/Dependencies/IGraphics/build-igraphics-libs-mac.sh', 'iPlug2/Dependencies/IGraphics/build-skia-mac.sh')}}
+
+ - name: Get Prebuilt Libs
+ if: steps.cache-deps.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ cd iPlug2/Dependencies
+ ./download-prebuilt-libs.sh
+
+ - name: Cache VST3 SDK
+ id: cache-vst3
+ uses: actions/cache@v3
+ with:
+ path: |
+ iPlug2/Dependencies/IPlug/VST3_SDK
+ key: ${{runner.os}}-vst3-${{env.VST3_VER}}
+
+ - name: Get VST3 SDK
+ if: steps.cache-vst3.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ cd iPlug2/Dependencies/IPlug
+ ./download-vst3-sdk.sh ${{env.VST3_VER}} build-validator
+
+ - name: Cache CLAP SDK
+ id: cache-clap
+ uses: actions/cache@v3
+ with:
+ path: |
+ iPlug2/Dependencies/IPlug/CLAP_SDK
+ key: ${{runner.os}}-clap-${{env.CLAP_VER}}
+
+ - name: Get CLAP SDK
+ if: steps.cache-clap.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ cd iPlug2/Dependencies/IPlug
+ ./download-clap-sdks.sh ${{env.CLAP_VER}}
+
+ - name: Get VST2 SDK
+ shell: bash
+ env:
+ VST2_SDK: ${{secrets.VST2_SDK}}
+ run: |
+ mkdir tmp
+ echo $VST2_SDK | base64 -d > tmp/tmp.zip
+ unzip tmp/tmp.zip -d tmp
+ mv tmp/VST2_SDK/* iPlug2/Dependencies/IPlug/VST2_SDK
+
+ - name: Build
+ shell: bash
+ run: |
+ cd ${{env.PROJECT_NAME}}/scripts
+ ./makedist-mac.sh full zip
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{env.PROJECT_NAME}}-${{env.ARTIFACT_EXT}}
+ path: |
+ ${{env.PROJECT_NAME}}/${{env.BUILD_DIR}}/out
+
+ test-mac:
+ name: Test macOS
+ runs-on: macos-latest
+ needs: build-mac
+
+ steps:
+ - name: Download artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{env.PROJECT_NAME}}-${{env.ARTIFACT_EXT}}
+
+ - name: Unzip files
+ shell: bash
+ run: |
+ unzip *-${{env.ARTIFACT_EXT}}.zip
+ unzip *-${{env.ARTIFACT_EXT}}-auval.zip
+
+ - name: Cache Pluginval
+ id: cache-pluginval
+ uses: actions/cache@v3
+ with:
+ path: |
+ ./pluginval.app
+ key: ${{runner.os}}-pluginval-${{env.PLUGINVAL_VER}}
+
+ - name: Get Pluginval
+ if: steps.cache-pluginval.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ curl -L "https://github.com/Tracktion/pluginval/releases/download/${{env.PLUGINVAL_VER}}/pluginval_macOS.zip" -o pluginval.zip
+ unzip pluginval
+
+ - name: Restore VST3 SDK
+ id: cache-vst3
+ uses: actions/cache/restore@v3
+ with:
+ path: |
+ iPlug2/Dependencies/IPlug/VST3_SDK
+ key: ${{runner.os}}-vst3-${{env.VST3_VER}}
+
+ - name: Test VST3 with VST3 Validator
+ shell: bash
+ run: |
+ ./iPlug2/Dependencies/IPlug/VST3_SDK/validator ${{env.PROJECT_NAME}}.vst3
+
+ - name: Test VST3 with Pluginval
+ shell: bash
+ run: |
+ pluginval.app/Contents/MacOS/pluginval --skip-gui-tests --validate-in-process --output-dir "./bin" --validate ${{env.PROJECT_NAME}}.vst3 || exit 1
+
+ - name: Test AUv2 with Pluginval
+ shell: bash
+ run: |
+ mkdir -p ~/Library/Audio/Plug-Ins/Components
+ mv ${{env.PROJECT_NAME}}.component ~/Library/Audio/Plug-Ins/Components
+ pgrep -x AudioComponentRegistrar >/dev/null && killall -9 AudioComponentRegistrar; echo "killed AudioComponentRegistrar" || echo "AudioComponentRegistrar Process not found"
+ pluginval.app/Contents/MacOS/pluginval --skip-gui-tests --validate-in-process --output-dir "./bin" --validate ~/Library/Audio/Plug-Ins/Components/${{env.PROJECT_NAME}}.component || exit 1
+
+ - name: Test AUv2 with auval
+ shell: bash
+ run: |
+ ./validate_audiounit.sh config.h
+
+ # - name: Test AUv2 with auval (RTSafe)
+ # shell: bash
+ # run: |
+ # ./validate_audiounit.sh config.h rtsafe
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{env.PROJECT_NAME}}-${{env.ARTIFACT_EXT}}-pluginval
+ path: ./bin
diff --git a/.github/workflows/build-native.yml b/.github/workflows/build-native.yml
index a5b527e..70e1bde 100644
--- a/.github/workflows/build-native.yml
+++ b/.github/workflows/build-native.yml
@@ -1,8 +1,8 @@
name: Build Native
on:
- # workflow_dispatch
- push:
+ workflow_dispatch
+ # push:
# tags:
# - "v*"
diff --git a/.gitignore b/.gitignore
index e52a453..bdfaef8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,9 @@
.DS_Store
xcuserdata
*.RPP-bak
-build-*
-
+build-mac/
+build-win/
+build-web/
*.ipch
*.db
*.suo
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..eaf91e2
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..5365752
--- /dev/null
+++ b/.idea/appInsightsSettings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 0000000..0871431
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,1245 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..ea4e5d0
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..df5f35d
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml
new file mode 100644
index 0000000..81c3e56
--- /dev/null
+++ b/.idea/deviceManager.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..647b5ed
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4185616
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/scratch_sh.xml b/.idea/runConfigurations/scratch_sh.xml
new file mode 100644
index 0000000..5fac07b
--- /dev/null
+++ b/.idea/runConfigurations/scratch_sh.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..d933560
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..1785994
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "associatedIndex": 6
+}
+
+
+
+
+
+
+
+
+
+ 1759222514726
+
+
+ 1759222514726
+
+
+
+
\ No newline at end of file
diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json
new file mode 100644
index 0000000..b11371a
--- /dev/null
+++ b/.vs/ProjectSettings.json
@@ -0,0 +1,3 @@
+{
+ "CurrentProjectSetting": "No Configurations"
+}
\ No newline at end of file
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
new file mode 100644
index 0000000..1eccfe6
Binary files /dev/null and b/.vs/slnx.sqlite differ
diff --git a/README.md b/README.md
index 1641cca..6180846 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
This is the iPlug2 template project and an example of how to set up an iPlug2 project to build "out of source", which is desirable when you need to keep all your project dependencies synchronised with version control and build on Cloud CI/CD. It set up for "containerized development" using [VSCode](https://code.visualstudio.com/docs/devcontainers/containers) and [github codespaces](https://github.com/features/codespaces).
-Instead of using the common-mac.xcconfig and common-win.xcconfig in the iPlug2 folder, it uses copies of them at the top level of the iPlug2OOS repo. This means the iPlug2 submodule itself does not have to be modified.
+Instead of using the common-mac.config and common-win.xcconfig in the iPlug2 folder, it uses copies of them at the top level of the iPlug2OOS repo. This means the iPlug2 submodule itself does not have to be modified.
https://github.com/iPlug2/iPlug2/wiki/Out-of-source-builds
diff --git a/TemplateProject/projects/TemplateProject-iOS.xcodeproj/project.pbxproj b/TemplateProject/projects/TemplateProject-iOS.xcodeproj/project.pbxproj
index c036da3..8e0d334 100644
--- a/TemplateProject/projects/TemplateProject-iOS.xcodeproj/project.pbxproj
+++ b/TemplateProject/projects/TemplateProject-iOS.xcodeproj/project.pbxproj
@@ -743,7 +743,6 @@
91D3DA0C1B023C03008FFFBB /* Project object */ = {
isa = PBXProject;
attributes = {
- BuildIndependentTargetsInParallel = YES;
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 1250;
TargetAttributes = {
diff --git a/TemplateProject/projects/TemplateProject-macOS.xcodeproj/project.pbxproj b/TemplateProject/projects/TemplateProject-macOS.xcodeproj/project.pbxproj
index 25fde34..442de49 100644
--- a/TemplateProject/projects/TemplateProject-macOS.xcodeproj/project.pbxproj
+++ b/TemplateProject/projects/TemplateProject-macOS.xcodeproj/project.pbxproj
@@ -13,8 +13,8 @@
buildPhases = (
);
dependencies = (
+ 4F61D85E2D74836400578AA8 /* PBXTargetDependency */,
4F61D8582D7482DA00578AA8 /* PBXTargetDependency */,
- 4F06F18623566DC800FD0962 /* PBXTargetDependency */,
4F78DAFA13B6436B0032E0F3 /* PBXTargetDependency */,
4F9828F8140A9F0200F3FCC1 /* PBXTargetDependency */,
);
@@ -267,13 +267,6 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 4F06F18523566DC800FD0962 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 4FD16A0813B63081001D0217;
- remoteInfo = APP;
- };
4F3EE1BC231438D000004786 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
@@ -288,6 +281,13 @@
remoteGlobalIDString = 4F8E0FDF2BF5F3B500D360CE;
remoteInfo = CLAP;
};
+ 4F61D85D2D74836400578AA8 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 4F3EE1BA231438D000004786;
+ remoteInfo = AUv3App;
+ };
4F78BE3522E742DE00AD537E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
@@ -1879,7 +1879,6 @@
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
- BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1320;
TargetAttributes = {
4F20EEC8132C69FE0030E34C = {
@@ -2519,11 +2518,6 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
- 4F06F18623566DC800FD0962 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 4FD16A0813B63081001D0217 /* APP */;
- targetProxy = 4F06F18523566DC800FD0962 /* PBXContainerItemProxy */;
- };
4F3EE1BB231438D000004786 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4F78BE0122E73D0800AD537E /* TemplateProjectAU */;
@@ -2534,6 +2528,11 @@
target = 4F8E0FDF2BF5F3B500D360CE /* CLAP */;
targetProxy = 4F61D8572D7482DA00578AA8 /* PBXContainerItemProxy */;
};
+ 4F61D85E2D74836400578AA8 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 4F3EE1BA231438D000004786 /* AUv3App */;
+ targetProxy = 4F61D85D2D74836400578AA8 /* PBXContainerItemProxy */;
+ };
4F78BE3622E742DE00AD537E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4F78BE0122E73D0800AD537E /* TemplateProjectAU */;
diff --git a/TemplateProject/scripts/makedist-mac.sh b/TemplateProject/scripts/makedist-mac.sh
index 2af9d1b..aee8d4c 100755
--- a/TemplateProject/scripts/makedist-mac.sh
+++ b/TemplateProject/scripts/makedist-mac.sh
@@ -11,14 +11,15 @@ if [ -d build-mac ]; then
fi
#---------------------------------------------------------------------------------------------------------
-#variables
+# variables
IPLUG2_ROOT=../iPlug2
XCCONFIG=$IPLUG2_ROOT/../common-mac.xcconfig
SCRIPTS=$IPLUG2_ROOT/Scripts
-# CODESIGN disabled by default.
-CODESIGN=0
+# CODE_SIGN disabled by default.
+CODE_SIGN=0
+NOTARIZE=0
# macOS codesigning/notarization
NOTARIZE_BUNDLE_ID=com.AcmeInc.TemplateProject
@@ -118,7 +119,7 @@ echo ""
touch *.cpp
#---------------------------------------------------------------------------------------------------------
-#remove existing binaries
+# remove existing binaries
echo "remove existing binaries"
echo ""
@@ -154,7 +155,7 @@ fi
#---------------------------------------------------------------------------------------------------------
# build xcode project. Change target to build individual formats, or add to All target in the xcode project
-xcodebuild -project ./projects/$PLUGIN_NAME-macOS.xcodeproj -xcconfig ./config/$PLUGIN_NAME-mac.xcconfig DEMO_VERSION=$DEMO -target "All" -UseModernBuildSystem=NO -configuration Release | tee build-mac.log | xcpretty #&& exit ${PIPESTATUS[0]}
+xcodebuild -project ./projects/$PLUGIN_NAME-macOS.xcodeproj -xcconfig ./config/$PLUGIN_NAME-mac.xcconfig DEMO_VERSION=$DEMO -configuration Release | tee build-mac.log | xcpretty #&& exit ${PIPESTATUS[0]}
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
echo "ERROR: build failed, aborting"
@@ -221,7 +222,7 @@ if [ -d $CLAP ]; then
strip -x $CLAP/Contents/MacOS/$PLUGIN_NAME
fi
-if [ $CODESIGN == 1 ]; then
+if [ $CODE_SIGN == 1 ]; then
#---------------------------------------------------------------------------------------------------------
# code sign AAX binary with wraptool
@@ -259,7 +260,7 @@ if [ $BUILD_INSTALLER == 1 ]; then
./scripts/makeinstaller-mac.sh $FULL_VERSION
- if [ $CODESIGN == 1 ]; then
+ if [ $CODE_SIGN == 1 ]; then
echo "code-sign installer for Gatekeeper on macOS 10.8+"
echo ""
mv "${PKG}" "${PKG_US}"
@@ -267,7 +268,7 @@ if [ $BUILD_INSTALLER == 1 ]; then
rm -R -f "${PKG_US}"
fi
- #set installer icon
+ # set installer icon
./$SCRIPTS/SetFileIcon -image resources/$PLUGIN_NAME.icns -file "${PKG}"
#---------------------------------------------------------------------------------------------------------
@@ -286,9 +287,9 @@ if [ $BUILD_INSTALLER == 1 ]; then
sudo rm -R -f build-mac/installer/
- if [ $CODESIGN == 1 ]; then
+ if [ $NOTARIZE == 1 ]; then
#---------------------------------------------------------------------------------------------------------
- #notarize dmg
+ # notarize dmg
echo "notarizing"
echo ""
# you need to create an app-specific id/password https://support.apple.com/en-us/HT204397
@@ -358,6 +359,14 @@ echo "packaging dSYMs"
echo ""
zip -r ./build-mac/$ARCHIVE_NAME-dSYMs.zip ./build-mac/Release/*.dSYM
+#---------------------------------------------------------------------------------------------------------
+# auval tools
+sudo rm -R -f build-mac/*-auval.zip
+
+echo "packaging auval script"
+echo ""
+zip -j ./build-mac/$ARCHIVE_NAME-auval.zip ./config.h ./../iPlug2/Scripts/validate_audiounit.sh
+
#---------------------------------------------------------------------------------------------------------
# prepare out folder for CI
diff --git a/common-win.ci.props b/common-win.ci.props
new file mode 100644
index 0000000..ba92e47
--- /dev/null
+++ b/common-win.ci.props
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common-win.props b/common-win.props
index 6669701..15aa19b 100644
--- a/common-win.props
+++ b/common-win.props
@@ -1,32 +1,42 @@
+
+
+
+ $([System.String]::TrimEnd('$(MSBuildThisFileDirectory)','\\','/'))
+ $([System.IO.Path]::GetFullPath('$(ThisFileDirTrimmed)'))
+
+
$(IPLUG_PATH)\APP\RTAudioMidi
- $(ProjectDir)..\..\iPlug2
- $(IPLUG2_ROOT)\WDL
- $(IPLUG2_ROOT)\IPlug
- $(IPLUG_PATH)\Extras
- $(IPLUG2_ROOT)\IGraphics
- $(IPLUG2_ROOT)\Dependencies
- $(DEPS_PATH)\Extras\nlohmann
- $(WDL_PATH);$(IPLUG_PATH);$(EXTRAS_PATH);$(EXTRAS_PATH)\OSC;$(EXTRAS_PATH)\Synth;$(EXTRAS_PATH)\WebView;$(JSON_PATH);$(SolutionDir)\resources
- $(DEPS_PATH)\IPlug
- $(DEPS_PATH)\IGraphics
- $(IGRAPHICS_DEPS_PATH)\NanoVG\src
- $(IGRAPHICS_DEPS_PATH)\NanoSVG\src
- $(DEPS_PATH)\Build\src\freetype\include
- $(DEPS_PATH)\Build\src\skia
- $(SKIA_PATH);$(SKIA_PATH)\include\core;$(SKIA_PATH)\include\effects;$(SKIA_PATH)\include\config;$(SKIA_PATH)\include\utils;$(SKIA_PATH)\include\gpu;$(SKIA_PATH)\modules\svg\include;$(SKIA_PATH)\third_party\externals\icu\source\common
- $(IGRAPHICS_DEPS_PATH)\glad_GL2\include;$(IGRAPHICS_DEPS_PATH)\glad_GL2\src
- $(IGRAPHICS_DEPS_PATH)\glad_GL3\include;$(IGRAPHICS_DEPS_PATH)\glad_GL3\src
- $(WDL_PATH)\libpng
- $(WDL_PATH)\zlib
- $(IGRAPHICS_DEPS_PATH)\STB
- $(DEPS_PATH)\Build\win\$(Platform)\$(Configuration)
- $(DEPS_PATH)\Build\win\bin\icudtl.dat
- $(IGRAPHICS_DEPS_PATH)\yoga;$(IGRAPHICS_DEPS_PATH)\yoga\yoga
- $(IGRAPHICS_PATH);$(IGRAPHICS_PATH)\Controls;$(IGRAPHICS_PATH)\Drawing;$(IGRAPHICS_PATH)\Platforms;$(IGRAPHICS_PATH)\Extras;$(NANOSVG_PATH);$(NANOVG_PATH);$(PNG_PATH);$(ZLIB_PATH);$(FREETYPE_PATH);$(STB_PATH);$(SKIA_INC_PATHS);$(YOGA_INC_PATHS)
+
+ $([System.IO.Path]::GetFullPath('$(ThisFileDirFull)\\..\\..\\iPlug2'))
+ $(IPLUG2_ROOT)\WDL
+ $(IPLUG2_ROOT)\IPlug
+ $(IPLUG_PATH)\Extras
+ $(IPLUG2_ROOT)\IGraphics
+ $(IPLUG2_ROOT)\Dependencies
+ $(DEPS_PATH)\Extras\nlohmann
+ $(WDL_PATH);$(IPLUG_PATH);$(EXTRAS_PATH);$(EXTRAS_PATH)\OSC;$(EXTRAS_PATH)\Synth;$(EXTRAS_PATH)\WebView;$(JSON_PATH);$(SolutionDir)\resources
+ $(DEPS_PATH)\IPlug
+ $(DEPS_PATH)\IGraphics
+ $(IGRAPHICS_DEPS_PATH)\NanoVG\src
+ $(IGRAPHICS_DEPS_PATH)\NanoSVG\src
+ $(DEPS_PATH)\Build\src\freetype\include
+ $(DEPS_PATH)\Build\src\skia
+ $(SKIA_PATH);$(SKIA_PATH)\include\core;$(SKIA_PATH)\include\effects;$(SKIA_PATH)\include\config;$(SKIA_PATH)\include\utils;$(SKIA_PATH)\include\gpu;$(SKIA_PATH)\modules\svg\include;$(SKIA_PATH)\third_party\externals\icu\source\common
+ $(IGRAPHICS_DEPS_PATH)\glad_GL2\include;$(IGRAPHICS_DEPS_PATH)\glad_GL2\src
+ $(IGRAPHICS_DEPS_PATH)\glad_GL3\include;$(IGRAPHICS_DEPS_PATH)\glad_GL3\src
+ $(WDL_PATH)\libpng
+ $(WDL_PATH)\zlib
+ $(IGRAPHICS_DEPS_PATH)\STB
+
+ $(DEPS_PATH)\Build\win\$(Platform)\$(Configuration)
+ $(DEPS_PATH)\Build\win\bin\icudtl.dat
+ $(IGRAPHICS_DEPS_PATH)\yoga;$(IGRAPHICS_DEPS_PATH)\yoga\yoga
+ $(IGRAPHICS_PATH);$(IGRAPHICS_PATH)\Controls;$(IGRAPHICS_PATH)\Drawing;$(IGRAPHICS_PATH)\Platforms;$(IGRAPHICS_PATH)\Extras;$(NANOSVG_PATH);$(NANOVG_PATH);$(PNG_PATH);$(ZLIB_PATH);$(FREETYPE_PATH);$(STB_PATH);$(SKIA_INC_PATHS);$(YOGA_INC_PATHS)
+
$(IPLUG_DEPS_PATH)\CLAP_SDK\include
$(IPLUG_DEPS_PATH)\CLAP_HELPERS\include\clap\helpers
$(IPLUG_DEPS_PATH)\VST2_SDK
@@ -44,36 +54,50 @@
$(ProgramW6432)\VstPlugins
$(CommonProgramFiles)\Avid\Audio\Plug-Ins
$(CommonProgramW6432)\Avid\Audio\Plug-Ins
- $(CommonProgramW6432)\CLAP
- $(APPDATA)\REAPER\UserPlugins
- APP_API;__WINDOWS_DS__;__WINDOWS_MM__;__WINDOWS_ASIO__;IPLUG_EDITOR=1;IPLUG_DSP=1
- CLAP_API;IPLUG_EDITOR=1;IPLUG_DSP=1
- VST2_API;VST_FORCE_DEPRECATED;IPLUG_EDITOR=1;IPLUG_DSP=1
- VST3_API;IPLUG_EDITOR=1;IPLUG_DSP=1
- VST3P_API;IPLUG_EDITOR=0;IPLUG_DSP=1
- VST3C_API;IPLUG_EDITOR=1;IPLUG_DSP=0
- _DEBUG;
- NDEBUG;
- TRACER_BUILD;NDEBUG;
- $(IPLUG_PATH)\APP;$(IPLUG_DEPS_PATH)\RTAudio\include;$(IPLUG_DEPS_PATH)\RTAudio;$(IPLUG_DEPS_PATH)\RTMidi
- $(IPLUG_PATH)\CLAP;$(CLAP_SDK);$(CLAP_HELPERS)
- $(IPLUG_PATH)\VST2;$(VST2_SDK)
- $(IPLUG_PATH)\VST3;$(VST3_SDK)
- $(IPLUG_PATH)\AAX;$(AAX_SDK)\Interfaces;$(AAX_SDK)\Interfaces\ACF;
- AAX_API;IPLUG_EDITOR=1;IPLUG_DSP=1;_WINDOWS;WIN32;_WIN32;WINDOWS_VERSION;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE
- WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NOMINMAX
- wininet.lib;odbc32.lib;odbccp32.lib;psapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comctl32.lib;
- dsound.lib;winmm.lib;
- $(SolutionDir)$(SolutionName).RPP
- $(SolutionDir)$(SolutionName).RPP
- $(SolutionDir)$(SolutionName).RPP
- $(SolutionDir)$(SolutionName).RPP
- $(SolutionDir)$(SolutionName).RPP
- 1
- $(IPLUG_DEPS_PATH)/Reaper;$(IPLUG_PATH)\ReaperExt;
- $(AAX_SDK)\Utilities\PlugIn.ico
- $(IPLUG2_ROOT)\Scripts\icons\VST_Logo_Steinberg.ico
+ $(CommonProgramW6432)\CLAP
+ $(APPDATA)\REAPER\UserPlugins
+ APP_API;__WINDOWS_DS__;__WINDOWS_MM__;__WINDOWS_ASIO__;IPLUG_EDITOR=1;IPLUG_DSP=1
+ CLAP_API;IPLUG_EDITOR=1;IPLUG_DSP=1
+ VST2_API;VST_FORCE_DEPRECATED;IPLUG_EDITOR=1;IPLUG_DSP=1
+ VST3_API;IPLUG_EDITOR=1;IPLUG_DSP=1
+ VST3P_API;IPLUG_EDITOR=0;IPLUG_DSP=1
+ VST3C_API;IPLUG_EDITOR=1;IPLUG_DSP=0
+ _DEBUG;
+ NDEBUG;
+ TRACER_BUILD;NDEBUG;
+ $(IPLUG_PATH)\APP;$(IPLUG_DEPS_PATH)\RTAudio\include;$(IPLUG_DEPS_PATH)\RTAudio;$(IPLUG_DEPS_PATH)\RTMidi
+ $(IPLUG_PATH)\CLAP;$(CLAP_SDK);$(CLAP_HELPERS)
+ $(IPLUG_PATH)\VST2;$(VST2_SDK)
+ $(IPLUG_PATH)\VST3;$(VST3_SDK)
+ $(IPLUG_PATH)\AAX;$(AAX_SDK)\Interfaces;$(AAX_SDK)\Interfaces\ACF;
+ AAX_API;IPLUG_EDITOR=1;IPLUG_DSP=1;_WINDOWS;WIN32;_WIN32;WINDOWS_VERSION;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE
+ WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NOMINMAX
+ wininet.lib;odbc32.lib;odbccp32.lib;psapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comctl32.lib;
+ dsound.lib;winmm.lib;
+ $(SolutionDir)$(SolutionName).RPP
+ $(SolutionDir)$(SolutionName).RPP
+ $(SolutionDir)$(SolutionName).RPP
+ $(SolutionDir)$(SolutionName).RPP
+ $(SolutionDir)$(SolutionName).RPP
+ 1
+ $(IPLUG_DEPS_PATH)/Reaper;$(IPLUG_PATH)\ReaperExt;
+ $(AAX_SDK)\Utilities\PlugIn.ico
+ $(IPLUG2_ROOT)\Scripts\icons\VST_Logo_Steinberg.ico
+
+
+ stdcpp20
+ true
+
+
+
+
+ $(DEPS_PATH)\Build\win\x64\$(Configuration)
+
+
+
n
+ $(DEPS_PATH)\Build\win\Win32\$(Configuration)
+
<_ProjectFileVersion>10.0.30319.1
@@ -83,11 +107,11 @@
$(ALL_DEFS);%(PreprocessorDefinitions)
4996;4250;4018;4267;4068;
$(WDL_PATH);$(IPLUG_PATH);$(SolutionDir);%(AdditionalIncludeDirectories)
- stdcpp17
- true
+ $(CppLanguageStandard)
+ $(EnableMultiProcessorCompilation)
- StreamingSIMDExtensions2
+ $(EnableEnhancedInstructionSet)
%(AdditionalDependencies)
@@ -313,4 +337,7 @@
$(CLAP_PATH)
+
+
+