mirror of
				https://github.com/nihui/opencv-mobile.git
				synced 2025-10-31 03:46:21 +08:00 
			
		
		
		
	update apple package, drop 32bit, drop bitcode, add watchos tvos visionos (#114)
This commit is contained in:
		
							
								
								
									
										655
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										655
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -6,11 +6,14 @@ on: | ||||
|       - '*' | ||||
|  | ||||
| env: | ||||
|   DEVELOPER_DIR: /Applications/Xcode_13.4.1.app/Contents/Developer | ||||
|   IOS_DEPLOYMENT_TARGET: '9.0' | ||||
|   MAC_DEPLOYMENT_TARGET: '10.9' | ||||
|   MAC_ARM64_DEPLOYMENT_TARGET: '11.0' | ||||
|   DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer | ||||
|   IOS_DEPLOYMENT_TARGET: '13.0' | ||||
|   MAC_DEPLOYMENT_TARGET: '11.0' | ||||
|   MAC_CATALYST_DEPLOYMENT_TARGET: '13.1' | ||||
|   WATCHOS_DEPLOYMENT_TARGET: '6.0' | ||||
|   TVOS_DEPLOYMENT_TARGET: '11.0' | ||||
|   VISIONOS_DEPLOYMENT_TARGET: '1.0' | ||||
|   ENABLE_BITCODE: OFF | ||||
|   ENABLE_ARC: OFF | ||||
|   ENABLE_VISIBILITY: OFF | ||||
|   EMSCRIPTEN_VERSION: 3.1.28 | ||||
| @@ -334,17 +337,16 @@ jobs: | ||||
|  | ||||
|   ios: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-12 | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|         bitcode: [OFF, ON] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=OS \ | ||||
|         -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=${{ matrix.bitcode }} \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
| @@ -357,31 +359,15 @@ jobs: | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       if: matrix.bitcode == 'OFF' | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios" >> $GITHUB_ENV | ||||
|     - name: setup-opencv-source | ||||
|       if: matrix.bitcode == 'ON' | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-bitcode" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-armv7 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-armv7 && cd build-armv7 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="armv7" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
| @@ -389,16 +375,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64e | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64e && cd build-arm64e | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64e" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
| @@ -410,9 +387,7 @@ jobs: | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-armv7/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64e/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
| @@ -423,9 +398,9 @@ jobs: | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="armv7;arm64;arm64e" \ | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 3 | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
| @@ -434,17 +409,16 @@ jobs: | ||||
|  | ||||
|   ios-simulator: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-12 | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|         bitcode: [OFF, ON] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=SIMULATOR \ | ||||
|         -DDEPLOYMENT_TARGET=$IOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=${{ matrix.bitcode }} \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
| @@ -457,31 +431,15 @@ jobs: | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       if: matrix.bitcode == 'OFF' | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator" >> $GITHUB_ENV | ||||
|     - name: setup-opencv-source | ||||
|       if: matrix.bitcode == 'ON' | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator-bitcode" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-i386 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-i386 && cd build-i386 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="i386" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-x86_64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
| @@ -489,7 +447,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
| @@ -498,7 +456,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
| @@ -510,7 +468,6 @@ jobs: | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-i386/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
| @@ -523,9 +480,9 @@ jobs: | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="i386;x86_64;arm64" \ | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64;arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 3 | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
| @@ -628,7 +585,7 @@ jobs: | ||||
|  | ||||
|   macos: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-12 | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
| @@ -663,7 +620,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC -DARCHS="x86_64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
| @@ -672,7 +629,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
| @@ -698,14 +655,14 @@ jobs: | ||||
|         mkdir build-x86_64 && cd build-x86_64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC -DARCHS="x86_64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 3 | ||||
|         cmake --build . -j 4 | ||||
|     - name: test-arm64 | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build-arm64 && cd build-arm64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 3 | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
| @@ -714,17 +671,16 @@ jobs: | ||||
|  | ||||
|   mac-catalyst: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-12 | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|         bitcode: [OFF, ON] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=MAC_CATALYST \ | ||||
|         -DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=${{ matrix.bitcode }} \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
| @@ -737,17 +693,10 @@ jobs: | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       if: matrix.bitcode == 'OFF' | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst" >> $GITHUB_ENV | ||||
|     - name: setup-opencv-source | ||||
|       if: matrix.bitcode == 'ON' | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst-bitcode" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
| @@ -760,7 +709,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
| @@ -769,7 +718,7 @@ jobs: | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 3 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
| @@ -795,7 +744,489 @@ jobs: | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64;arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 3 | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.PACKAGE_NAME }} | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   watchos: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=WATCHOS \ | ||||
|         -DDEPLOYMENT_TARGET=$WATCHOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_INSTALL_PREFIX=install \ | ||||
|         -DCMAKE_BUILD_TYPE=Release \ | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-watchos" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-armv7k | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-armv7k && cd build-armv7k | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="armv7k" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64_32 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64_32 && cd build-arm64_32 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64_32" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
|         rm -rf opencv2.framework | ||||
|         mkdir -p opencv2.framework/Versions/A/Headers | ||||
|         mkdir -p opencv2.framework/Versions/A/Resources | ||||
|         ln -s A opencv2.framework/Versions/Current | ||||
|         ln -s Versions/Current/Headers opencv2.framework/Headers | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-armv7k/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64_32/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64_32/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64_32/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/ | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework | ||||
|     - name: test | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="armv7k;arm64_32" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.PACKAGE_NAME }} | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   watchos-simulator: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=SIMULATOR_WATCHOS \ | ||||
|         -DDEPLOYMENT_TARGET=$WATCHOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_INSTALL_PREFIX=install \ | ||||
|         -DCMAKE_BUILD_TYPE=Release \ | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-watchos-simulator" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-x86_64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-x86_64 && cd build-x86_64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64 && cd build-arm64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
|         rm -rf opencv2.framework | ||||
|         mkdir -p opencv2.framework/Versions/A/Headers | ||||
|         mkdir -p opencv2.framework/Versions/A/Resources | ||||
|         ln -s A opencv2.framework/Versions/Current | ||||
|         ln -s Versions/Current/Headers opencv2.framework/Headers | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/ | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework | ||||
|     - name: test | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64;arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.PACKAGE_NAME }} | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   tvos: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=TVOS \ | ||||
|         -DDEPLOYMENT_TARGET=$TVOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_INSTALL_PREFIX=install \ | ||||
|         -DCMAKE_BUILD_TYPE=Release \ | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-tvos" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64 && cd build-arm64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64e | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64e && cd build-arm64e | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64e" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
|         rm -rf opencv2.framework | ||||
|         mkdir -p opencv2.framework/Versions/A/Headers | ||||
|         mkdir -p opencv2.framework/Versions/A/Resources | ||||
|         ln -s A opencv2.framework/Versions/Current | ||||
|         ln -s Versions/Current/Headers opencv2.framework/Headers | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64e/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64e/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64e/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/ | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework | ||||
|     - name: test | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64;arm64e" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.PACKAGE_NAME }} | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   tvos-simulator: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=SIMULATOR_TVOS \ | ||||
|         -DDEPLOYMENT_TARGET=$TVOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_INSTALL_PREFIX=install \ | ||||
|         -DCMAKE_BUILD_TYPE=Release \ | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-tvos-simulator" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-x86_64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-x86_64 && cd build-x86_64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64 && cd build-arm64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
|         rm -rf opencv2.framework | ||||
|         mkdir -p opencv2.framework/Versions/A/Headers | ||||
|         mkdir -p opencv2.framework/Versions/A/Resources | ||||
|         ln -s A opencv2.framework/Versions/Current | ||||
|         ln -s Versions/Current/Headers opencv2.framework/Headers | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/ | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework | ||||
|     - name: test | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64;arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.PACKAGE_NAME }} | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   visionos: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=VISIONOS \ | ||||
|         -DDEPLOYMENT_TARGET=$VISIONOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_INSTALL_PREFIX=install \ | ||||
|         -DCMAKE_BUILD_TYPE=Release \ | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-visionos" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64 && cd build-arm64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
|         rm -rf opencv2.framework | ||||
|         mkdir -p opencv2.framework/Versions/A/Headers | ||||
|         mkdir -p opencv2.framework/Versions/A/Resources | ||||
|         ln -s A opencv2.framework/Versions/Current | ||||
|         ln -s Versions/Current/Headers opencv2.framework/Headers | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/ | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework | ||||
|     - name: test | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.PACKAGE_NAME }} | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   visionos-simulator: | ||||
|     needs: [setup] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|     env: | ||||
|       COMMON_CMAKE_OPTIONS: | | ||||
|         -DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \ | ||||
|         -DPLATFORM=SIMULATOR_VISIONOS \ | ||||
|         -DDEPLOYMENT_TARGET=$VISIONOS_DEPLOYMENT_TARGET \ | ||||
|         -DENABLE_BITCODE=$ENABLE_BITCODE \ | ||||
|         -DENABLE_ARC=$ENABLE_ARC \ | ||||
|         -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \ | ||||
|         -DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \ | ||||
|         -DCMAKE_INSTALL_PREFIX=install \ | ||||
|         -DCMAKE_BUILD_TYPE=Release \ | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: opencv-mobile-${{ matrix.opencv-version }}-source | ||||
|     - name: setup-opencv-source | ||||
|       run: | | ||||
|         unzip -q opencv-mobile-${{ matrix.opencv-version }}.zip | ||||
|         echo "SOURCE_DIR=opencv-mobile-${{ matrix.opencv-version }}" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-visionos-simulator" >> $GITHUB_ENV | ||||
|     - name: workaround-opencv2-list | ||||
|       if: matrix.opencv-version == '2.4.13.7' | ||||
|       run: | | ||||
|         # workaround ar @list issue on macos | ||||
|         sed -i -e 's!\\"${objpath4}\\"!${objpath4}!g' ${{ env.SOURCE_DIR }}/modules/world/CMakeLists.txt | ||||
|     - name: build-x86_64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-x86_64 && cd build-x86_64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: build-arm64 | ||||
|       run: | | ||||
|         cd ${{ env.SOURCE_DIR }} | ||||
|         mkdir build-arm64 && cd build-arm64 | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="arm64" \ | ||||
|             `cat ../options.txt` -DBUILD_opencv_world=ON .. | ||||
|         # workaround ar @list issue on macos | ||||
|         cmake --build . -j 4 || { cd modules/world; $DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../lib/libopencv_world.a `cat world_objects.rsp` CMakeFiles/opencv_world.dir/src/world_init.cpp.o; cd ../..; } | ||||
|         cmake --build . --target install | ||||
|     - name: package | ||||
|       run: | | ||||
|         rm -rf opencv2.framework | ||||
|         mkdir -p opencv2.framework/Versions/A/Headers | ||||
|         mkdir -p opencv2.framework/Versions/A/Resources | ||||
|         ln -s A opencv2.framework/Versions/Current | ||||
|         ln -s Versions/Current/Headers opencv2.framework/Headers | ||||
|         ln -s Versions/Current/Resources opencv2.framework/Resources | ||||
|         ln -s Versions/Current/opencv2 opencv2.framework/opencv2 | ||||
|         lipo -create \ | ||||
|             ${{ env.SOURCE_DIR }}/build-x86_64/install/lib/libopencv_world.a \ | ||||
|             ${{ env.SOURCE_DIR }}/build-arm64/install/lib/libopencv_world.a \ | ||||
|             -o opencv2.framework/Versions/A/opencv2 | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv4/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp -r ${{ env.SOURCE_DIR }}/build-arm64/install/include/opencv2/* opencv2.framework/Versions/A/Headers/ || : | ||||
|         cp ${{ env.SOURCE_DIR }}/Info.plist opencv2.framework/Versions/A/Resources/ | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.framework | ||||
|     - name: test | ||||
|       run: | | ||||
|         cd test | ||||
|         mkdir build && cd build | ||||
|         cmake ${{ env.COMMON_CMAKE_OPTIONS }} -DARCHS="x86_64;arm64" \ | ||||
|             -DOpenCV_DIR=$GITHUB_WORKSPACE .. | ||||
|         cmake --build . -j 4 | ||||
|     - name: upload-zip | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
| @@ -1055,31 +1486,27 @@ jobs: | ||||
|         path: ${{ env.PACKAGE_NAME }}.zip | ||||
|  | ||||
|   apple: | ||||
|     needs: [macos, ios, ios-simulator, mac-catalyst] | ||||
|     runs-on: macos-12 | ||||
|     needs: [macos, ios, ios-simulator, mac-catalyst, watchos, watchos-simulator, tvos, tvos-simulator, visionos, visionos-simulator] | ||||
|     runs-on: macos-13 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         opencv-version: [2.4.13.7, 3.4.20, 4.9.0] | ||||
|         bitcode: [OFF, ON] | ||||
|     steps: | ||||
|     - run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app | ||||
|     - run: sudo xcode-select --switch /Applications/Xcode_15.2.app | ||||
|     - uses: actions/checkout@v4 | ||||
|     - name: setup-opencv-package | ||||
|       if: matrix.bitcode == 'OFF' | ||||
|       run: | | ||||
|         echo "MACOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-macos" >> $GITHUB_ENV | ||||
|         echo "IOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios" >> $GITHUB_ENV | ||||
|         echo "IOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator" >> $GITHUB_ENV | ||||
|         echo "MAC_CATALYST_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst" >> $GITHUB_ENV | ||||
|         echo "WATCHOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-watchos" >> $GITHUB_ENV | ||||
|         echo "WATCHOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-watchos-simulator" >> $GITHUB_ENV | ||||
|         echo "TVOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-tvos" >> $GITHUB_ENV | ||||
|         echo "TVOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-tvos-simulator" >> $GITHUB_ENV | ||||
|         echo "VISIONOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-visionos" >> $GITHUB_ENV | ||||
|         echo "VISIONOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-visionos-simulator" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-apple" >> $GITHUB_ENV | ||||
|     - name: setup-opencv-package | ||||
|       if: matrix.bitcode == 'ON' | ||||
|       run: | | ||||
|         echo "MACOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-macos" >> $GITHUB_ENV | ||||
|         echo "IOS_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-bitcode" >> $GITHUB_ENV | ||||
|         echo "IOS_SIMULATOR_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-ios-simulator-bitcode" >> $GITHUB_ENV | ||||
|         echo "MAC_CATALYST_PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-mac-catalyst-bitcode" >> $GITHUB_ENV | ||||
|         echo "PACKAGE_NAME=opencv-mobile-${{ matrix.opencv-version }}-apple-bitcode" >> $GITHUB_ENV | ||||
|     - name: download-macos-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
| @@ -1096,21 +1523,63 @@ jobs: | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.MAC_CATALYST_PACKAGE_NAME }} | ||||
|     - name: download-watchos-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.WATCHOS_PACKAGE_NAME }} | ||||
|     - name: download-watchos-simulator-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.WATCHOS_SIMULATOR_PACKAGE_NAME }} | ||||
|     - name: download-tvos-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.TVOS_PACKAGE_NAME }} | ||||
|     - name: download-tvos-simulator-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.TVOS_SIMULATOR_PACKAGE_NAME }} | ||||
|     - name: download-visionos-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.VISIONOS_PACKAGE_NAME }} | ||||
|     - name: download-visionos-simulator-package | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: ${{ env.VISIONOS_SIMULATOR_PACKAGE_NAME }} | ||||
|     - name: create-xcframwork | ||||
|       run: | | ||||
|         mkdir -p ${{ env.MACOS_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.IOS_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.IOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.MAC_CATALYST_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.WATCHOS_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.WATCHOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.TVOS_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.TVOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.VISIONOS_PACKAGE_NAME }} | ||||
|         mkdir -p ${{ env.VISIONOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.MACOS_PACKAGE_NAME }}.zip -d ${{ env.MACOS_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.IOS_PACKAGE_NAME }}.zip -d ${{ env.IOS_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}.zip -d ${{ env.IOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.MAC_CATALYST_PACKAGE_NAME }}.zip -d ${{ env.MAC_CATALYST_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.WATCHOS_PACKAGE_NAME }}.zip -d ${{ env.WATCHOS_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.WATCHOS_SIMULATOR_PACKAGE_NAME }}.zip -d ${{ env.WATCHOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.TVOS_PACKAGE_NAME }}.zip -d ${{ env.TVOS_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.TVOS_SIMULATOR_PACKAGE_NAME }}.zip -d ${{ env.TVOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.VISIONOS_PACKAGE_NAME }}.zip -d ${{ env.VISIONOS_PACKAGE_NAME }} | ||||
|         unzip -q ${{ env.VISIONOS_SIMULATOR_PACKAGE_NAME }}.zip -d ${{ env.VISIONOS_SIMULATOR_PACKAGE_NAME }} | ||||
|         xcodebuild -create-xcframework \ | ||||
|             -framework ${{ env.MACOS_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.IOS_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.IOS_SIMULATOR_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.MAC_CATALYST_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.WATCHOS_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.WATCHOS_SIMULATOR_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.TVOS_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.TVOS_SIMULATOR_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.VISIONOS_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -framework ${{ env.VISIONOS_SIMULATOR_PACKAGE_NAME }}/opencv2.framework \ | ||||
|             -output opencv2.xcframework | ||||
|         rm -f ${{ env.PACKAGE_NAME }}.zip | ||||
|         zip -9 -y -r ${{ env.PACKAGE_NAME }}.zip opencv2.xcframework | ||||
| @@ -1268,7 +1737,7 @@ jobs: | ||||
|   release: | ||||
|     permissions: | ||||
|       contents: write  # for softprops/action-gh-release to create a release | ||||
|     needs: [setup, android, ios, ios-simulator, armlinux, macos, mac-catalyst, windows, ubuntu, webassembly, apple, devboard] | ||||
|     needs: [setup, android, ios, ios-simulator, armlinux, macos, mac-catalyst, watchos, watchos-simulator, tvos, tvos-simulator, visionos, visionos-simulator, windows, ubuntu, webassembly, apple, devboard] | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: download | ||||
|   | ||||
| @@ -62,12 +62,15 @@ | ||||
| #    SIMULATOR = Build for x86 i386 iphoneOS Simulator. | ||||
| #    SIMULATOR64 = Build for x86_64 iphoneOS Simulator. | ||||
| #    SIMULATORARM64 = Build for arm64 iphoneOS Simulator. | ||||
| #    SIMULATOR64COMBINED = Build for arm64 x86_64 iphoneOS Simulator. Combined into FAT STATIC lib (supported on 3.14+ of CMakewith "-G Xcode" argument ONLY) | ||||
| #    TVOS = Build for arm64 tvOS. | ||||
| #    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. | ||||
| #    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. | ||||
| #    SIMULATORARM64_WATCHOS = Build for arm64 for watchOS Simulator. | ||||
| #    MAC = Build for x86_64 macOS. | ||||
| #    MAC_ARM64 = Build for Apple Silicon macOS. | ||||
| #    MAC_UNIVERSAL = Combined build for x86_64 and Apple Silicon on macOS. | ||||
| @@ -85,13 +88,13 @@ | ||||
| #    CMAKE_OSX_SYSROOT, but can also be manually specified (although this should | ||||
| #    not be required). | ||||
| # | ||||
| # DEPLOYMENT_TARGET: Minimum SDK version to target. Default 2.0 on watchOS and 9.0 on tvOS+iOS | ||||
| # DEPLOYMENT_TARGET: Minimum SDK version to target. Default 6.0 on watchOS, 13.0 on tvOS+iOS/iPadOS, 11.0 on macOS, 1.0 on visionOS | ||||
| # | ||||
| # NAMED_LANGUAGE_SUPPORT: | ||||
| #    ON (default) = Will require "enable_language(OBJC) and/or enable_language(OBJCXX)" for full OBJC|OBJCXX support | ||||
| #    OFF = Will embed the OBJC and OBJCXX flags into the CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (legacy behavior, CMake version < 3.16) | ||||
| # | ||||
| # ENABLE_BITCODE: (ON|OFF) Enables or disables bitcode support. Default ON | ||||
| # ENABLE_BITCODE: (ON|OFF) Enables or disables bitcode support. Default OFF | ||||
| # | ||||
| # ENABLE_ARC: (ON|OFF) Enables or disables ARC support. Default ON (ARC enabled by default) | ||||
| # | ||||
| @@ -108,8 +111,10 @@ | ||||
| #    SIMULATORARM64 = arm64 | ||||
| #    TVOS = arm64 | ||||
| #    SIMULATOR_TVOS = x86_64 (i386 has since long been deprecated) | ||||
| #    SIMULATORARM64_TVOS = arm64 | ||||
| #    WATCHOS = armv7k arm64_32 (if applicable) | ||||
| #    SIMULATOR_WATCHOS = x86_64 (i386 has since long been deprecated) | ||||
| #    SIMULATORARM64_WATCHOS = arm64 | ||||
| #    MAC = x86_64 | ||||
| #    MAC_ARM64 = arm64 | ||||
| #    MAC_UNIVERSAL = x86_64 arm64 | ||||
| @@ -153,10 +158,11 @@ set(ENV{_IOS_TOOLCHAIN_HAS_RUN} true) | ||||
|  | ||||
| # List of supported platform values | ||||
| list(APPEND _supported_platforms | ||||
|         "OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64" | ||||
|         "TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" | ||||
|         "WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" | ||||
|         "OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64" "SIMULATOR64COMBINED" | ||||
|         "TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" "SIMULATORARM64_TVOS" | ||||
|         "WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" "SIMULATORARM64_WATCHOS" | ||||
|         "MAC" "MAC_ARM64" "MAC_UNIVERSAL" | ||||
|         "VISIONOS" "SIMULATOR_VISIONOS" "SIMULATOR64_VISIONOS" | ||||
|         "MAC_CATALYST" "MAC_CATALYST_ARM64") | ||||
|  | ||||
| # Cache what generator is used | ||||
| @@ -193,10 +199,10 @@ endif() | ||||
|  | ||||
| # Assuming that xcode 12.0 is installed you most probably have ios sdk 14.0 or later installed (tested on Big Sur) | ||||
| # if you don't set a deployment target it will be set the way you only get 64-bit builds | ||||
| if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0) | ||||
| #if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0) | ||||
| # Temporarily fix the arm64 issues in CMake install-combined by excluding arm64 for simulator builds (needed for Apple Silicon...) | ||||
|   set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64") | ||||
| endif() | ||||
| #  set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64") | ||||
| #endif() | ||||
|  | ||||
| # Check if the platform variable is set | ||||
| if(DEFINED PLATFORM) | ||||
| @@ -253,10 +259,13 @@ set(NAMED_LANGUAGE_SUPPORT_INT ${NAMED_LANGUAGE_SUPPORT} CACHE BOOL | ||||
| if(NOT DEFINED DEPLOYMENT_TARGET) | ||||
|   if (PLATFORM MATCHES "WATCHOS") | ||||
|     # Unless specified, SDK version 4.0 is used by default as minimum target version (watchOS). | ||||
|     set(DEPLOYMENT_TARGET "4.0") | ||||
|     set(DEPLOYMENT_TARGET "6.0") | ||||
|   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 "10.13") | ||||
|     set(DEPLOYMENT_TARGET "11.0") | ||||
|   elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "SIMULATOR64_VISIONOS") | ||||
|     # 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") | ||||
|     # Unless specified, SDK version 11.0 (Big Sur) is used by default as the minimum target version (macOS on arm). | ||||
|     set(DEPLOYMENT_TARGET "11.0") | ||||
| @@ -268,7 +277,7 @@ if(NOT DEFINED DEPLOYMENT_TARGET) | ||||
|     set(DEPLOYMENT_TARGET "13.1") | ||||
|   else() | ||||
|     # Unless specified, SDK version 11.0 is used by default as the minimum target version (iOS, tvOS). | ||||
|     set(DEPLOYMENT_TARGET "11.0") | ||||
|     set(DEPLOYMENT_TARGET "13.0") | ||||
|   endif() | ||||
|   message(STATUS "[DEFAULTS] Using the default min-version since DEPLOYMENT_TARGET not provided!") | ||||
| elseif(DEFINED DEPLOYMENT_TARGET AND PLATFORM MATCHES "^MAC_CATALYST" AND ${DEPLOYMENT_TARGET} VERSION_LESS "13.1") | ||||
| @@ -311,7 +320,7 @@ elseif(PLATFORM_INT STREQUAL "OS64") | ||||
|     else() | ||||
|       set(ARCHS arm64) | ||||
|     endif() | ||||
|     set(APPLE_TARGET_TRIPLE_INT aarch64-apple-ios${DEPLOYMENT_TARGET}) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-ios${DEPLOYMENT_TARGET}) | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) | ||||
|   endif() | ||||
| @@ -319,12 +328,12 @@ elseif(PLATFORM_INT STREQUAL "OS64COMBINED") | ||||
|   set(SDK_NAME iphoneos) | ||||
|   if(MODERN_CMAKE) | ||||
|     if(NOT ARCHS) | ||||
|       if (XCODE_VERSION_INT VERSION_GREATER 10.0) | ||||
|         set(ARCHS arm64 x86_64) # FIXME: Add arm64e when Apple has fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example | ||||
|       if (XCODE_VERSION_INT VERSION_GREATER 12.0) | ||||
|         set(ARCHS arm64 x86_64) | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") | ||||
|       else() | ||||
|         set(ARCHS arm64 x86_64) | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64") | ||||
| @@ -332,13 +341,37 @@ elseif(PLATFORM_INT STREQUAL "OS64COMBINED") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") | ||||
|       endif() | ||||
|       set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-ios${DEPLOYMENT_TARGET}) | ||||
|       set(APPLE_TARGET_TRIPLE_INT arm64-x86_64-apple-ios${DEPLOYMENT_TARGET}) | ||||
|     else() | ||||
|       set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) | ||||
|     endif() | ||||
|   else() | ||||
|     message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the OS64COMBINED setting work") | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "SIMULATOR64COMBINED") | ||||
|   set(SDK_NAME iphonesimulator) | ||||
|   if(MODERN_CMAKE) | ||||
|     if(NOT ARCHS) | ||||
|       if (XCODE_VERSION_INT VERSION_GREATER 12.0) | ||||
|         set(ARCHS arm64 x86_64) # FIXME: Add arm64e when Apple have fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") | ||||
|       else() | ||||
|         set(ARCHS arm64 x86_64) | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") | ||||
|       endif() | ||||
|       set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-ios${DEPLOYMENT_TARGET}-simulator) | ||||
|     else() | ||||
|       set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) | ||||
|     endif() | ||||
|   else() | ||||
|     message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the SIMULATOR64COMBINED setting work") | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "SIMULATOR") | ||||
|   set(SDK_NAME iphonesimulator) | ||||
|   if(NOT ARCHS) | ||||
| @@ -360,7 +393,7 @@ elseif(PLATFORM_INT STREQUAL "SIMULATORARM64") | ||||
|   set(SDK_NAME iphonesimulator) | ||||
|   if(NOT ARCHS) | ||||
|     set(ARCHS arm64) | ||||
|     set(APPLE_TARGET_TRIPLE_INT aarch64-apple-ios${DEPLOYMENT_TARGET}-simulator) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-ios${DEPLOYMENT_TARGET}-simulator) | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) | ||||
|   endif() | ||||
| @@ -368,7 +401,7 @@ elseif(PLATFORM_INT STREQUAL "TVOS") | ||||
|   set(SDK_NAME appletvos) | ||||
|   if(NOT ARCHS) | ||||
|     set(ARCHS arm64) | ||||
|     set(APPLE_TARGET_TRIPLE_INT aarch64-apple-tvos${DEPLOYMENT_TARGET}) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-tvos${DEPLOYMENT_TARGET}) | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}) | ||||
|   endif() | ||||
| @@ -377,7 +410,7 @@ elseif (PLATFORM_INT STREQUAL "TVOSCOMBINED") | ||||
|   if(MODERN_CMAKE) | ||||
|     if(NOT ARCHS) | ||||
|       set(ARCHS arm64 x86_64) | ||||
|       set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-tvos${DEPLOYMENT_TARGET}) | ||||
|       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_VALID_ARCHS[sdk=appletvos*] "arm64") | ||||
| @@ -396,12 +429,20 @@ elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS") | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}-simulator) | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_TVOS") | ||||
|   set(SDK_NAME appletvsimulator) | ||||
|   if(NOT ARCHS) | ||||
|     set(ARCHS arm64) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-tvos${DEPLOYMENT_TARGET}-simulator) | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}-simulator) | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "WATCHOS") | ||||
|   set(SDK_NAME watchos) | ||||
|   if(NOT ARCHS) | ||||
|     if (XCODE_VERSION_INT VERSION_GREATER 10.0) | ||||
|       set(ARCHS armv7k arm64_32) | ||||
|       set(APPLE_TARGET_TRIPLE_INT aarch64_32-apple-watchos${DEPLOYMENT_TARGET}) | ||||
|       set(APPLE_TARGET_TRIPLE_INT arm64_32-apple-watchos${DEPLOYMENT_TARGET}) | ||||
|     else() | ||||
|       set(ARCHS armv7k) | ||||
|       set(APPLE_TARGET_TRIPLE_INT arm-apple-watchos${DEPLOYMENT_TARGET}) | ||||
| @@ -415,7 +456,7 @@ elseif(PLATFORM_INT STREQUAL "WATCHOSCOMBINED") | ||||
|     if(NOT ARCHS) | ||||
|       if (XCODE_VERSION_INT VERSION_GREATER 10.0) | ||||
|         set(ARCHS armv7k arm64_32 i386) | ||||
|         set(APPLE_TARGET_TRIPLE_INT aarch64_32-i386-apple-watchos${DEPLOYMENT_TARGET}) | ||||
|         set(APPLE_TARGET_TRIPLE_INT arm64_32-i386-apple-watchos${DEPLOYMENT_TARGET}) | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchos*] "armv7k arm64_32") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchsimulator*] "i386") | ||||
|         set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchos*] "armv7k arm64_32") | ||||
| @@ -442,6 +483,38 @@ elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS") | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}-simulator) | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_WATCHOS") | ||||
|   set(SDK_NAME watchsimulator) | ||||
|   if(NOT ARCHS) | ||||
|     set(ARCHS arm64) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-watchos${DEPLOYMENT_TARGET}-simulator) | ||||
|   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) | ||||
|     set(ARCHS arm64) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET}-simulator) | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}-simulator) | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "VISIONOS") | ||||
|   set(SDK_NAME xros) | ||||
|   if(NOT ARCHS) | ||||
|     set(ARCHS arm64) | ||||
|     set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET}) | ||||
|   else() | ||||
|     set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}) | ||||
|   endif() | ||||
| elseif(PLATFORM_INT STREQUAL "MAC" OR PLATFORM_INT STREQUAL "MAC_CATALYST") | ||||
|   set(SDK_NAME macosx) | ||||
|   if(NOT ARCHS) | ||||
| @@ -484,7 +557,7 @@ endif() | ||||
| if(CMAKE_GENERATOR MATCHES "Xcode" AND PLATFORM_INT MATCHES "^MAC_CATALYST") | ||||
|   set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") | ||||
|   set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "macosx") | ||||
|   set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-maccatalyst") | ||||
|   set(CMAKE_XCODE_ATTRIBUTE_SUPPORTS_MACCATALYST "YES") | ||||
|   if(NOT DEFINED MACOSX_DEPLOYMENT_TARGET) | ||||
|     set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "10.15") | ||||
|   else() | ||||
| @@ -526,12 +599,8 @@ elseif(DEFINED CMAKE_OSX_SYSROOT_INT) | ||||
| endif() | ||||
|  | ||||
| # Use bitcode or not | ||||
| if(NOT DEFINED ENABLE_BITCODE AND NOT ARCHS MATCHES "((^|;|, )(i386|x86_64))+") | ||||
|   # Unless specified, enable bitcode support by default | ||||
|   message(STATUS "[DEFAULTS] Enabling bitcode support by default. ENABLE_BITCODE not provided!") | ||||
|   set(ENABLE_BITCODE ON) | ||||
| elseif(NOT DEFINED ENABLE_BITCODE) | ||||
|   message(STATUS "[DEFAULTS] Disabling bitcode support by default on simulators. ENABLE_BITCODE not provided for override!") | ||||
| if(NOT DEFINED ENABLE_BITCODE) | ||||
|   message(STATUS "[DEFAULTS] Disabling bitcode support by default. ENABLE_BITCODE not provided for override!") | ||||
|   set(ENABLE_BITCODE OFF) | ||||
| endif() | ||||
| set(ENABLE_BITCODE_INT ${ENABLE_BITCODE} CACHE BOOL | ||||
| @@ -647,6 +716,10 @@ endforeach() | ||||
| if(MODERN_CMAKE) | ||||
|   if(SDK_NAME MATCHES "iphone") | ||||
|     set(CMAKE_SYSTEM_NAME iOS) | ||||
|   elseif(SDK_NAME MATCHES "xros") | ||||
|       set(CMAKE_SYSTEM_NAME visionOS) | ||||
|   elseif(SDK_NAME MATCHES "xrsimulator") | ||||
|       set(CMAKE_SYSTEM_NAME visionOS) | ||||
|   elseif(SDK_NAME MATCHES "macosx") | ||||
|     set(CMAKE_SYSTEM_NAME Darwin) | ||||
|   elseif(SDK_NAME MATCHES "appletv") | ||||
| @@ -656,8 +729,14 @@ if(MODERN_CMAKE) | ||||
|   endif() | ||||
|   # Provide flags for a combined FAT library build on newer CMake versions | ||||
|   if(PLATFORM_INT MATCHES ".*COMBINED") | ||||
|     set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO") | ||||
|     set(CMAKE_IOS_INSTALL_COMBINED YES) | ||||
|     if(CMAKE_GENERATOR MATCHES "Xcode") | ||||
|       # Set the SDKROOT Xcode properties to a Xcode-friendly value (the SDK_NAME, E.g, iphoneos) | ||||
|       # This way, Xcode will automatically switch between the simulator and device SDK when building. | ||||
|       set(CMAKE_XCODE_ATTRIBUTE_SDKROOT "${SDK_NAME}") | ||||
|       # Force to not build just one ARCH, but all! | ||||
|       set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO") | ||||
|     endif() | ||||
|   endif() | ||||
| elseif(NOT DEFINED CMAKE_SYSTEM_NAME AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.10") | ||||
|   # Legacy code path prior to CMake 3.14 or fallback if no CMAKE_SYSTEM_NAME specified | ||||
| @@ -679,9 +758,6 @@ elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64 | ||||
| else() | ||||
|   set(IOS ON CACHE BOOL "") | ||||
| endif() | ||||
| set(CMAKE_AR ar CACHE FILEPATH "" FORCE) | ||||
| set(CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE) | ||||
| set(CMAKE_STRIP strip CACHE FILEPATH "" FORCE) | ||||
| # Set the architectures for which to build. | ||||
| set(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE INTERNAL "") | ||||
| # Change the type of target generated for try_compile() so it'll work when cross-compiling, weak compiler checks | ||||
| @@ -695,6 +771,7 @@ endif() | ||||
| set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") | ||||
| set(CMAKE_SHARED_LIBRARY_PREFIX "lib") | ||||
| set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") | ||||
| set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so") | ||||
| set(CMAKE_SHARED_MODULE_PREFIX "lib") | ||||
| set(CMAKE_SHARED_MODULE_SUFFIX ".so") | ||||
| set(CMAKE_C_COMPILER_ABI ELF) | ||||
| @@ -719,11 +796,7 @@ if(ARCHS MATCHES "((^|;|, )(arm64|arm64e|x86_64))+") | ||||
| else() | ||||
|   set(CMAKE_C_SIZEOF_DATA_PTR 4) | ||||
|   set(CMAKE_CXX_SIZEOF_DATA_PTR 4) | ||||
|   if(ARCHS MATCHES "((^|;|, )(armv7|armv7s|armv7k))+") | ||||
|   set(CMAKE_SYSTEM_PROCESSOR "arm") | ||||
|   else() | ||||
|     set(CMAKE_SYSTEM_PROCESSOR "i386") | ||||
|   endif() | ||||
| endif() | ||||
|  | ||||
| # Note that only Xcode 7+ supports the newer more specific: | ||||
| @@ -745,12 +818,18 @@ if(${CMAKE_VERSION} VERSION_LESS "3.11") | ||||
|   elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS") | ||||
|     set(SDK_NAME_VERSION_FLAGS | ||||
|             "-mtvos-simulator-version-min=${DEPLOYMENT_TARGET}") | ||||
| elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_TVOS") | ||||
|     set(SDK_NAME_VERSION_FLAGS | ||||
|             "-mtvos-simulator-version-min=${DEPLOYMENT_TARGET}") | ||||
|   elseif(PLATFORM_INT STREQUAL "WATCHOS") | ||||
|     set(SDK_NAME_VERSION_FLAGS | ||||
|             "-mwatchos-version-min=${DEPLOYMENT_TARGET}") | ||||
|   elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS") | ||||
|     set(SDK_NAME_VERSION_FLAGS | ||||
|             "-mwatchos-simulator-version-min=${DEPLOYMENT_TARGET}") | ||||
|   elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_WATCHOS") | ||||
|     set(SDK_NAME_VERSION_FLAGS | ||||
|             "-mwatchos-simulator-version-min=${DEPLOYMENT_TARGET}") | ||||
|   elseif(PLATFORM_INT STREQUAL "MAC") | ||||
|     set(SDK_NAME_VERSION_FLAGS | ||||
|             "-mmacosx-version-min=${DEPLOYMENT_TARGET}") | ||||
| @@ -761,7 +840,7 @@ if(${CMAKE_VERSION} VERSION_LESS "3.11") | ||||
|   endif() | ||||
| elseif(NOT PLATFORM_INT MATCHES "^MAC_CATALYST") | ||||
|   # Newer versions of CMake sets the version min flags correctly, skip this for Mac Catalyst targets | ||||
|   set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET}) | ||||
|   set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET} CACHE INTERNAL "Minimum OS X deployment version") | ||||
| endif() | ||||
|  | ||||
| if(DEFINED APPLE_TARGET_TRIPLE_INT) | ||||
| @@ -822,35 +901,44 @@ endif() | ||||
| if(CMAKE_GENERATOR MATCHES "Xcode") | ||||
|   message(STATUS "Not setting any manual command-line buildflags, since Xcode is selected as the generator. Modifying the Xcode build-settings directly instead.") | ||||
| else() | ||||
|   set(CMAKE_C_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_C_FLAGS}") | ||||
|   set(CMAKE_C_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_C_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler during all C build types.") | ||||
|   set(CMAKE_C_FLAGS_DEBUG "-O0 -g ${CMAKE_C_FLAGS_DEBUG}") | ||||
|   set(CMAKE_C_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_C_FLAGS_MINSIZEREL}") | ||||
|   set(CMAKE_C_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_C_FLAGS_RELWITHDEBINFO}") | ||||
|   set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_C_FLAGS_RELEASE}") | ||||
|   set(CMAKE_CXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_CXX_FLAGS}") | ||||
|   set(CMAKE_CXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_CXX_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler during all CXX build types.") | ||||
|   set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g ${CMAKE_CXX_FLAGS_DEBUG}") | ||||
|   set(CMAKE_CXX_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_CXX_FLAGS_MINSIZEREL}") | ||||
|   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") | ||||
|   set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_CXX_FLAGS_RELEASE}") | ||||
|   if(NAMED_LANGUAGE_SUPPORT_INT) | ||||
|     set(CMAKE_OBJC_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJC_FLAGS}") | ||||
|     set(CMAKE_OBJC_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJC_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler during all OBJC build types.") | ||||
|     set(CMAKE_OBJC_FLAGS_DEBUG "-O0 -g ${CMAKE_OBJC_FLAGS_DEBUG}") | ||||
|     set(CMAKE_OBJC_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_OBJC_FLAGS_MINSIZEREL}") | ||||
|     set(CMAKE_OBJC_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_OBJC_FLAGS_RELWITHDEBINFO}") | ||||
|     set(CMAKE_OBJC_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_OBJC_FLAGS_RELEASE}") | ||||
|     set(CMAKE_OBJCXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJCXX_FLAGS}") | ||||
|     set(CMAKE_OBJCXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJCXX_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler during all OBJCXX build types.") | ||||
|     set(CMAKE_OBJCXX_FLAGS_DEBUG "-O0 -g ${CMAKE_OBJCXX_FLAGS_DEBUG}") | ||||
|     set(CMAKE_OBJCXX_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_OBJCXX_FLAGS_MINSIZEREL}") | ||||
|     set(CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO}") | ||||
|     set(CMAKE_OBJCXX_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_OBJCXX_FLAGS_RELEASE}") | ||||
|   endif() | ||||
|   set(CMAKE_C_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") | ||||
|   set(CMAKE_CXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS}  -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") | ||||
|   set(CMAKE_C_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler for all C link types.") | ||||
|   set(CMAKE_CXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS}  -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler for all CXX link types.") | ||||
|   if(NAMED_LANGUAGE_SUPPORT_INT) | ||||
|     set(CMAKE_OBJC_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJC_LINK_FLAGS}") | ||||
|     set(CMAKE_OBJCXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJCXX_LINK_FLAGS}") | ||||
|     set(CMAKE_OBJC_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJC_LINK_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler for all OBJC link types.") | ||||
|     set(CMAKE_OBJCXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJCXX_LINK_FLAGS}" CACHE INTERNAL | ||||
|      "Flags used by the compiler for all OBJCXX link types.") | ||||
|   endif() | ||||
|   set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -arch ${CMAKE_OSX_ARCHITECTURES} ${APPLE_TARGET_TRIPLE_FLAG}") | ||||
|   set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -arch ${CMAKE_OSX_ARCHITECTURES} ${APPLE_TARGET_TRIPLE_FLAG}" CACHE INTERNAL | ||||
|      "Flags used by the compiler for all ASM build types.") | ||||
| endif() | ||||
|  | ||||
| ## Print status messages to inform of the current state | ||||
| @@ -967,11 +1055,13 @@ set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") | ||||
| # Note: CMAKE_FIND_ROOT_PATH is only useful when cross-compiling. Thus, do not set on macOS builds. | ||||
| if(NOT PLATFORM_INT MATCHES "^MAC.*$") | ||||
|   list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") | ||||
|   set(CMAKE_IGNORE_PATH "/System/Library/Frameworks;/usr/local/lib" CACHE INTERNAL "") | ||||
|   set(CMAKE_IGNORE_PATH "/System/Library/Frameworks;/usr/local/lib;/opt/homebrew" CACHE INTERNAL "") | ||||
| endif() | ||||
|  | ||||
| # Default to searching for frameworks first. | ||||
| IF(NOT DEFINED CMAKE_FIND_FRAMEWORK) | ||||
|   set(CMAKE_FIND_FRAMEWORK FIRST) | ||||
| ENDIF(NOT DEFINED CMAKE_FIND_FRAMEWORK) | ||||
|  | ||||
| # Set up the default search directories for frameworks. | ||||
| if(PLATFORM_INT MATCHES "^MAC_CATALYST")  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 nihui
					nihui