Updated cmake.yml #45
This file contains 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: CMake | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
# arm32_build: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Set up QEMU | |
# uses: docker/setup-qemu-action@v2 | |
# - name: CMake build and run | |
# run: | | |
# docker run --platform linux/arm/v7 --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp arm32v7/gcc bash -c "apt update && apt install -y cmake; mkdir build && cmake -B build && cmake --build build --config ${{env.BUILD_TYPE}} && cmake --install build; ./dist/main ./images/AllSupportedBarcodeTypes.png ./license-key.txt" | |
# - name: Archive Release | |
# uses: thedoctor0/zip-release@main | |
# with: | |
# type: 'zip' | |
# filename: arm32.zip | |
# exclusions: '*.git* /*node_modules/* .editorconfig' | |
# path: ${{github.workspace}}/dist | |
# - uses: actions/upload-artifact@v2 | |
# with: | |
# path: ./*.zip | |
# arm64_build: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Set up QEMU | |
# uses: docker/setup-qemu-action@v2 | |
# - name: CMake build and run | |
# run: | | |
# docker run --platform linux/arm64/v8 --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp arm64v8/gcc bash -c "apt update && apt install -y cmake; mkdir build && cmake -B build && cmake --build build --config ${{env.BUILD_TYPE}} && cmake --install build; ./dist/main ./images/AllSupportedBarcodeTypes.png ./license-key.txt" | |
# - name: Archive Release | |
# uses: thedoctor0/zip-release@main | |
# with: | |
# type: 'zip' | |
# filename: arm64.zip | |
# exclusions: '*.git* /*node_modules/* .editorconfig' | |
# path: ${{github.workspace}}/dist | |
# - uses: actions/upload-artifact@v2 | |
# with: | |
# path: ./*.zip | |
build: | |
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | |
# You can convert this to a matrix build if you need cross-platform coverage. | |
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
name: x86_64 build on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v3 | |
# Download OpenCV source code | |
- name: Download OpenCV source code | |
run: | | |
git clone https://github.com/opencv/opencv.git | |
cd opencv | |
git checkout 4.x # Or specify a specific version | |
# Configure and build OpenCV | |
- name: Configure OpenCV | |
run: | | |
cmake -S opencv -B opencv/build -DBUILD_SHARED_LIBS=ON -DBUILD_opencv_world=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_gapi=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_objdetect=OFF -DBUILD_opencv_photo=OFF -DBUILD_opencv_stitching=OFF -DBUILD_opencv_video=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} | |
- name: Build OpenCV | |
run: cmake --build opencv/build --config ${{ env.BUILD_TYPE }} | |
# Package the built shared libraries | |
- name: Package Shared Libraries | |
run: | | |
mkdir -p packages/${{ matrix.os }} | |
cp -r opencv/build/lib packages/${{ matrix.os }}/ | |
if: runner.os == 'Linux' || runner.os == 'macOS' | |
- name: Package Shared Libraries for Windows | |
run: | | |
mkdir -p packages/${{ matrix.os }} | |
cp -r opencv/build/Release/*.dll packages/${{ matrix.os }}/ | |
if: runner.os == 'Windows' | |
# Upload artifacts | |
- name: Upload Shared Libraries | |
uses: actions/upload-artifact@v2 | |
with: | |
name: shared-libraries-${{ matrix.os }} | |
path: packages/${{ matrix.os }} | |
- name: Set up QEMU | |
if: runner.os == 'Linux' | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
- name: Configure CMake | |
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | |
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | |
run: cmake -S ${{ github.workspace }}/examples/9.x/command_line -B ${{github.workspace}}/examples/9.x/command_line/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
- name: Build command line program | |
# Build your program with the given configuration | |
run: | | |
cmake --build ${{github.workspace}}/examples/9.x/command_line/build --config ${{env.BUILD_TYPE}} | |
# cmake --install ${{github.workspace}}/examples/9.x/command_line/build | |
# - name: Test | |
# working-directory: ${{github.workspace}}/examples/9.x/command_line/dist | |
# run: ./main ../../../../images/AllSupportedBarcodeTypes.png ../../../../license-key.txt | |
# - name: Archive Release | |
# uses: thedoctor0/zip-release@main | |
# with: | |
# type: 'zip' | |
# filename: ${{ matrix.os }}.zip | |
# exclusions: '*.git* /*node_modules/* .editorconfig' | |
# path: ${{github.workspace}}/dist | |
# - uses: actions/upload-artifact@v2 | |
# with: | |
# path: ./*.zip |