checkout depth is 1 by default #11
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 ] | |
| workflow_dispatch: | |
| env: | |
| OPENCV_VERSION: 4.10.0 | |
| OPENCVSHARP_VERSION: 4.10.0.20241024 | |
| jobs: | |
| build: | |
| name: Build OpenCV | |
| runs-on: ubuntu-latest | |
| steps: | |
| - 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: | | |
| echo "::group::Patching include_opencv.h" | |
| sed -i '42s/.*/ /;44,70s/.*/ /' ${{ github.workspace }}/opencvsharp/src/OpenCvSharpExtern/include_opencv.h | |
| cat ${{ github.workspace }}/opencvsharp/src/OpenCvSharpExtern/include_opencv.h | |
| echo "::endgroup::" | |
| echo "::group::Patching std_vector.h" | |
| sed -i '451,585s/.*/ /' ${{ github.workspace }}/opencvsharp/src/OpenCvSharpExtern/std_vector.h | |
| cat ${{ github.workspace }}/opencvsharp/src/OpenCvSharpExtern/std_vector.h | |
| echo "::endgroup::" | |
| echo "::group::Patching CMakeLists.txt" | |
| sed -i '12s/.*/file(GLOB OPENCVSHARP_FILES core*.cpp imgp*.cpp imgc*.cpp std*.cpp)/' ${{ github.workspace }}/opencvsharp/src/OpenCvSharpExtern/CMakeLists.txt | |
| cat ${{ github.workspace }}/opencvsharp/src/OpenCvSharpExtern/CMakeLists.txt | |
| echo "::endgroup::" | |
| - 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/* ./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 |