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 @@ + + + + + + \ 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 + + + + \ 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) + + +