diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml
index 41f2dc1504b..94c3207e23d 100644
--- a/.github/workflows/of.yml
+++ b/.github/workflows/of.yml
@@ -149,6 +149,7 @@ jobs:
run: ./scripts/ci/vs/install.sh
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
+
- name: Build DEBUG and RELEASE emptyExample
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
@@ -160,6 +161,62 @@ jobs:
msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:configuration=debug /p:platform=${{ matrix.platform }} /p:PlatformToolset=v143
msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:configuration=release /p:platform=${{ matrix.platform }} /p:PlatformToolset=v143
+ build-vs2019:
+ runs-on: windows-2019
+ strategy:
+ matrix:
+ platform: [x64]
+ env:
+ BITS: ${{ matrix.bits }}
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v4
+
+ - uses: msys2/setup-msys2@v2.24.1
+ with:
+ update: true
+ install: >-
+ git
+ unzip
+
+ - name: Setup MSBuild (VS2019 - 16.11)
+ uses: microsoft/setup-msbuild@v2
+ with:
+ vs-version: '16.11'
+ msbuild-architecture: x64
+
+ - name: Verify MSBuild Version
+ run: msbuild -version
+
+ - name: Download libs
+ run: ./scripts/vs/download_libs_2019_x64.sh -t $RELEASE
+
+ - name: Download projectGenerator
+ shell: bash
+ run: ./scripts/vs/download_projectGenerator.sh
+
+ - name: Debug projectGenerator Directory
+ shell: bash
+ run: |
+ echo "Checking projectGenerator directory:"
+ ls -la projectGenerator/
+
+ # - name: run projectGenerator on examples
+ # shell: bash
+ # run: ./scripts/ci/vs/pg_projects.sh
+
+ # - name: Build DEBUG and RELEASE emptyExample
+ # working-directory: ${{env.GITHUB_WORKSPACE}}
+ # run: |
+ # msbuild examples/templates/emptyExample/emptyExample.vcxproj /p:configuration=debug /p:platform=${{ matrix.platform }} /p:PlatformToolset=v142
+ # msbuild examples/templates/emptyExample/emptyExample.vcxproj /p:configuration=release /p:platform=${{ matrix.platform }} /p:PlatformToolset=v142
+ # - name: Build DEBUG and RELEASE allAddonsExample
+ # working-directory: ${{env.GITHUB_WORKSPACE}}
+ # run: |
+ # msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:configuration=debug /p:platform=${{ matrix.platform }} /p:PlatformToolset=v142
+ # msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:configuration=release /p:platform=${{ matrix.platform }} /p:PlatformToolset=v142
+
+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
rpi-build:
diff --git a/.gitignore b/.gitignore
index 40bac29edd4..d0d2b76ec35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -165,3 +165,7 @@ scripts/osx/regressionTest
examples/**/**/[Cc]onfig.make
*.key
*.pem
+libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj.user
+libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj.user
+scripts/templates/vs/bin/emptyExample_debug.exe
+scripts/templates/vs2019/emptyExample.vcxproj.user
diff --git a/libs/openFrameworksCompiled/project/vs2019/icon.ico b/libs/openFrameworksCompiled/project/vs2019/icon.ico
new file mode 100644
index 00000000000..ab3f33fe9e0
Binary files /dev/null and b/libs/openFrameworksCompiled/project/vs2019/icon.ico differ
diff --git a/libs/openFrameworksCompiled/project/vs2019/icon_debug.ico b/libs/openFrameworksCompiled/project/vs2019/icon_debug.ico
new file mode 100644
index 00000000000..5f7a528ca16
Binary files /dev/null and b/libs/openFrameworksCompiled/project/vs2019/icon_debug.ico differ
diff --git a/libs/openFrameworksCompiled/project/vs2019/openFrameworksCommon.props b/libs/openFrameworksCompiled/project/vs2019/openFrameworksCommon.props
new file mode 100644
index 00000000000..cf1fc10e4d8
--- /dev/null
+++ b/libs/openFrameworksCompiled/project/vs2019/openFrameworksCommon.props
@@ -0,0 +1,29 @@
+
+
+
+
+ $(MSBuildThisFileDirectory)\..\..\..\..\
+
+
+
+
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;wldap32.lib;mf.lib;mfplat.lib;mfuuid.lib;d3d11.lib;mfreadwrite.lib;xaudio2.lib;%(AdditionalDependencies)
+ C:\Program Files (x86)\Visual Leak Detector\lib\Win64;%(AdditionalLibraryDirectories)
+
+
+ stdcpp17
+
+
+ CompileAsCpp
+
+
+ /Zc:__cplusplus %(AdditionalOptions)
+
+
+
+
+ $(OF_ROOT)
+ true
+
+
+
\ No newline at end of file
diff --git a/libs/openFrameworksCompiled/project/vs2019/openFrameworksDebug.props b/libs/openFrameworksCompiled/project/vs2019/openFrameworksDebug.props
new file mode 100644
index 00000000000..0b4b0c07f9d
--- /dev/null
+++ b/libs/openFrameworksCompiled/project/vs2019/openFrameworksDebug.props
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+ <_PropertySheetDisplayName>openFrameworksDebug
+ $(SolutionDir)bin\
+
+
+
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\FreeImage\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include;$(OF_ROOT)\libs\pixman\include\pixman;$(OF_ROOT)\libs\libpng\include;$(OF_ROOT)\libs\zlib\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;CURL_STATICLIB;URI_STATIC_BUILD;GLM_ENABLE_EXPERIMENTAL%(PreprocessorDefinitions)
+ true
+
+
+ $(OF_ROOT)\libs\glfw\lib\vs\x64;$(OF_ROOT)\libs\rtAudio\lib\vs\x64;$(OF_ROOT)\libs\FreeImage\lib\vs\x64;$(OF_ROOT)\libs\brotli\lib\vs\x64;$(OF_ROOT)\libs\freetype\lib\vs\x64;$(OF_ROOT)\libs\videoInput\lib\vs\x64;$(OF_ROOT)\libs\cairo\lib\vs\x64;$(OF_ROOT)\libs\pixman\lib\vs\x64;$(OF_ROOT)\libs\libpng\lib\vs\x64;$(OF_ROOT)\libs\zlib\lib\vs\x64;$(OF_ROOT)\libs\glew\lib\vs\x64;$(OF_ROOT)\libs\glu\lib\vs\x64;$(OF_ROOT)\libs\openssl\lib\vs\x64;$(OF_ROOT)\libs\curl\lib\vs\x64;$(OF_ROOT)\libs\tess2\lib\vs\x64;$(OF_ROOT)\libs\boost\lib\vs\x64;$(OF_ROOT)\libs\uriparser\lib\vs\x64;$(OF_ROOT)\libs\pugixml\lib\vs\x64;%(AdditionalLibraryDirectories)
+ libcairo.lib;libpixman-1.lib;libpng.lib;zlib.lib;brotlicommon.lib;brotlidec.lib;brotlienc.lib;msimg32.lib;OpenGL32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;rtAudioD.lib;videoInputD.lib;freetyped.lib;FreeImageD.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;libglew32.lib;libssl.lib;libcrypto.lib;crypt32.lib;libcurl.lib;uriparser.lib;pugixmlD.lib;Ws2_32.lib;tess2.lib;glfw3.lib;winmm.lib;%(AdditionalDependencies)
+ /ignore:4099 %(AdditionalOptions)
+ false
+ atlthunk.lib;msvcrt;libcmt;LIBC;LIBCMTD
+
+
+
+
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\FreeImage\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include;$(OF_ROOT)\libs\pixman\include\pixman;$(OF_ROOT)\libs\libpng\include;$(OF_ROOT)\libs\zlib\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;CURL_STATICLIB;URI_STATIC_BUILD;GLM_ENABLE_EXPERIMENTAL%(PreprocessorDefinitions)
+ true
+
+
+ $(OF_ROOT)\libs\glfw\lib\vs\ARM64;$(OF_ROOT)\libs\rtAudio\lib\vs\ARM64;$(OF_ROOT)\libs\FreeImage\lib\vs\ARM64;$(OF_ROOT)\libs\brotli\lib\vs\ARM64;$(OF_ROOT)\libs\freetype\lib\vs\ARM64;$(OF_ROOT)\libs\videoInput\lib\vs\ARM64;$(OF_ROOT)\libs\cairo\lib\vs\ARM64;$(OF_ROOT)\libs\pixman\lib\vs\ARM64;$(OF_ROOT)\libs\libpng\lib\vs\ARM64;$(OF_ROOT)\libs\zlib\lib\vs\ARM64;$(OF_ROOT)\libs\glew\lib\vs\ARM64;$(OF_ROOT)\libs\glu\lib\vs\ARM64;$(OF_ROOT)\libs\openssl\lib\vs\ARM64;$(OF_ROOT)\libs\curl\lib\vs\ARM64;$(OF_ROOT)\libs\tess2\lib\vs\ARM64;$(OF_ROOT)\libs\boost\lib\vs\ARM64;$(OF_ROOT)\libs\uriparser\lib\vs\ARM64;$(OF_ROOT)\libs\pugixml\lib\vs\ARM64;%(AdditionalLibraryDirectories)
+ libcairo.lib;libpixman-1.lib;libpng.lib;;zlib.lib;brotlicommon.lib;brotlidec.lib;brotlienc.lib;msimg32.lib;OpenGL32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;rtAudioD.lib;videoInputD.lib;freetyped.lib;FreeImageD.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;libglew32.lib;;libssl.lib;libcrypto.lib;crypt32.lib;libcurl.lib;uriparser.lib;pugixmlD.lib;Ws2_32.lib;tess2.lib;glfw3.lib;winmm.lib;%(AdditionalDependencies)
+ /ignore:4099 %(AdditionalOptions)
+ true
+ atlthunk.lib;msvcrt;libcmt;LIBC;LIBCMTD
+
+
+
+
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\FreeImage\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include;$(OF_ROOT)\libs\pixman\include\pixman;$(OF_ROOT)\libs\libpng\include;$(OF_ROOT)\libs\zlib\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;CURL_STATICLIB;URI_STATIC_BUILD;GLM_ENABLE_EXPERIMENTAL%(PreprocessorDefinitions)
+ true
+
+
+ $(OF_ROOT)\libs\glfw\lib\vs\ARM64EC;$(OF_ROOT)\libs\rtAudio\lib\vs\ARM64EC;$(OF_ROOT)\libs\FreeImage\lib\vs\ARM64EC;$(OF_ROOT)\libs\brotli\lib\vs\ARM64EC;$(OF_ROOT)\libs\freetype\lib\vs\ARM64EC;$(OF_ROOT)\libs\videoInput\lib\vs\ARM64EC;$(OF_ROOT)\libs\cairo\lib\vs\ARM64EC;$(OF_ROOT)\libs\pixman\lib\vs\ARM64EC;$(OF_ROOT)\libs\libpng\lib\vs\ARM64EC;$(OF_ROOT)\libs\zlib\lib\vs\ARM64EC;$(OF_ROOT)\libs\glew\lib\vs\ARM64EC;$(OF_ROOT)\libs\glu\lib\vs\ARM64EC;$(OF_ROOT)\libs\openssl\lib\vs\ARM64EC;$(OF_ROOT)\libs\curl\lib\vs\ARM64EC;$(OF_ROOT)\libs\tess2\lib\vs\ARM64EC;$(OF_ROOT)\libs\boost\lib\vs\ARM64EC;$(OF_ROOT)\libs\uriparser\lib\vs\ARM64EC;$(OF_ROOT)\libs\pugixml\lib\vs\ARM64EC;%(AdditionalLibraryDirectories)
+ libcairo.lib;libpixman-1.lib;libpng.lib;;zlib.lib;brotlicommon.lib;brotlidec.lib;brotlienc.lib;msimg32.lib;OpenGL32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;rtAudioD.lib;videoInputD.lib;freetyped.lib;FreeImageD.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;libglew32.lib;;libssl.lib;libcrypto.lib;crypt32.lib;libcurl.lib;uriparser.lib;pugixmlD.lib;Ws2_32.lib;tess2.lib;glfw3.lib;winmm.lib;%(AdditionalDependencies)
+ /ignore:4099 %(AdditionalOptions)
+ true
+ atlthunk.lib;msvcrt;libcmt;LIBC;LIBCMTD
+
+
+
+
diff --git a/libs/openFrameworksCompiled/project/vs2019/openFrameworksRelease.props b/libs/openFrameworksCompiled/project/vs2019/openFrameworksRelease.props
new file mode 100644
index 00000000000..93a69a2a4dd
--- /dev/null
+++ b/libs/openFrameworksCompiled/project/vs2019/openFrameworksRelease.props
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+ <_PropertySheetDisplayName>openFrameworksRelease
+ $(SolutionDir)bin\
+
+
+
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\freeImage\include;$(OF_ROOT)\libs\fmod\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include\cairo;$(OF_ROOT)\libs\pixman\include\pixman;$(OF_ROOT)\libs\libpng\include;$(OF_ROOT)\libs\zlib\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;URI_STATIC_BUILD;GLM_ENABLE_EXPERIMENTAL%(PreprocessorDefinitions)
+ true
+
+
+
+ $(OF_ROOT)\libs\glfw\lib\vs\x64;$(OF_ROOT)\libs\rtAudio\lib\vs\x64;$(OF_ROOT)\libs\FreeImage\lib\vs\x64;$(OF_ROOT)\libs\freetype\lib\vs\x64;$(OF_ROOT)\libs\fmod\lib\vs\x64;$(OF_ROOT)\libs\videoInput\lib\vs\x64;$(OF_ROOT)\libs\cairo\lib\vs\x64;$(OF_ROOT)\libs\pixman\lib\vs\x64;$(OF_ROOT)\libs\libpng\lib\vs\x64;$(OF_ROOT)\libs\zlib\lib\vs\x64;$(OF_ROOT)\libs\glew\lib\vs\x64;$(OF_ROOT)\libs\glu\lib\vs\x64;$(OF_ROOT)\libs\openssl\lib\vs\x64;$(OF_ROOT)\libs\curl\lib\vs\x64;$(OF_ROOT)\libs\tess2\lib\vs\x64;$(OF_ROOT)\libs\boost\lib\vs\x64;$(OF_ROOT)\libs\uriparser\lib\vs\x64;$(OF_ROOT)\libs\pugixml\lib\vs\x64;%(AdditionalLibraryDirectories)
+ libcairo.lib;libpixman-1.lib;libpng.lib;zlib.lib;msimg32.lib;OpenGL32.lib;GLu32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;rtAudio.lib;videoInput.lib;freetype.lib;FreeImage.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;libglew32.lib;fmod64_vc.lib;libssl.lib;libcrypto.lib;crypt32.lib;libcurl.lib;uriparser.lib;pugixml.lib;Ws2_32.lib;tess2.lib;glfw3.lib;winmm.lib;%(AdditionalDependencies)
+ true
+ atlthunk.lib;LIBC.lib;LIBCMT
+
+
+
+
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\freeImage\include;$(OF_ROOT)\libs\fmod\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include\cairo;$(OF_ROOT)\libs\pixman\include\pixman;$(OF_ROOT)\libs\libpng\include;$(OF_ROOT)\libs\zlib\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;URI_STATIC_BUILD;GLM_ENABLE_EXPERIMENTAL%(PreprocessorDefinitions)
+ true
+
+
+ $(OF_ROOT)\libs\glfw\lib\vs\ARM64;$(OF_ROOT)\libs\rtAudio\lib\vs\ARM64;$(OF_ROOT)\libs\FreeImage\lib\vs\ARM64;$(OF_ROOT)\libs\freetype\lib\vs\ARM64;$(OF_ROOT)\libs\fmod\lib\vs\ARM64;$(OF_ROOT)\libs\videoInput\lib\vs\ARM64;$(OF_ROOT)\libs\cairo\lib\vs\ARM64;$(OF_ROOT)\libs\pixman\lib\vs\ARM64;$(OF_ROOT)\libs\libpng\lib\vs\ARM64;$(OF_ROOT)\libs\zlib\lib\vs\ARM64;$(OF_ROOT)\libs\glew\lib\vs\ARM64;$(OF_ROOT)\libs\glu\lib\vs\ARM64;$(OF_ROOT)\libs\openssl\lib\vs\ARM64;$(OF_ROOT)\libs\curl\lib\vs\ARM64;$(OF_ROOT)\libs\tess2\lib\vs\ARM64;$(OF_ROOT)\libs\boost\lib\vs\ARM64;$(OF_ROOT)\libs\uriparser\lib\vs\ARM64;$(OF_ROOT)\libs\pugixml\lib\vs\ARM64;%(AdditionalLibraryDirectories)
+ libcairo.lib;libpixman-1.lib;libpng.lib;zlib.lib;msimg32.lib;OpenGL32.lib;GLu32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;rtAudio.lib;videoInput.lib;freetype.lib;FreeImage.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;libglew32.lib;libssl.lib;libcrypto.lib;crypt32.lib;libcurl.lib;uriparser.lib;pugixml.lib;Ws2_32.lib;tess2.lib;glfw3.lib;winmm.lib;%(AdditionalDependencies)
+ true
+ atlthunk.lib;LIBC.lib;LIBCMT
+
+
+
+
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\freeImage\include;$(OF_ROOT)\libs\fmod\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include\cairo;$(OF_ROOT)\libs\pixman\include\pixman;$(OF_ROOT)\libs\libpng\include;$(OF_ROOT)\libs\zlib\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;URI_STATIC_BUILD;GLM_ENABLE_EXPERIMENTAL%(PreprocessorDefinitions)
+ true
+
+
+ $(OF_ROOT)\libs\glfw\lib\vs\ARM64EC;$(OF_ROOT)\libs\rtAudio\lib\vs\ARM64EC;$(OF_ROOT)\libs\FreeImage\lib\vs\ARM64EC;$(OF_ROOT)\libs\freetype\lib\vs\ARM64EC;$(OF_ROOT)\libs\fmod\lib\vs\ARM64EC;$(OF_ROOT)\libs\videoInput\lib\vs\ARM64EC;$(OF_ROOT)\libs\cairo\lib\vs\ARM64EC;$(OF_ROOT)\libs\pixman\lib\vs\ARM64EC;$(OF_ROOT)\libs\libpng\lib\vs\ARM64EC;$(OF_ROOT)\libs\zlib\lib\vs\ARM64EC;$(OF_ROOT)\libs\glew\lib\vs\ARM64EC;$(OF_ROOT)\libs\glu\lib\vs\ARM64EC;$(OF_ROOT)\libs\openssl\lib\vs\ARM64EC;$(OF_ROOT)\libs\curl\lib\vs\ARM64EC;$(OF_ROOT)\libs\tess2\lib\vs\ARM64EC;$(OF_ROOT)\libs\boost\lib\vs\ARM64EC;$(OF_ROOT)\libs\uriparser\lib\vs\ARM64EC;$(OF_ROOT)\libs\pugixml\lib\vs\ARM64EC;%(AdditionalLibraryDirectories)
+ libcairo.lib;libpixman-1.lib;libpng.lib;zlib.lib;msimg32.lib;OpenGL32.lib;GLu32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;rtAudio.lib;videoInput.lib;freetype.lib;FreeImage.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;libglew32.lib;libssl.lib;libcrypto.lib;crypt32.lib;libcurl.lib;uriparser.lib;pugixml.lib;Ws2_32.lib;tess2.lib;glfw3.lib;winmm.lib;%(AdditionalDependencies)
+ true
+ atlthunk.lib;LIBC.lib;LIBCMT
+
+
+
+
diff --git a/libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj b/libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj
new file mode 100644
index 00000000000..c442e06ffd9
--- /dev/null
+++ b/libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj
@@ -0,0 +1,338 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ Debug
+ ARM64
+
+
+ Release
+ ARM64
+
+
+ Debug
+ ARM64EC
+
+
+ Release
+ ARM64EC
+
+
+
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))
+ $(LatestTargetPlatformVersion)
+ $(WindowsTargetPlatformVersion)
+
+
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '11.0'))
+ $(LatestTargetPlatformVersion)
+ $(WindowsTargetPlatformVersion)
+
+
+ {5837595D-ACA9-485C-8E76-729040CE4B0B}
+ openframeworksLib
+ Win32Proj
+
+
+
+ StaticLibrary
+ Unicode
+ true
+ v142
+
+
+ StaticLibrary
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\lib\vs\$(Platform)\
+ obj\$(Platform)\$(Configuration)\
+ $(ProjectName)_debug
+
+
+ ..\..\lib\vs\$(Platform)\
+ obj\$(Platform)\$(Configuration)\
+
+
+
+ Disabled
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glut\include;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\FreeImage\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include;$(OF_ROOT)\libs\poco\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;CURL_STATICLIB;FREEIMAGE_LIB;URI_STATIC_BUILD;_HAS_STREAM_INSERTION_OPERATORS_DELETED_IN_CXX20;_DEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;OF_NO_FMOD;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebugDLL
+ Level3
+ false
+ CompileAsCpp
+ stdcpplatest
+ /Zc:__cplusplus %(AdditionalOptions)
+ false
+ stdc17
+ stdc17
+ stdc17
+ true
+ true
+ true
+ true
+ true
+ true
+ OldStyle
+ OldStyle
+ OldStyle
+
+
+
+
+ true
+ true
+ true
+
+
+ for /d %%f in ("$(OF_ROOT)\libs\*") do (if exist "%%f\lib\vs\x64\*.dll" (xcopy /Y /E "%%f\lib\vs\x64\*.dll" "$(SolutionDir)dll\x64\"))
+
+
+ for /d %%f in ("$(OF_ROOT)\libs\*") do (if exist "%%f\lib\vs\ARM64EC\*.dll" (xcopy /Y /E "%%f\lib\vs\ARM64EC\*.dll" "$(SolutionDir)dll\ARM64EC\"))
+
+
+ for /d %%f in ("$(OF_ROOT)\libs\*") do (if exist "%%f\lib\vs\ARM64\*.dll" (xcopy /Y /E "%%f\lib\vs\ARM64\*.dll" "$(SolutionDir)dll\ARM64\"))
+
+
+
+
+ false
+ $(OF_ROOT)\libs\openFrameworks;$(OF_ROOT)\libs\openFrameworks\graphics;$(OF_ROOT)\libs\openFrameworks\app;$(OF_ROOT)\libs\openFrameworks\sound;$(OF_ROOT)\libs\openFrameworks\utils;$(OF_ROOT)\libs\openFrameworks\communication;$(OF_ROOT)\libs\openFrameworks\video;$(OF_ROOT)\libs\openFrameworks\types;$(OF_ROOT)\libs\openFrameworks\math;$(OF_ROOT)\libs\openFrameworks\3d;$(OF_ROOT)\libs\openFrameworks\gl;$(OF_ROOT)\libs\openFrameworks\events;$(OF_ROOT)\libs\glut\include;$(OF_ROOT)\libs\glm\include;$(OF_ROOT)\libs\rtAudio\include;$(OF_ROOT)\libs\quicktime\include;$(OF_ROOT)\libs\freetype\include;$(OF_ROOT)\libs\freetype\include\freetype2;$(OF_ROOT)\libs\FreeImage\include;$(OF_ROOT)\libs\videoInput\include;$(OF_ROOT)\libs\glew\include\;$(OF_ROOT)\libs\glu\include;$(OF_ROOT)\libs\tess2\include;$(OF_ROOT)\libs\cairo\include;$(OF_ROOT)\libs\poco\include;$(OF_ROOT)\libs\glfw\include;$(OF_ROOT)\libs\openssl\include;$(OF_ROOT)\libs\utf8\include;$(OF_ROOT)\libs\boost\include;$(OF_ROOT)\libs\json\include;$(OF_ROOT)\libs\curl\include;$(OF_ROOT)\libs\uriparser\include;$(OF_ROOT)\libs\pugixml\include;$(OF_ROOT)\addons;%(AdditionalIncludeDirectories)
+ WIN32;CURL_STATICLIB;FREEIMAGE_LIB;URI_STATIC_BUILD;_HAS_STREAM_INSERTION_OPERATORS_DELETED_IN_CXX20;NDEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;OF_NO_FMOD;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level1
+ true
+ stdcpplatest
+ /Zc:__cplusplus %(AdditionalOptions)
+ stdc17
+ false
+ true
+ true
+ true
+ true
+ true
+ true
+ OldStyle
+ OldStyle
+ OldStyle
+
+
+
+
+ true
+ true
+ true
+
+
+ for /d %%f in ("$(OF_ROOT)\libs\*") do (if exist "%%f\lib\vs\x64\*.dll" (xcopy /Y /E "%%f\lib\vs\x64\*.dll" "$(SolutionDir)dll\x64\"))
+
+
+ for /d %%f in ("$(OF_ROOT)\libs\*") do (if exist "%%f\lib\vs\ARM64EC\*.dll" (xcopy /Y /E "%%f\lib\vs\ARM64EC\*.dll" "$(SolutionDir)dll\ARM64EC\"))
+
+
+ for /d %%f in ("$(OF_ROOT)\libs\*") do (if exist "%%f\lib\vs\ARM64\*.dll" (xcopy /Y /E "%%f\lib\vs\ARM64\*.dll" "$(SolutionDir)dll\ARM64\"))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj.filters b/libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj.filters
new file mode 100644
index 00000000000..905bc71ae3a
--- /dev/null
+++ b/libs/openFrameworksCompiled/project/vs2019/openframeworksLib.vcxproj.filters
@@ -0,0 +1,572 @@
+
+
+
+
+ {99fb9456-40f9-40c0-97db-c85505d9b444}
+
+
+ {d9bb24da-9646-4c59-b5c2-d199d354f8f2}
+
+
+ {e4b39d1b-e874-4566-8826-09f2182ff3ca}
+
+
+ {ee48c0fc-200b-4e93-83d3-9e2c20d4bf9e}
+
+
+ {be31c78d-2c42-4129-b235-b5c0723f734c}
+
+
+ {b78d61d8-4705-4dd6-b395-b0340c42a6a8}
+
+
+ {608df362-91fb-44e3-9d2e-cf29cde4fe28}
+
+
+ {a041d3e4-3b1a-4e1f-ab95-064102e6ddc2}
+
+
+ {1206a90e-650f-4ec5-829b-880c8b40927a}
+
+
+ {74e22eb5-45e7-4cf4-ae99-5146982593d9}
+
+
+ {a4103554-0058-41d9-bc6b-b65bc3a3c2dd}
+
+
+ {c9e5d070-85f2-4bc1-ad63-6f13c685a9ee}
+
+
+ {e769ef16-c02a-402a-8eff-5d109f5a3a86}
+
+
+ {5f96bf6a-8a5d-485f-a2ec-68642528d3ce}
+
+
+
+
+ libs\openFrameworks
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\communication
+
+
+ libs\openFrameworks\communication
+
+
+ libs\openFrameworks\events
+
+
+ libs\openFrameworks\events
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\events
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\communication
+
+
+ libs\openFrameworks\communication
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\events
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\math
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\types
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\gl
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\video
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\utils
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\sound
+
+
+ libs\openFrameworks\app
+
+
+ libs\openFrameworks\graphics
+
+
+
+
+ libs\openFrameworks\3d
+
+
+ libs\openFrameworks\graphics
+
+
+ libs\openFrameworks\gl\shaders
+
+
+ libs\openFrameworks\gl\shaders
+
+
+
\ No newline at end of file
diff --git a/scripts/ci/package_builds.sh b/scripts/ci/package_builds.sh
index 0830abe2dc2..b1dad66d963 100755
--- a/scripts/ci/package_builds.sh
+++ b/scripts/ci/package_builds.sh
@@ -58,6 +58,7 @@ if [[ "$(uname -s)" == "Linux" ]]; then
$ROOT/scripts/dev/create_package.sh msys2 $lastversion master ucrt64
$ROOT/scripts/dev/create_package.sh vs $lastversion master
$ROOT/scripts/dev/create_package.sh vs $lastversion master 64
+ $ROOT/scripts/dev/create_package.sh vs2019 $lastversion master 64
fi
$ROOT/scripts/dev/create_package.sh osx $lastversion master
$ROOT/scripts/dev/create_package.sh ios $lastversion master
diff --git a/scripts/ci/vs/pg_projects.sh b/scripts/ci/vs/pg_projects.sh
new file mode 100644
index 00000000000..b36e101522d
--- /dev/null
+++ b/scripts/ci/vs/pg_projects.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+OF_ROOT=$PWD
+SCRIPT_DIR="${BASH_SOURCE%/*}"
+cd "${OF_ROOT}"
+
+# Convert paths to Windows paths
+OFW_ROOT=$(cygpath -w "$PWD")
+PG_OFX_PATH="${OF_ROOT}\\projectGenerator\\projectGenerator.exe"
+PG_OF_PATH="${OF_ROOT}/projectGenerator/projectGenerator.exe"
+
+PGW_OFX_PATH=$(cygpath -w "$PG_OF_PATH")
+
+PROJECTS=(
+ "examples\\templates\\emptyExample"
+ "examples\\templates\\allAddonsExample"
+)
+
+ADDONS=(
+ ""
+ "ofxAssimpModelLoader,ofxGui,ofxKinect,ofxNetwork,ofxOpenCv,ofxOsc,ofxSvg,ofxThreadedImageLoader,ofxXmlSettings"
+)
+
+# Debugging step
+echo "Checking projectGenerator directory contents:"
+ls -la "${OF_ROOT}/projectGenerator"
+
+echo "Current working directory: $PWD"
+echo "Updating projects with PG at:${PG_OF_PATH}"
+for i in "${!PROJECTS[@]}"; do
+ PROJECT=${PROJECTS[i]}
+ ADDON=${ADDONS[i]}
+ OPTIONS="-o\"${OF_ROOT}\" -v -a\"$ADDON\" -p\"vs\" -t\"\" \"${OF_ROOT}\\${PROJECT}\""
+ echo "Updating: ${PROJECT} with:${PG_OF_PATH}"
+ echo "Command: ${PG_OF_PATH} ${OPTIONS}"
+ eval "${PG_OF_PATH} ${OPTIONS}"
+done
diff --git a/scripts/dev/create_package.sh b/scripts/dev/create_package.sh
index 34bd172d75e..18d17ce0166 100755
--- a/scripts/dev/create_package.sh
+++ b/scripts/dev/create_package.sh
@@ -11,7 +11,7 @@
platform=$1
version=$2
-all_platforms="linux linux64 linuxarmv6l linuxarmv7l linuxaarch64 osx msys2 vs ios macos tvos android emscripten"
+all_platforms="linux linux64 linuxarmv6l linuxarmv7l linuxaarch64 osx msys2 vs vs2019 ios macos tvos android emscripten"
of_root=$(readlink -f "$(dirname "$(readlink -f "$0")")/../..")
@@ -77,11 +77,11 @@ echoDots(){
}
-if [ "$platform" != "msys2" ] && [ "$platform" != "linux" ] && [ "$platform" != "linux64" ] && [ "$platform" != "linuxarmv6l" ] && [ "$platform" != "linuxaarch64" ] && [ "$platform" != "linuxarmv7l" ] && [ "$platform" != "vs" ] && [ "$platform" != "osx" ] && [ "$platform" != "android" ] && [ "$platform" != "ios" ] && [ "$platform" != "macos" ]; then
+if [ "$platform" != "msys2" ] && [ "$platform" != "linux" ] && [ "$platform" != "linux64" ] && [ "$platform" != "linuxarmv6l" ] && [ "$platform" != "linuxaarch64" ] && [ "$platform" != "linuxarmv7l" ] && [ "$platform" != "vs" ] && [ "$platform" != "vs2019" ] && [ "$platform" != "osx" ] && [ "$platform" != "android" ] && [ "$platform" != "ios" ] && [ "$platform" != "macos" ]; then
echo usage:
echo ./create_package.sh platform version
echo platform:
- echo msys2, linux, linux64, linuxarmv6l, linuxaarch64, linuxarmv7l, vs, osx, android, ios, macos, all
+ echo msys2, linux, linux64, linuxarmv6l, linuxaarch64, linuxarmv7l, vs, vs2019, osx, android, ios, macos, all
exit 1
fi
@@ -186,7 +186,7 @@ function createProjectFiles {
cd ${pkg_ofroot}
echo "Creating project files for $pkg_platform"
- if [ "$pkg_platform" == "vs" ] || [ "$pkg_platform" == "android" ] || [ "$pkg_platform" == "ios" ]; then
+ if [ "$pkg_platform" == "vs" ] || [ "$pkg_platform" == "vs2019" ] || [ "$pkg_platform" == "android" ] || [ "$pkg_platform" == "ios" ]; then
pg_platform=$pkg_platform
else
pg_platform="$pkg_platform,vscode"
@@ -326,7 +326,7 @@ function createPackage {
rm -Rf windowing
fi
- if [ "$pkg_platform" == "msys2" ] || [ "$pkg_platform" == "vs" ]; then
+ if [ "$pkg_platform" == "msys2" ] || [ "$pkg_platform" == "vs2019" ] || [ "$pkg_platform" == "vs" ]; then
rm -Rf video/osxHighPerformanceVideoPlayerExample
rm -Rf video/osxVideoRecorderExample
rm -Rf gles
@@ -361,9 +361,12 @@ function createPackage {
elif [ "$pkg_platform" = "msys2" ]; then
scripts/msys2/download_libs.sh -a $libs_abi -t $RELEASE
scripts/emscripten/download_libs.sh -n -t $RELEASE
+ elif [ "$pkg_platform" = "vs2019" ]; then
+ scripts/vs/download_libs.sh -a $libs_abi -t $RELEASE
+ scripts/emscripten/download_libs.sh -n -t $RELEASE
elif [ "$pkg_platform" = "vs" ]; then
if [ "$libs_abi" = "" ]; then
- scripts/vs/download_libs.sh -t $RELEASE
+ download_libs_2019_x64.sh -t $RELEASE
else
scripts/vs/download_libs.sh -a $libs_abi -t $RELEASE
fi
@@ -398,7 +401,7 @@ function createPackage {
otherplatforms=$(remove_current_platform "$otherplatforms" "emscripten")
elif [ "$pkg_platform" = "msys2" ]; then
otherplatforms=$(remove_current_platform "$all_platforms" "msys2")
- elif [ "$pkg_platform" = "vs" ]; then
+ elif [ "$pkg_platform" = "vs" ] || [ "$pkg_platform" = "vs2019" ]; then
otherplatforms=$(remove_current_platform "$all_platforms" "vs")
otherplatforms=$(remove_current_platform "$otherplatforms" "emscripten")
elif [ "$pkg_platform" = "ios" ]; then
@@ -433,18 +436,10 @@ function createPackage {
fi
- if [ "$pkg_platform" = "vs" ] || [ "$pkg_platform" = "msys2" ]; then
- # -t $RELEASE
-
- # use prepackaged gui
+ if [ "$pkg_platform" = "vs" ] || [ "$pkg_platform" = "vs2019" ] || [ "$pkg_platform" = "msys2" ]; then
downloader https://github.com/openframeworks/projectGenerator/releases/download/$RELEASE/projectGenerator-vs-gui.zip 2> /dev/null
mkdir -p projectGenerator
unzip -q projectGenerator-vs-gui.zip -d "projectGenerator" 2> /dev/null
- # if [ "$pkg_platform" = "msys2" ]; then
- # sed -i "s/osx/msys2/g" projectGenerator/resources/app/settings.json
- # else
- # sed -i "s/osx/vs/g" projectGenerator/resources/app/settings.json
- # fi
rm projectGenerator-vs-gui.zip
rm -rf apps/projectGenerator
fi
@@ -565,7 +560,7 @@ function createPackage {
rm -Rf $otherplatforms
rm -Rf ci dev apothecary
else
- rm -Rf msys2 vs osx ios android ci dev apothecary
+ rm -Rf msys2 vs vs2019 osx ios android ci dev apothecary
fi
if [ "$pkg_platform" = "android" ] || [ "$pkg_platform" = "ios" ]; then
@@ -626,7 +621,7 @@ function createPackage {
cp docs/linux.md INSTALL.md
fi
- if [ "$platform" = "vs" ]; then
+ if [ "$platform" = "vs" ] || [ "$platform" = "vs2019" ]; then
cp docs/visualstudio.md INSTALL.md
fi
diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh
index db2fdf0529f..489f2b43928 100755
--- a/scripts/dev/download_libs.sh
+++ b/scripts/dev/download_libs.sh
@@ -4,10 +4,11 @@ VER=master
PLATFORM=""
ARCH=""
OVERWRITE=1
+LEGACY=0
SILENT_ARGS=""
NO_SSL=""
BLEEDING_EDGE=0
-DL_VERSION=2.6.2
+DL_VERSION=2.6.3
TAG=""
printHelp(){
@@ -112,7 +113,6 @@ while [[ $# -gt 0 ]]; do
-s|--silent)
SILENT_ARGS=1
;;
-
-k|--no-ssl)
NO_SSL=1
;;
@@ -124,6 +124,9 @@ while [[ $# -gt 0 ]]; do
TAG="$2"
shift # past argument
;;
+ -l|--legacy)
+ LEGACY=1
+ ;;
-h|--help)
printHelp
exit 0
@@ -236,13 +239,18 @@ if [ "$PLATFORM" == "msys2" ]; then
PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}.zip"
fi
elif [ "$ARCH" == "" ] && [ "$PLATFORM" == "vs" ]; then
- if [[ $BLEEDING_EDGE = 1 ]] ; then
- PKGS="openFrameworksLibs_${VER}_${PLATFORM}_64_1.zip \
- openFrameworksLibs_${VER}_${PLATFORM}_64_2.zip \
- openFrameworksLibs_${VER}_${PLATFORM}_arm64_1.zip \
- openFrameworksLibs_${VER}_${PLATFORM}_arm64_2.zip \
- openFrameworksLibs_${VER}_${PLATFORM}_arm64ec_1.zip \
- openFrameworksLibs_${VER}_${PLATFORM}_arm64ec_2.zip"
+ if [[ $BLEEDING_EDGE = 1 ]]; then
+ if [[ $LEGACY == 1 ]]; then
+ PKGS="openFrameworksLibs_${VER}_${PLATFORM}_2019_64_1.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_2019_64_2.zip"
+ else
+ PKGS="openFrameworksLibs_${VER}_${PLATFORM}_64_1.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_64_2.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_arm64_1.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_arm64_2.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_arm64ec_1.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_arm64ec_2.zip"
+ fi
else
PKGS="openFrameworksLibs_${VER}_${PLATFORM}_64_1.zip \
openFrameworksLibs_${VER}_${PLATFORM}_64_2.zip \
@@ -251,8 +259,13 @@ elif [ "$ARCH" == "" ] && [ "$PLATFORM" == "vs" ]; then
fi
elif [ "$PLATFORM" == "vs" ]; then
if [[ $BLEEDING_EDGE = 1 ]] ; then
- PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_1.zip \
- openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_2.zip"
+ if [[ $LEGACY == 1 ]]; then
+ PKGS="openFrameworksLibs_${VER}_${PLATFORM}_2019_64_1.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_2019_64_2.zip"
+ else
+ PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_1.zip \
+ openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_2.zip"
+ fi
else
PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_1.zip \
openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_2.zip \
diff --git a/scripts/dev/download_pg.sh b/scripts/dev/download_pg.sh
index be725d4cc6a..576471aedb7 100755
--- a/scripts/dev/download_pg.sh
+++ b/scripts/dev/download_pg.sh
@@ -6,7 +6,7 @@ ARCH=""
OVERWRITE=1
SILENT_ARGS=""
BLEEDING_EDGE=0
-DL_VERSION=2.6.0
+DL_VERSION=2.7.0
TAG=""
printHelp(){
@@ -214,16 +214,24 @@ if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then
else
rsync -avzp "${OUTDIR}/${OUTPUT}/resources/app/app/projectGenerator.exe" "${OUTDIR}/${OUTPUT}/projectGeneratorCmd.exe"
fi
- chmod +x "${OUTDIR}/${OUTPUT}/projectGeneratorCMD.exe"
- chmod +x "${OUTDIR}/${OUTPUT}/resources/app/projectGenerator.exe"
+ if command -v chmod &> /dev/null; then
+ chmod +x "${OUTDIR}/${OUTPUT}/projectGeneratorCmd.exe"
+ chmod +x "${OUTDIR}/${OUTPUT}/resources/app/app/projectGenerator.exe"
+ else
+ echo "Warning: chmod command not found, skipping permission adjustment."
+ fi
else
if ! command -v rsync &> /dev/null; then
cp -arX "${OUTDIR}/${OUTPUT}/projectGenerator$EXT/Contents/Resources/app/app/projectGenerator" "${OUTDIR}/${OUTPUT}/projectGenerator"
else
rsync -avzp "${OUTDIR}/${OUTPUT}/projectGenerator$EXT/Contents/Resources/app/app/projectGenerator" "${OUTDIR}/${OUTPUT}/projectGenerator"
fi
- chmod +x "${OUTDIR}/${OUTPUT}/projectGenerator"
- chmod +x "${OUTDIR}/${OUTPUT}/projectGenerator$EXT/Contents/MacOS/projectGenerator"
+ if command -v chmod &> /dev/null; then
+ chmod +x "${OUTDIR}/${OUTPUT}/projectGenerator"
+ chmod +x "${OUTDIR}/${OUTPUT}/projectGenerator$EXT/Contents/MacOS/projectGenerator"
+ else
+ echo "Warning: chmod command not found, skipping permission adjustment."
+ fi
fi
echo " ------ "
diff --git a/scripts/dev/nightlybuilds.sh b/scripts/dev/nightlybuilds.sh
index 9a32f59bda6..2c4e2b056c2 100755
--- a/scripts/dev/nightlybuilds.sh
+++ b/scripts/dev/nightlybuilds.sh
@@ -62,6 +62,7 @@ fi
./create_package.sh msys2 $lastversion master ucrt64
./create_package.sh vs $lastversion master
./create_package.sh vs $lastversion master 64
+./create_package.sh vs2019 $lastversion master 64
./create_package.sh ios $lastversion master
./create_package.sh osx $lastversion master
# ./create_package.sh macos $lastversion master
@@ -86,6 +87,7 @@ mv /var/www/versions/nightly/of_v${lastversion}_msys2_clang64_release.zip /var/w
mv /var/www/versions/nightly/of_v${lastversion}_msys2_ucrt64_release.zip /var/www/versions/nightly/of_v${lastversion}_msys2_ucrt64_nightly.zip
mv /var/www/versions/nightly/of_v${lastversion}_vs_release.zip /var/www/versions/nightly/of_v${lastversion}_vs_nightly.zip
mv /var/www/versions/nightly/of_v${lastversion}_vs_x64_release.zip /var/www/versions/nightly/of_v${lastversion}_vs_x64_nightly.zip
+mv /var/www/versions/nightly/of_v${lastversion}_vs2019_x64_release.zip /var/www/versions/nightly/of_v${lastversion}_vs2019_x64_nightly.zip
mv /var/www/versions/nightly/of_v${lastversion}_ios_release.zip /var/www/versions/nightly/of_v${lastversion}_ios_nightly.tar.gz
mv /var/www/versions/nightly/of_v${lastversion}_osx_release.zip /var/www/versions/nightly/of_v${lastversion}_osx_nightly.tar.gz
mv /var/www/versions/nightly/of_v${lastversion}_macos_release.zip /var/www/versions/nightly/of_v${lastversion}_macos_nightly.tar.gz
diff --git a/scripts/templates/vs/emptyExample.sln b/scripts/templates/vs/emptyExample.sln
index fa41e610451..1ee7ba89824 100644
--- a/scripts/templates/vs/emptyExample.sln
+++ b/scripts/templates/vs/emptyExample.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.34330.188
-MinimumVisualStudioVersion = 10.0.40219.1
+MinimumVisualStudioVersion = 17.0.0.0
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emptyExample", "emptyExample.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}"
diff --git a/scripts/templates/vs2019/bin/data/.gitkeep b/scripts/templates/vs2019/bin/data/.gitkeep
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/scripts/templates/vs2019/emptyExample.sln b/scripts/templates/vs2019/emptyExample.sln
new file mode 100644
index 00000000000..3cc3717a0df
--- /dev/null
+++ b/scripts/templates/vs2019/emptyExample.sln
@@ -0,0 +1,50 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.11.32802.440
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emptyExample", "emptyExample.vcxproj", "{D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs2019\openframeworksLib.vcxproj", "{1C8125C9-365D-4DD2-B2C9-718E3DBADB55}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Debug|ARM64EC = Debug|ARM64EC
+ Debug|x64 = Debug|x64
+ Release|ARM64 = Release|ARM64
+ Release|ARM64EC = Release|ARM64EC
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Debug|x64.ActiveCfg = Debug|x64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Debug|x64.Build.0 = Debug|x64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Debug|ARM64.Build.0 = Debug|ARM64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Debug|ARM64EC.ActiveCfg = Debug|ARM64EC
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Debug|ARM64EC.Build.0 = Debug|ARM64EC
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Release|x64.ActiveCfg = Release|x64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Release|x64.Build.0 = Release|x64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Release|ARM64.ActiveCfg = Release|ARM64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Release|ARM64.Build.0 = Release|ARM64
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}.Release|ARM64EC.Build.0 = Release|ARM64EC
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Debug|x64.ActiveCfg = Debug|x64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Debug|x64.Build.0 = Debug|x64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Debug|ARM64.Build.0 = Debug|ARM64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Debug|ARM64EC.ActiveCfg = Debug|ARM64EC
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Debug|ARM64EC.Build.0 = Debug|ARM64EC
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Release|x64.ActiveCfg = Release|x64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Release|x64.Build.0 = Release|x64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Release|ARM64.ActiveCfg = Release|ARM64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Release|ARM64.Build.0 = Release|ARM64
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}.Release|ARM64EC.Build.0 = Release|ARM64EC
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {CD779E91-CF42-4FC2-AA31-0ECED9E986D8}
+ EndGlobalSection
+EndGlobal
diff --git a/scripts/templates/vs2019/emptyExample.vcxproj b/scripts/templates/vs2019/emptyExample.vcxproj
new file mode 100644
index 00000000000..4de2dc5bef6
--- /dev/null
+++ b/scripts/templates/vs2019/emptyExample.vcxproj
@@ -0,0 +1,254 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ Debug
+ ARM64
+
+
+ Release
+ ARM64
+
+
+ Debug
+ ARM64EC
+
+
+ Release
+ ARM64EC
+
+
+
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))
+ $(LatestTargetPlatformVersion)
+ $(WindowsTargetPlatformVersion)
+
+
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '11.0'))
+ $(LatestTargetPlatformVersion)
+ $(WindowsTargetPlatformVersion)
+
+
+ {D29A9376-DF3A-4BEF-A8FA-EE4FEF559450}
+ Win32Proj
+ emptyExample
+
+
+
+ Application
+ Unicode
+ v142
+
+
+ Application
+ Unicode
+ true
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\
+ obj\$(Platform)\$(Configuration)\
+ $(ProjectName)_debug
+ true
+ true
+
+
+ bin\
+ obj\$(Platform)\$(Configuration)\
+ false
+
+
+
+ Disabled
+ EnableFastChecks
+ %(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ %(AdditionalIncludeDirectories)
+ CompileAsCpp
+ true
+ $(IntDir)\Build\%(RelativeDir)\$(Configuration)\
+ stdcpplatest
+ /Zc:__cplusplus %(AdditionalOptions)
+
+
+
+
+
+
+ true
+ Console
+ true
+ %(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+ MultiplyDefinedSymbolOnly
+
+
+
+
+ true
+ Console
+ true
+ %(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+ MultiplyDefinedSymbolOnly
+
+
+
+
+ true
+ Console
+ true
+ %(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+ MultiplyDefinedSymbolOnly
+
+
+
+
+ false
+ %(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ %(AdditionalIncludeDirectories)
+ CompileAsCpp
+ $(IntDir)\Build\%(RelativeDir)\$(Configuration)\
+ stdcpplatest
+ /Zc:__cplusplus %(AdditionalOptions)
+
+
+
+
+
+
+ false
+ false
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+ MultiplyDefinedSymbolOnly
+
+
+
+
+ false
+ false
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+ MultiplyDefinedSymbolOnly
+
+
+
+
+ false
+ false
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+ MultiplyDefinedSymbolOnly
+
+
+
+
+
+ xcopy /Y /E "$(ProjectDir)dll\x64\*.dll" "$(TargetDir)"
+
+
+
+ stdc17
+ true
+ OldStyle
+
+
+ stdc17
+ true
+ OldStyle
+
+
+
+
+
+ xcopy /Y /E "$(ProjectDir)dll\ARM64\*.dll" "$(TargetDir)"
+
+
+
+ stdc17
+ true
+ OldStyle
+
+
+ stdc17
+ true
+ OldStyle
+
+
+
+
+
+ xcopy /Y /E "$(ProjectDir)dll\ARM64EC\*.dll" "$(TargetDir)"
+
+
+
+ stdc17
+ true
+ OldStyle
+
+
+ stdc17
+ true
+ OldStyle
+
+
+
+
+
+
+
+
+
+
+
+ {1C8125C9-365D-4DD2-B2C9-718E3DBADB55}
+
+
+
+
+ /D_DEBUG %(AdditionalOptions)
+ $(OF_ROOT)\libs\openFrameworksCompiled\project\vs2019
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/scripts/templates/vs2019/emptyExample.vcxproj.filters b/scripts/templates/vs2019/emptyExample.vcxproj.filters
new file mode 100644
index 00000000000..553b92be731
--- /dev/null
+++ b/scripts/templates/vs2019/emptyExample.vcxproj.filters
@@ -0,0 +1,24 @@
+
+
+
+
+ src
+
+
+ src
+
+
+
+
+ {d8374175-7454-4a24-b08a-aac121d3ad6f}
+
+
+
+
+ src
+
+
+
+
+
+
\ No newline at end of file
diff --git a/scripts/templates/vs2019/icon.rc b/scripts/templates/vs2019/icon.rc
new file mode 100644
index 00000000000..7e26eb3534f
--- /dev/null
+++ b/scripts/templates/vs2019/icon.rc
@@ -0,0 +1,8 @@
+// Icon Resource Definition
+#define MAIN_ICON 102
+
+#if defined(_DEBUG)
+MAIN_ICON ICON "icon_debug.ico"
+#else
+MAIN_ICON ICON "icon.ico"
+#endif
diff --git a/scripts/templates/vs2019/src/main.cpp b/scripts/templates/vs2019/src/main.cpp
new file mode 100644
index 00000000000..4e6518d49dc
--- /dev/null
+++ b/scripts/templates/vs2019/src/main.cpp
@@ -0,0 +1,17 @@
+#include "ofMain.h"
+#include "ofApp.h"
+
+//========================================================================
+int main( ){
+
+ //Use ofGLFWWindowSettings for more options like multi-monitor fullscreen
+ ofGLWindowSettings settings;
+ settings.setSize(1024, 768);
+ settings.windowMode = OF_WINDOW; //can also be OF_FULLSCREEN
+
+ auto window = ofCreateWindow(settings);
+
+ ofRunApp(window, std::make_shared());
+ ofRunMainLoop();
+
+}
diff --git a/scripts/templates/vs2019/src/ofApp.cpp b/scripts/templates/vs2019/src/ofApp.cpp
new file mode 100644
index 00000000000..0d3236e7cf9
--- /dev/null
+++ b/scripts/templates/vs2019/src/ofApp.cpp
@@ -0,0 +1,71 @@
+#include "ofApp.h"
+
+//--------------------------------------------------------------
+void ofApp::setup(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::update(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::draw(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::keyPressed(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::keyReleased(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseMoved(int x, int y ){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseDragged(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mousePressed(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseReleased(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseEntered(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseExited(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::windowResized(int w, int h){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::gotMessage(ofMessage msg){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::dragEvent(ofDragInfo dragInfo){
+
+}
diff --git a/scripts/templates/vs2019/src/ofApp.h b/scripts/templates/vs2019/src/ofApp.h
new file mode 100644
index 00000000000..a9a1eea2ad6
--- /dev/null
+++ b/scripts/templates/vs2019/src/ofApp.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "ofMain.h"
+
+class ofApp : public ofBaseApp{
+
+ public:
+ void setup();
+ void update();
+ void draw();
+
+ void keyPressed(int key);
+ void keyReleased(int key);
+ void mouseMoved(int x, int y );
+ void mouseDragged(int x, int y, int button);
+ void mousePressed(int x, int y, int button);
+ void mouseReleased(int x, int y, int button);
+ void mouseEntered(int x, int y);
+ void mouseExited(int x, int y);
+ void windowResized(int w, int h);
+ void dragEvent(ofDragInfo dragInfo);
+ void gotMessage(ofMessage msg);
+
+};
diff --git a/scripts/vs/download_libs_2019_x64.sh b/scripts/vs/download_libs_2019_x64.sh
new file mode 100644
index 00000000000..c1c706ecb04
--- /dev/null
+++ b/scripts/vs/download_libs_2019_x64.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd $SCRIPT_DIR
+../dev/download_libs.sh -p vs -b -l -a 64 $@