Merge branch 'main' of https://github.com/sdcb/opencvsharp-mini-runtime #17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: [ main ] | |
| paths: [ '.github/workflows/build.yml' ] | |
| workflow_dispatch: | |
| env: | |
| OPENCV_VERSION: 4.10.0 | |
| OPENCVSHARP_VERSION: 4.10.0.20241024 | |
| jobs: | |
| build: | |
| name: Build All | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install Dependencies | |
| run: | | |
| echo "Installing dependencies..." | |
| # Do nothing now | |
| - name: Checkout OpenCV repo | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: opencv/opencv | |
| ref: ${{ env.OPENCV_VERSION }} | |
| path: opencv | |
| - name: Checkout OpenCV Contrib repo | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: opencv/opencv_contrib | |
| ref: ${{ env.OPENCV_VERSION }} | |
| path: opencv_contrib | |
| - name: Configure OpenCV | |
| run: | | |
| cd opencv && mkdir build && cd build && \ | |
| cmake \ | |
| -D CMAKE_BUILD_TYPE=RELEASE \ | |
| -D OPENCV_EXTRA_MODULES_PATH=${{ github.workspace }}/opencv_contrib/modules \ | |
| -D BUILD_SHARED_LIBS=OFF \ | |
| -D ENABLE_CXX11=ON \ | |
| -D BUILD_EXAMPLES=OFF \ | |
| -D BUILD_DOCS=OFF \ | |
| -D BUILD_PERF_TESTS=OFF \ | |
| -D BUILD_TESTS=OFF \ | |
| -D BUILD_JAVA=OFF \ | |
| -D BUILD_LIST=core,imgproc,imgcodecs \ | |
| -D BUILD_PNG=ON \ | |
| -D BUILD_TIFF=ON \ | |
| -D WITH_GSTREAMER=OFF \ | |
| -D WITH_ADE=OFF \ | |
| -D WITH_FFMPEG=OFF \ | |
| -D WITH_V4L=OFF \ | |
| -D WITH_1394=OFF \ | |
| -D WITH_GTK=OFF \ | |
| -D WITH_OPENEXR=OFF \ | |
| -D WITH_PROTOBUF=OFF \ | |
| -D WITH_QUIRC=OFF \ | |
| -D OPENCV_ENABLE_NONFREE=ON \ | |
| .. | |
| - name: Build OpenCV | |
| run: | | |
| cd opencv/build && make -j$(nproc) | |
| - name: Show Build Artifacts | |
| run: | | |
| cd opencv/build && ls -lR | grep -iE 'libopencv|opencv_.*\.so|opencv_.*\.dll|opencv_.*\.a|opencv_.*\.dylib' | |
| - name: Checkout OpenCvSharp | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: shimat/opencvsharp | |
| ref: ${{ env.OPENCVSHARP_VERSION }} | |
| path: opencvsharp | |
| - name: Apply Patches | |
| run: | | |
| cd opencvsharp | |
| git apply ../eng/opencvsharp.patch | |
| - name: Configure OpenCvSharp | |
| run: | | |
| cd opencvsharp && mkdir build && cd build && \ | |
| cmake \ | |
| -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/opencvsharp/build \ | |
| -D OpenCV_DIR=${{ github.workspace }}/opencv/build \ | |
| ../src | |
| - name: Build OpenCvSharp | |
| run: | | |
| cd opencvsharp/build && make -j$(nproc) | |
| - name: Show OpenCvSharp Artifacts | |
| run: | | |
| cd opencvsharp/build | |
| ls -lR | |
| ldd OpenCvSharpExtern/libOpenCvSharpExtern.so | |
| - name: Test OpenCvSharp | |
| run: | | |
| mkdir test && cd test && echo '#include <stdio.h> | |
| int core_Mat_sizeof(); | |
| int main() | |
| { | |
| int i = core_Mat_sizeof(); | |
| printf("sizeof(Mat) = %d\n", i); | |
| return 0; | |
| }' > test.c | |
| gcc test.c -L../opencvsharp/build/OpenCvSharpExtern -lOpenCvSharpExtern -o test | |
| - name: Run Test | |
| run: | | |
| export LD_LIBRARY_PATH=${{ github.workspace }}/opencvsharp/build/OpenCvSharpExtern:$LD_LIBRARY_PATH | |
| cd test && ./test | |
| - name: Make artifacts | |
| run: | | |
| mkdir artifacts && cd artifacts && mkdir lib test | |
| cp -r ../opencvsharp/build/OpenCvSharpExtern/libOpenCvSharpExtern.so ./lib | |
| cp -r ../test/* ./test | |
| ls -lR | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: opencvsharp-${{ env.OPENCVSHARP_VERSION }}-ubuntu-linux-x64 | |
| path: artifacts |