Skip to content

switch to v4

switch to v4 #2

Workflow file for this run

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
fetch-depth: 1
- name: Checkout OpenCV Contrib repo
uses: actions/checkout@v4
with:
repository: opencv/opencv_contrib
ref: ${{ env.OPENCV_VERSION }}
path: opencv_contrib
fetch-depth: 1
- name: Configure OpenCV
run: |
cd opencv && mkdir build && cd build && \
cmake3 \
-D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_EXTRA_MODULES_PATH=/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 && cmake -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
fetch-depth: 1
- name: Apply Patches
run: |
sed -i '42s/.*/ /;44,70s/.*/ /' /opencvsharp/src/OpenCvSharpExtern/include_opencv.h
cat /opencvsharp/src/OpenCvSharpExtern/include_opencv.h
sed -i '451,585s/.*/ /' /opencvsharp/src/OpenCvSharpExtern/std_vector.h
cat /opencvsharp/src/OpenCvSharpExtern/std_vector.h
sed -i '12s/.*/file(GLOB OPENCVSHARP_FILES core*.cpp imgp*.cpp imgc*.cpp std*.cpp)/' /opencvsharp/src/OpenCvSharpExtern/CMakeLists.txt
cat /opencvsharp/src/OpenCvSharpExtern/CMakeLists.txt
- name: Configure OpenCvSharp
run: |
cd opencvsharp && mkdir build && cd build && \
cmake3 \
-D CMAKE_INSTALL_PREFIX=/opencvsharp/build \
-D OpenCV_DIR=/opencv/build \
../src
- name: Build OpenCvSharp
run: |
cd opencvsharp/build && cmake -j$(nproc)
- name: Show OpenCvSharp Artifacts
run: |
cd opencvsharp/build
ls -lR
ldd 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 -lOpenCvSharpExtern -o test
- name: Run Test
run: |
cd test && ./test
- name: Make artifacts
run: |
mkdir artifacts && cd artifacts && \
cp -r ../opencv/build/lib/* . && \
cp -r ../opencvsharp/build/lib/* . && \
cp -r ../opencvsharp/build/bin/* . && \
cp -r ../opencvsharp/build/include/* . && \
ls -lR
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: opencvsharp-${{ env.OPENCVSHARP_VERSION }}-ubuntu-linux-x64
path: artifacts