diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index a9b27e1fa6a..2de03cfd1aa 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -116,7 +116,7 @@ jobs: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - build-vs2022: - runs-on: windows-2022 + runs-on: windows-2025 strategy: matrix: platform: [x64, ARM64, ARM64EC] @@ -161,61 +161,6 @@ 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.27.0 - 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/libs/openFrameworks/utils/ofURLFileLoader.cpp b/libs/openFrameworks/utils/ofURLFileLoader.cpp index 39c07ed221f..e31f08b9ab4 100644 --- a/libs/openFrameworks/utils/ofURLFileLoader.cpp +++ b/libs/openFrameworks/utils/ofURLFileLoader.cpp @@ -16,7 +16,6 @@ using std::string; #define MAX_POSTFIELDS_SIZE (1024 * 1024) - #define NO_OPENSSL 1 #include #include #include @@ -25,10 +24,9 @@ using std::string; #include #include - #if !defined(NO_OPENSSL) - #define CERTIFICATE_FILE "ssl/cacert.pem" - #define PRIVATE_KEY_FILE "ssl/cacert.key" - #endif + #define CERTIFICATE_FILE "cacert.pem" + #define PRIVATE_KEY_FILE "cacert.key" + #endif int ofHttpRequest::nextID = 0; @@ -51,10 +49,8 @@ class ofURLFileLoaderImpl : public ofThread, public ofBaseURLFileLoader { void remove(int id); void clear(); void stop(); -#if !defined(NO_OPENSSL) bool checkValidCertifcate(const std::string& cert_file); void createSSLCertificate(); -#endif ofHttpResponse handleRequest(const ofHttpRequest & request); int handleRequestAsync(const ofHttpRequest & request); // returns id @@ -134,8 +130,9 @@ void ofURLFileLoaderImpl::stop() { curl_global_cleanup(); } -#if !defined(NO_OPENSSL) + bool ofURLFileLoaderImpl::checkValidCertifcate(const std::string & cert_file) { +#if !defined(NO_OPENSSL) try { FILE * fp = fopen(cert_file.c_str(), "r"); if (!fp) return false; @@ -154,10 +151,12 @@ bool ofURLFileLoaderImpl::checkValidCertifcate(const std::string & cert_file) { ofLogError("ofURLFileLoader") << "Unknown error occurred in checkValidCertifcate."; return false; } +#endif } void ofURLFileLoaderImpl::createSSLCertificate() { +#if !defined(NO_OPENSSL) try { EVP_PKEY * pkey = nullptr; X509 * x509 = nullptr; @@ -233,8 +232,9 @@ void ofURLFileLoaderImpl::createSSLCertificate() { } catch (...) { ofLogError("ofURLFileLoader") << "Unknown error occurred in createSSLCertificate."; } -} #endif +} + void ofURLFileLoaderImpl::threadedFunction() { @@ -317,18 +317,6 @@ ofHttpResponse ofURLFileLoaderImpl::handleRequest(const ofHttpRequest & request) } } if(version->features & CURL_VERSION_SSL) { -#if !defined(NO_OPENSSL) - const std::string caPath = "ssl"; - const std::string caFile = "ssl/cacert.pem"; - if (ofFile::doesFileExist(ofToDataPath(CERTIFICATE_FILE)) && checkValidCertifcate(ofToDataPath(CERTIFICATE_FILE))) { - ofLogVerbose("ofURLFileLoader") << "SSL valid certificate found"; - } else { - ofLogVerbose("ofURLFileLoader") << "SSL certificate not found - generating"; - createSSLCertificate(); - } - curl_easy_setopt(curl.get(), CURLOPT_CAPATH, ofToDataPath(caPath, true).c_str()); - curl_easy_setopt(curl.get(), CURLOPT_CAINFO, ofToDataPath(caFile, true).c_str()); -#endif curl_easy_setopt(curl.get(), CURLOPT_SSL_VERIFYPEER, false); curl_easy_setopt(curl.get(), CURLOPT_SSL_VERIFYHOST, 2L); } diff --git a/libs/openFrameworksCompiled/project/CMake/toolchain/android.toolchain.cmake b/libs/openFrameworksCompiled/project/CMake/toolchain/android.toolchain.cmake index 7316ae04880..868716f4ede 100644 --- a/libs/openFrameworksCompiled/project/CMake/toolchain/android.toolchain.cmake +++ b/libs/openFrameworksCompiled/project/CMake/toolchain/android.toolchain.cmake @@ -44,11 +44,11 @@ set(ANDROID_NATIVE_API_LEVEL ${ANDROID_API}) # Detect Host Platform if(NOT DEFINED HOST_PLATFORM) if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin") - #if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64") - # set(HOST_PLATFORM "darwin-arm64") - #else() + if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64") + set(HOST_PLATFORM "darwin-arm64") + else() set(HOST_PLATFORM "darwin-x86_64") - #endif() + endif() elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") set(HOST_PLATFORM "windows-x86_64") # Windows ARM64 is rare, adjust if needed elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") @@ -79,29 +79,29 @@ if(ANDROID_ABI STREQUAL "armeabi-v7a") set(CMAKE_ANDROID_ARM_MODE ON) set(CMAKE_ANDROID_ARM_NEON ON) set(CMAKE_SYSTEM_PROCESSOR "armv7-a") - set(CMAKE_C_FLAGS "-mfpu=neon -mfloat-abi=softfp -O3 -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET}") - set(CMAKE_CXX_FLAGS "-mfpu=neon -mfloat-abi=softfp -O3 -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET}") + set(CMAKE_C_FLAGS "-mfpu=neon -mfloat-abi=softfp -O3 -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") + set(CMAKE_CXX_FLAGS "-mfpu=neon -mfloat-abi=softfp -O3 -ffast-math -funroll-loops -funsafe-math-optimizations -fexceptions -frtti --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") elseif(ANDROID_ABI STREQUAL "arm64-v8a") set(MACHINE "arm64") set(ANDROID_PREFIX "aarch64-linux-android") set(ANDROID_TARGET "aarch64-none-linux-android${ANDROID_NATIVE_API_LEVEL}") set(CMAKE_SYSTEM_PROCESSOR "aarch64") - set(CMAKE_C_FLAGS "-O3 -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET}") - set(CMAKE_CXX_FLAGS "-O3 -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET}") + set(CMAKE_C_FLAGS "-O3 -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") + set(CMAKE_CXX_FLAGS "-O3 -fexceptions -frtti -ffast-math -funroll-loops -funsafe-math-optimizations --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") elseif(ANDROID_ABI STREQUAL "x86") set(MACHINE "i686") set(ANDROID_PREFIX "i686-linux-android") set(ANDROID_TARGET "i686-none-linux-android${ANDROID_NATIVE_API_LEVEL}") set(CMAKE_SYSTEM_PROCESSOR "i686") - set(CMAKE_C_FLAGS "-msse4.2 -mavx -O3 -ffast-math -funroll-loops") - set(CMAKE_CXX_FLAGS "-msse4.2 -mavx -O3 -ffast-math -funroll-loops") + set(CMAKE_C_FLAGS "-O3 --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") + set(CMAKE_CXX_FLAGS "-O3 -fexceptions -frtti --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") elseif(ANDROID_ABI STREQUAL "x86_64") set(MACHINE "x86_64") set(ANDROID_PREFIX "x86_64-linux-android") set(ANDROID_TARGET "x86_64-none-linux-android${ANDROID_NATIVE_API_LEVEL}") set(CMAKE_SYSTEM_PROCESSOR "x86_64") - set(CMAKE_C_FLAGS "-msse4.2 -mavx -O3 -ffast-math -funroll-loops --target=${ANDROID_TARGET}") - set(CMAKE_CXX_FLAGS "-msse4.2 -mavx -O3 -ffast-math -funroll-loops --target=${ANDROID_TARGET}") + set(CMAKE_C_FLAGS "-O3 --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") + set(CMAKE_CXX_FLAGS "-O3 -fexceptions -frtti --target=${ANDROID_TARGET} -D__ANDROID_API__=${ANDROID_API}") else() message(FATAL_ERROR "Unsupported ANDROID_ABI: ${ANDROID_ABI}") endif() diff --git a/libs/openFrameworksCompiled/project/android/openframeworksAndroid/CMakeLists.txt b/libs/openFrameworksCompiled/project/android/openframeworksAndroid/CMakeLists.txt index 073c2a11ebf..a74d89d1658 100644 --- a/libs/openFrameworksCompiled/project/android/openframeworksAndroid/CMakeLists.txt +++ b/libs/openFrameworksCompiled/project/android/openframeworksAndroid/CMakeLists.txt @@ -26,8 +26,8 @@ set(PRJ_OFX_ANDROID_CPP_PATH ${PRJ_ADDONS_PATH}/ofxAndroid/src) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CONFIGURATION_BUILD_DIR ${OF_ANDROID_OUTPUT}) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ferror-limit=0 -std=c17 -Oz -Wall -fno-short-enums -fPIE -fPIC -fexceptions -ffunction-sections -fdata-sections") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ferror-limit=0 -std=c++23 -Oz -stdlib=libc++ -Wall -fno-short-enums -fPIE -fPIC -fexceptions -ffunction-sections -fdata-sections") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall -fno-short-enums -fPIE -fPIC") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall -fno-short-enums -fPIE -fPIC -fexceptions") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export-dynamic") file(GLOB OF_SOURCES ${OF_SOURCE_DIR}/*.cpp diff --git a/libs/openFrameworksCompiled/project/android/openframeworksAndroid/build.gradle b/libs/openFrameworksCompiled/project/android/openframeworksAndroid/build.gradle index 16032830787..cbb9bd03311 100644 --- a/libs/openFrameworksCompiled/project/android/openframeworksAndroid/build.gradle +++ b/libs/openFrameworksCompiled/project/android/openframeworksAndroid/build.gradle @@ -18,8 +18,8 @@ tasks.register("prepareKotlinBuildScriptModel"){} android { namespace 'cc.openframeworks.android' compileSdkVersion 34 - ndkVersion '28.0.13004108' - buildToolsVersion '35.0.0' // Updated from 35.0.1 to 34.0.0 + ndkVersion '28.2.13676358' + buildToolsVersion '35.0.0' defaultConfig { minSdkVersion 34 @@ -43,6 +43,8 @@ android { // Enable NEON only for ARM architectures if (android.defaultConfig.ndk.abiFilters.contains("armeabi-v7a") || android.defaultConfig.ndk.abiFilters.contains("arm64-v8a")) { arguments "-DANDROID_ARM_NEON=TRUE" + } else { + arguments "-DANDROID_ARM_NEON=FALSE" } abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64' diff --git a/libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj b/libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj index 6c23ebaa879..8504cf20f7b 100644 --- a/libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj +++ b/libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj @@ -77,13 +77,16 @@ 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\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;GLM_FORCE_CTOR_INIT;GLM_ENABLE_EXPERIMENTAL;%(PreprocessorDefinitions) + + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) + true EnableFastChecks MultiThreadedDebugDLL Level3 false CompileAsCpp - stdcpplatest + stdcpp23 /Zc:__cplusplus %(AdditionalOptions) false stdc17 @@ -121,6 +124,9 @@ 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\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;GLM_FORCE_CTOR_INIT;GLM_ENABLE_EXPERIMENTAL;%(PreprocessorDefinitions) + + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) + MultiThreadedDLL Level1 true diff --git a/scripts/templates/vs/emptyExample.vcxproj b/scripts/templates/vs/emptyExample.vcxproj index 2a0d1f89323..4462071bebe 100644 --- a/scripts/templates/vs/emptyExample.vcxproj +++ b/scripts/templates/vs/emptyExample.vcxproj @@ -86,7 +86,7 @@ CompileAsCpp true $(IntDir)\Build\%(RelativeDir)\$(Configuration)\ - stdcpplatest + stdcpp23 /Zc:__cplusplus %(AdditionalOptions) @@ -97,7 +97,7 @@ true Console true - %(AdditionalDependencies) + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) %(AdditionalLibraryDirectories) MultiplyDefinedSymbolOnly @@ -107,7 +107,7 @@ true Console true - %(AdditionalDependencies) + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) %(AdditionalLibraryDirectories) MultiplyDefinedSymbolOnly @@ -117,7 +117,7 @@ true Console true - %(AdditionalDependencies) + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) %(AdditionalLibraryDirectories) MultiplyDefinedSymbolOnly @@ -145,7 +145,7 @@ true true true - %(AdditionalDependencies) + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) %(AdditionalLibraryDirectories) MultiplyDefinedSymbolOnly @@ -158,7 +158,7 @@ true true true - %(AdditionalDependencies) + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) %(AdditionalLibraryDirectories) MultiplyDefinedSymbolOnly @@ -171,7 +171,7 @@ true true true - %(AdditionalDependencies) + iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies) %(AdditionalLibraryDirectories) MultiplyDefinedSymbolOnly