Skip to content

Commit 593913c

Browse files
authored
build milkv duo and luckfox pico package (#59)
1 parent 949b70b commit 593913c

File tree

3 files changed

+138
-2
lines changed

3 files changed

+138
-2
lines changed

.github/workflows/release.yml

Lines changed: 108 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4052,10 +4052,117 @@ jobs:
40524052
name: ${{ env.PACKAGENAME }}
40534053
path: ${{ env.PACKAGENAME }}.zip
40544054

4055+
milkv-duo-opencv4:
4056+
runs-on: ubuntu-latest
4057+
env:
4058+
OPENCV_VERSION: 4.8.0
4059+
PACKAGENAME: opencv-mobile-4.8.0-milkv-duo
4060+
steps:
4061+
- uses: actions/checkout@v3
4062+
- name: toolchain
4063+
run: |
4064+
wget -q https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz -O host-tools.tar.gz
4065+
tar -xf host-tools.tar.gz
4066+
- name: opencv-source
4067+
run: |
4068+
wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
4069+
unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
4070+
cd opencv-${{ env.OPENCV_VERSION }}
4071+
truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
4072+
rm -rf modules/gapi
4073+
patch -p1 -i ../opencv-4.8.0-no-rtti.patch
4074+
patch -p1 -i ../opencv-4.8.0-no-zlib.patch
4075+
patch -p1 -i ../opencv-4.8.0-link-openmp.patch
4076+
rm -rf modules/highgui
4077+
cp -r ../highgui modules/
4078+
- name: build
4079+
run: |
4080+
cd opencv-${{ env.OPENCV_VERSION }}
4081+
mkdir build && cd build
4082+
export RISCV_ROOT_PATH=$GITHUB_WORKSPACE/host-tools/gcc/riscv64-linux-musl-x86_64
4083+
cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/riscv64-unknown-linux-musl.toolchain.cmake \
4084+
-DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
4085+
-DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
4086+
cmake --build . -j 2
4087+
cmake --build . --target install
4088+
- name: package
4089+
run: |
4090+
mkdir ${{ env.PACKAGENAME }}
4091+
cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
4092+
rm -rf ${{ env.PACKAGENAME }}/share/opencv4
4093+
zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
4094+
- name: test
4095+
run: |
4096+
cd test
4097+
mkdir build && cd build
4098+
export RISCV_ROOT_PATH=$GITHUB_WORKSPACE/host-tools/gcc/riscv64-linux-musl-x86_64
4099+
cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/riscv64-unknown-linux-musl.toolchain.cmake \
4100+
-DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
4101+
-DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
4102+
cmake --build . -j 2
4103+
- name: upload
4104+
uses: actions/upload-artifact@v3
4105+
with:
4106+
name: ${{ env.PACKAGENAME }}
4107+
path: ${{ env.PACKAGENAME }}.zip
4108+
4109+
luckfox-pico-opencv4:
4110+
runs-on: ubuntu-latest
4111+
env:
4112+
OPENCV_VERSION: 4.8.0
4113+
PACKAGENAME: opencv-mobile-4.8.0-luckfox-pico
4114+
steps:
4115+
- uses: actions/checkout@v3
4116+
- name: toolchain
4117+
run: |
4118+
git clone --depth 1 https://github.com/LuckfoxTECH/luckfox-pico.git luckfox-pico
4119+
- name: opencv-source
4120+
run: |
4121+
wget -q https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip -O opencv-${{ env.OPENCV_VERSION }}.zip
4122+
unzip -q opencv-${{ env.OPENCV_VERSION }}.zip
4123+
cd opencv-${{ env.OPENCV_VERSION }}
4124+
truncate -s 0 cmake/OpenCVFindLibsGrfmt.cmake
4125+
rm -rf modules/gapi
4126+
patch -p1 -i ../opencv-4.8.0-no-rtti.patch
4127+
patch -p1 -i ../opencv-4.8.0-no-zlib.patch
4128+
patch -p1 -i ../opencv-4.8.0-link-openmp.patch
4129+
rm -rf modules/highgui
4130+
cp -r ../highgui modules/
4131+
- name: build
4132+
run: |
4133+
cd opencv-${{ env.OPENCV_VERSION }}
4134+
mkdir build && cd build
4135+
export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf
4136+
cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-rockchip830-linux-uclibcgnueabihf.toolchain.cmake \
4137+
-DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
4138+
-DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release `cat ../../opencv4_cmake_options.txt` -DBUILD_opencv_world=OFF -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON ..
4139+
cmake --build . -j 2
4140+
cmake --build . --target install
4141+
- name: package
4142+
run: |
4143+
mkdir ${{ env.PACKAGENAME }}
4144+
cp -rf opencv-${{ env.OPENCV_VERSION }}/build/install/* ${{ env.PACKAGENAME }}/
4145+
rm -rf ${{ env.PACKAGENAME }}/share/opencv4
4146+
zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
4147+
- name: test
4148+
run: |
4149+
cd test
4150+
mkdir build && cd build
4151+
export TOOLCHAIN_ROOT_PATH=$GITHUB_WORKSPACE/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf
4152+
cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchains/arm-rockchip830-linux-uclibcgnueabihf.toolchain.cmake \
4153+
-DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" -DCMAKE_CXX_FLAGS="-fno-rtti -fno-exceptions" \
4154+
-DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$GITHUB_WORKSPACE/${{ env.PACKAGENAME }}/lib/cmake/opencv4 ..
4155+
cmake --build . -j 2
4156+
- name: upload
4157+
uses: actions/upload-artifact@v3
4158+
with:
4159+
name: ${{ env.PACKAGENAME }}
4160+
path: ${{ env.PACKAGENAME }}.zip
4161+
40554162
release:
40564163
permissions:
40574164
contents: write # for softprops/action-gh-release to create a release
4058-
needs: [setup, android-opencv4, android-opencv3, android-opencv2, ios-opencv4, ios-opencv3, ios-opencv2, ios-opencv4-bitcode, ios-opencv3-bitcode, ios-opencv2-bitcode, ios-simulator-opencv4, ios-simulator-opencv3, ios-simulator-opencv2, ios-simulator-opencv4-bitcode, ios-simulator-opencv3-bitcode, ios-simulator-opencv2-bitcode, armlinux-opencv4, armlinux-opencv3, armlinux-opencv2, macos-opencv4, macos-opencv3, macos-opencv2, mac-catalyst-opencv4, mac-catalyst-opencv3, mac-catalyst-opencv2, mac-catalyst-opencv4-bitcode, mac-catalyst-opencv3-bitcode, mac-catalyst-opencv2-bitcode, windows-vs2015-opencv4, windows-vs2015-opencv3, windows-vs2015-opencv2, windows-vs2017-opencv4, windows-vs2017-opencv3, windows-vs2017-opencv2, windows-vs2019-opencv4, windows-vs2019-opencv3, windows-vs2019-opencv2, windows-vs2022-opencv4, windows-vs2022-opencv3, windows-vs2022-opencv2, ubuntu-2004-opencv4, ubuntu-2004-opencv3, ubuntu-2004-opencv2, ubuntu-2204-opencv4, ubuntu-2204-opencv3, ubuntu-2204-opencv2, webassembly-opencv4, webassembly-opencv3, webassembly-opencv2, apple-opencv4, apple-opencv3, apple-opencv2, apple-opencv4-bitcode, apple-opencv3-bitcode, apple-opencv2-bitcode]
4165+
needs: [setup, android-opencv4, android-opencv3, android-opencv2, ios-opencv4, ios-opencv3, ios-opencv2, ios-opencv4-bitcode, ios-opencv3-bitcode, ios-opencv2-bitcode, ios-simulator-opencv4, ios-simulator-opencv3, ios-simulator-opencv2, ios-simulator-opencv4-bitcode, ios-simulator-opencv3-bitcode, ios-simulator-opencv2-bitcode, armlinux-opencv4, armlinux-opencv3, armlinux-opencv2, macos-opencv4, macos-opencv3, macos-opencv2, mac-catalyst-opencv4, mac-catalyst-opencv3, mac-catalyst-opencv2, mac-catalyst-opencv4-bitcode, mac-catalyst-opencv3-bitcode, mac-catalyst-opencv2-bitcode, windows-vs2015-opencv4, windows-vs2015-opencv3, windows-vs2015-opencv2, windows-vs2017-opencv4, windows-vs2017-opencv3, windows-vs2017-opencv2, windows-vs2019-opencv4, windows-vs2019-opencv3, windows-vs2019-opencv2, windows-vs2022-opencv4, windows-vs2022-opencv3, windows-vs2022-opencv2, ubuntu-2004-opencv4, ubuntu-2004-opencv3, ubuntu-2004-opencv2, ubuntu-2204-opencv4, ubuntu-2204-opencv3, ubuntu-2204-opencv2, webassembly-opencv4, webassembly-opencv3, webassembly-opencv2, apple-opencv4, apple-opencv3, apple-opencv2, apple-opencv4-bitcode, apple-opencv3-bitcode, apple-opencv2-bitcode, milkv-duo-opencv4, luckfox-pico-opencv4]
40594166
runs-on: ubuntu-latest
40604167
steps:
40614168
- name: download

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ https://github.com/nihui/opencv-mobile/releases/latest
5555
|Ubuntu-20.04|x86_64|[![download-icon]][opencv2-ubuntu-2004-url]|[![download-icon]][opencv3-ubuntu-2004-url]|[![download-icon]][opencv4-ubuntu-2004-url]|
5656
|Ubuntu-22.04|x86_64|[![download-icon]][opencv2-ubuntu-2204-url]|[![download-icon]][opencv3-ubuntu-2204-url]|[![download-icon]][opencv4-ubuntu-2204-url]|
5757
|WebAssembly|basic<br />simd<br />threads<br />simd+threads|[![download-icon]][opencv2-webassembly-url]|[![download-icon]][opencv3-webassembly-url]|[![download-icon]][opencv4-webassembly-url]|
58-
|RISCV-Linux|milkv-duo| | |[![download-icon]][opencv4-milkv-duo-url]|
5958

6059
[download-icon]: https://img.shields.io/badge/download-blue?style=for-the-badge
6160
[bitcode-icon]: https://img.shields.io/badge/+bitcode-blue?style=for-the-badge
@@ -132,7 +131,13 @@ https://github.com/nihui/opencv-mobile/releases/latest
132131
[opencv3-webassembly-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-webassembly.zip
133132
[opencv4-webassembly-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.0-webassembly.zip
134133

134+
|Board|Target|opencv-4.8.0|
135+
|:-:|:-:|:-:|
136+
|milkv-duo|riscv64-linux-musl|[![download-icon]][opencv4-milkv-duo-url]|
137+
|luckfox-pico|arm-linux-uclibcgnueabihf|[![download-icon]][opencv4-luckfox-pico-url]|
138+
135139
[opencv4-milkv-duo-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.0-milkv-duo.zip
140+
[opencv4-luckfox-pico-url]: https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.0-luckfox-pico.zip
136141

137142
* Android package build with ndk r25c and android api 24
138143
* iOS / iOS-Simulator / MacOS / Mac-Catalyst package build with Xcode 13.4.1
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
set(CMAKE_SYSTEM_NAME Linux)
2+
set(CMAKE_SYSTEM_PROCESSOR arm)
3+
4+
if(DEFINED ENV{TOOLCHAIN_ROOT_PATH})
5+
file(TO_CMAKE_PATH $ENV{TOOLCHAIN_ROOT_PATH} TOOLCHAIN_ROOT_PATH)
6+
else()
7+
message(FATAL_ERROR "TOOLCHAIN_ROOT_PATH env must be defined")
8+
endif()
9+
10+
set(TOOLCHAIN_ROOT_PATH ${TOOLCHAIN_ROOT_PATH} CACHE STRING "root path to toolchain")
11+
12+
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT_PATH}/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc")
13+
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT_PATH}/bin/arm-rockchip830-linux-uclibcgnueabihf-g++")
14+
15+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
16+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
17+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
18+
19+
set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
20+
set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
21+
22+
# cache flags
23+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
24+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")

0 commit comments

Comments
 (0)