diff --git a/.github/workflows/build_test_release.yaml b/.github/workflows/build_test_release.yaml index f30d0ab..9ad9193 100644 --- a/.github/workflows/build_test_release.yaml +++ b/.github/workflows/build_test_release.yaml @@ -6,11 +6,11 @@ on: - "*.*.*" # branches: # - main + pull_request: + branches: ["main"] env: ANDROID_NDK_VERSION: r26c - OPENCV_VERSION: 4.9.0 - LIB_NAME: libopencv jobs: build-android: @@ -25,7 +25,7 @@ jobs: sudo apt-get update sudo apt-get install -y build-essential libgtk-3-dev ffmpeg libavcodec-dev \ - cmake ninja-build nasm libavformat-dev libavutil-dev libswscale-dev \ + cmake ninja-build libavformat-dev libavutil-dev libswscale-dev \ libgflags-dev python3 unzip tree python3-pip python3 -m pip install conan @@ -83,7 +83,7 @@ jobs: sudo apt-get update sudo apt-get install -y curl git wget python3 unzip build-essential \ libgtk-3-dev ffmpeg libavcodec-dev \ - cmake ninja-build nasm libavformat-dev libavutil-dev \ + cmake ninja-build libavformat-dev libavutil-dev \ libswscale-dev libgflags-dev \ libjpeg-dev libpng-dev libtiff-dev python3-pip @@ -148,7 +148,7 @@ jobs: submodules: true - name: setup run: | - brew install --force --overwrite ninja ccache ffmpeg@6 nasm conan + brew install --force --overwrite ninja ccache ffmpeg@6 conan brew link --overwrite ffmpeg@6 conan profile detect -f cd ${{github.workspace}} @@ -178,7 +178,7 @@ jobs: submodules: true - name: setup run: | - brew install --force --overwrite ninja ccache ffmpeg@6 nasm conan + brew install --force --overwrite ninja ccache ffmpeg@6 conan brew link --overwrite ffmpeg@6 conan profile detect -f cd ${{github.workspace}} @@ -209,7 +209,7 @@ jobs: submodules: true - name: setup run: | - brew install --force --overwrite ninja ccache ffmpeg@6 nasm conan + brew install --force --overwrite ninja ccache ffmpeg@6 conan conan profile detect -f cd ${{github.workspace}} - name: build diff --git a/conanfile.py b/conanfile.py index 57eedcb..ad1d997 100644 --- a/conanfile.py +++ b/conanfile.py @@ -10,7 +10,7 @@ from pathlib import Path import yaml -OPENCV_VERSION = "4.9.0" +OPENCV_VERSION = "4.10.0" # for compatibility arch_map = { @@ -371,7 +371,7 @@ def requirements(self): def build_requirements(self): self.tool_requires("cmake/3.28.1") - self.tool_requires("nasm/2.16.01") + # self.tool_requires("nasm/2.16.01") # self.tool_requires("ccache/4.9.1") if self.settings.os != "Windows": self.tool_requires("ninja/1.11.1") diff --git a/profiles/ios.toolchain.cmake b/profiles/ios.toolchain.cmake index b075616..db2a327 100644 --- a/profiles/ios.toolchain.cmake +++ b/profiles/ios.toolchain.cmake @@ -67,6 +67,9 @@ # TVOSCOMBINED = Build for arm64 x86_64 tvOS + tvOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) # SIMULATOR_TVOS = Build for x86_64 tvOS Simulator. # SIMULATORARM64_TVOS = Build for arm64 tvOS Simulator. +# VISIONOSCOMBINED = Build for arm64 visionOS + visionOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# VISIONOS = Build for arm64 visionOS. +# SIMULATOR_VISIONOS = Build for arm64 visionOS Simulator. # WATCHOS = Build for armv7k arm64_32 for watchOS. # WATCHOSCOMBINED = Build for armv7k arm64_32 x86_64 watchOS + watchOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) # SIMULATOR_WATCHOS = Build for x86_64 for watchOS Simulator. @@ -162,7 +165,7 @@ list(APPEND _supported_platforms "TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" "SIMULATORARM64_TVOS" "WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" "SIMULATORARM64_WATCHOS" "MAC" "MAC_ARM64" "MAC_UNIVERSAL" - "VISIONOS" "SIMULATOR_VISIONOS" "SIMULATOR64_VISIONOS" + "VISIONOS" "SIMULATOR_VISIONOS" "VISIONOSCOMBINED" "MAC_CATALYST" "MAC_CATALYST_ARM64") # Cache what generator is used @@ -263,7 +266,7 @@ if(NOT DEFINED DEPLOYMENT_TARGET) elseif(PLATFORM STREQUAL "MAC") # Unless specified, SDK version 10.13 (High Sierra) is used by default as the minimum target version (macos). set(DEPLOYMENT_TARGET "11.0") - elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "SIMULATOR64_VISIONOS") + elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "VISIONOSCOMBINED") # Unless specified, SDK version 1.0 is used by default as minimum target version (visionOS). set(DEPLOYMENT_TARGET "1.0") elseif(PLATFORM STREQUAL "MAC_ARM64") @@ -412,9 +415,9 @@ elseif (PLATFORM_INT STREQUAL "TVOSCOMBINED") set(ARCHS arm64 x86_64) set(APPLE_TARGET_TRIPLE_INT arm64-x86_64-apple-tvos${DEPLOYMENT_TARGET}) set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvos*] "arm64") - set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvsimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvsimulator*] "x86_64 arm64") set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvos*] "arm64") - set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvsimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvsimulator*] "x86_64 arm64") else() set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}) endif() @@ -491,14 +494,6 @@ elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_WATCHOS") else() set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}-simulator) endif() -elseif(PLATFORM_INT STREQUAL "SIMULATOR64_VISIONOS") - set(SDK_NAME xrsimulator) - if(NOT ARCHS) - set(ARCHS x86_64) - set(APPLE_TARGET_TRIPLE_INT x86_64-apple-xros${DEPLOYMENT_TARGET}-simulator) - else() - set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}-simulator) - endif() elseif(PLATFORM_INT STREQUAL "SIMULATOR_VISIONOS") set(SDK_NAME xrsimulator) if(NOT ARCHS) @@ -515,6 +510,20 @@ elseif(PLATFORM_INT STREQUAL "VISIONOS") else() set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}) endif() +elseif(PLATFORM_INT STREQUAL "VISIONOSCOMBINED") + set(SDK_NAME xros) + if(MODERN_CMAKE) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=xros*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=xrsimulator*] "arm64") + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the VISIONOSCOMBINED setting work") + endif() elseif(PLATFORM_INT STREQUAL "MAC" OR PLATFORM_INT STREQUAL "MAC_CATALYST") set(SDK_NAME macosx) if(NOT ARCHS) @@ -755,6 +764,9 @@ if(PLATFORM STREQUAL "MAC" OR PLATFORM STREQUAL "MAC_ARM64" OR PLATFORM STREQUAL elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") set(IOS ON CACHE BOOL "") set(MACOS ON CACHE BOOL "") +elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "VISIONOSCOMBINED") + set(IOS OFF CACHE BOOL "") + set(VISIONOS ON CACHE BOOL "") else() set(IOS ON CACHE BOOL "") endif() @@ -769,6 +781,7 @@ if (NOT DEFINED CMAKE_MACOSX_BUNDLE) set(CMAKE_MACOSX_BUNDLE YES) endif() set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_SHARED_LIBRARY_PREFIX "lib") set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so") @@ -1120,4 +1133,3 @@ macro(find_host_package) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH) endmacro(find_host_package) -