diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef5bf1c..f73a286 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,6 +73,7 @@ jobs: path: | ${{ env.INSTALL_PREFIX }}/Linux/x64/Debug/ include/ + build/Linux/x64/Debug/ retention-days: 1 # ================================================================ @@ -189,6 +190,11 @@ jobs: name: openvx-debug path: ${{ github.workspace }} + - name: Install lcov + run: | + sudo apt-get update + sudo apt-get install -y lcov + - name: Run CTS baseline / smoke tests run: | cd build-cts @@ -201,7 +207,7 @@ jobs: - name: Collect code-coverage data run: | - lcov --directory build/Linux/x64/Debug --capture --output-file coverage.info + lcov --directory ${{ github.workspace }}/build/Linux/x64/Debug --capture --output-file coverage.info lcov --remove coverage.info '/usr/*' '${{ github.workspace }}/cts/*' --output-file coverage.info lcov --list coverage.info @@ -270,7 +276,7 @@ jobs: export LD_LIBRARY_PATH=${{ env.INSTALL_PREFIX }}/Linux/x64/Debug/lib export VX_TEST_DATA_PATH=${{ github.workspace }}/cts/test_data/ timeout 600 ./bin/vx_test_conformance \ - --filter="TensorNetworks.*:*NN*:VxKernelOfNNAndNNEF.*:VxParameterOfNNAndNNEF.*:MetaFormatOfNNAndNNEF.*:UserKernelsOfNNAndNNEF.*" \ + --filter="TensorNetworks.*:-TensorNetworks.AlexNetTestNetwork:*NN*:VxKernelOfNNAndNNEF.*:VxParameterOfNNAndNNEF.*:MetaFormatOfNNAndNNEF.*:UserKernelsOfNNAndNNEF.*" \ --verbose # ================================================================ @@ -412,6 +418,8 @@ jobs: - name: Build OpenVX sample impl (Release) from main run: | + # main branch may not yet have --userdataobj support + if grep -q 'userdataobj' Build.py; then EXTRA="--userdataobj"; fi python3 Build.py \ --os=linux --arch=64 --conf=Release --build=true \ --conf_vision \ @@ -421,7 +429,7 @@ jobs: --ix \ --pipelining \ --streaming \ - --userdataobj + $EXTRA - name: Upload main release build artifacts uses: actions/upload-artifact@v4 @@ -468,20 +476,22 @@ jobs: id: pr_openvx run: | set -euo pipefail - LIB_DIR=${{ github.workspace }}/pr-build/Linux/x64/Release/lib - INC_DIR=${{ github.workspace }}/pr-build/include + LIB_DIR=$(find ${{ github.workspace }}/pr-build -type d -name lib | head -n1) + INC_DIR=$(dirname "$LIB_DIR")/include echo "lib_dir=$LIB_DIR" >> "$GITHUB_OUTPUT" echo "include_dir=$INC_DIR" >> "$GITHUB_OUTPUT" + ls -la "$INC_DIR/VX/vx.h" ls -la "$LIB_DIR" - name: Stage main OpenVX libraries id: main_openvx run: | set -euo pipefail - LIB_DIR=${{ github.workspace }}/main-build/Linux/x64/Release/lib - INC_DIR=${{ github.workspace }}/main-build/include + LIB_DIR=$(find ${{ github.workspace }}/main-build -type d -name lib | head -n1) + INC_DIR=$(dirname "$LIB_DIR")/include echo "lib_dir=$LIB_DIR" >> "$GITHUB_OUTPUT" echo "include_dir=$INC_DIR" >> "$GITHUB_OUTPUT" + ls -la "$INC_DIR/VX/vx.h" ls -la "$LIB_DIR" - name: Clone openvx-mark @@ -496,7 +506,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ -DOPENVX_INCLUDES=${{ steps.pr_openvx.outputs.include_dir }} \ - -DOPENVX_LIBRARIES="${{ steps.pr_openvx.outputs.lib_dir }}/libopenvx.so;${{ steps.pr_openvx.outputs.lib_dir }}/libvxu.so" \ + -DOPENVX_LIB_DIR=${{ steps.pr_openvx.outputs.lib_dir }} \ .. cmake --build . -j$(nproc) @@ -507,7 +517,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ -DOPENVX_INCLUDES=${{ steps.main_openvx.outputs.include_dir }} \ - -DOPENVX_LIBRARIES="${{ steps.main_openvx.outputs.lib_dir }}/libopenvx.so;${{ steps.main_openvx.outputs.lib_dir }}/libvxu.so" \ + -DOPENVX_LIB_DIR=${{ steps.main_openvx.outputs.lib_dir }} \ .. cmake --build . -j$(nproc) diff --git a/Build.py b/Build.py index c4ec4f6..5f93956 100644 --- a/Build.py +++ b/Build.py @@ -85,6 +85,7 @@ def main(): parser.add_option("--nn", dest="nn", help="Add -DOPENVX_USE_NN=ON to support the neural network extension", default=False, action='store_true') parser.add_option("--pipelining", dest="pipelining", help="Add -DOPENVX_USE_PIPELINING=ON to support the pipelining extension", default=False, action='store_true') parser.add_option("--streaming", dest="streaming", help="Add -DOPENVX_USE_STREAMING=ON to support the streaming extension", default=False, action='store_true') + parser.add_option("--userdataobj", dest="userdataobj", help="Add -DOPENVX_USE_USER_DATA_OBJECT=ON to support the user data object extension", default=False, action="store_true") parser.add_option("--opencl_interop", dest="opencl_interop", help="Add -DOPENVX_USE_OPENCL_INTEROP=ON to support OpenVX OpenCL InterOp", default=False, action='store_true') # Provisional extensions parser.add_option("--tiling", dest="tiling", help="Add -DOPENVX_USE_TILING=ON to support the tiling extension", default=False, action='store_true') @@ -214,6 +215,8 @@ def main(): cmd += ['-DOPENVX_USE_IX=ON'] if options.nn: cmd += ['-DOPENVX_USE_NN=ON'] + if options.userdataobj: + cmd += ['-DOPENVX_USE_USER_DATA_OBJECT=ON'] if options.opencl_interop: cmd += ['-DOPENVX_USE_OPENCL_INTEROP=ON'] # if options.nn16: