From 360531f35efd53baf026b839e913e65f531f5cf3 Mon Sep 17 00:00:00 2001 From: Akos Denke Date: Mon, 4 Nov 2024 16:05:47 +0100 Subject: [PATCH] [Benchmarks] Restructure OpenCV build script args to be more reusable --- scripts/benchmark/build.sh | 21 ++++++++++++--------- scripts/build-opencv.sh | 30 ------------------------------ scripts/ci-opencv.sh | 35 ++++++++++++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 40 deletions(-) diff --git a/scripts/benchmark/build.sh b/scripts/benchmark/build.sh index 49e291a9f..1f3d6f8b0 100755 --- a/scripts/benchmark/build.sh +++ b/scripts/benchmark/build.sh @@ -17,6 +17,8 @@ # variables should be set as well. # # Options: +# CMAKE_TARGETS: Optional space separated list for CMake build targets. +# COMMON_EXTRA_CMAKE_ARGS: Optional commmon CMake options for all the opencv builds. # VANILLA_EXTRA_CMAKE_OPTIONS: Optional extra CMake options for the opencv-vanilla build. # KLEIDICV_EXTRA_CMAKE_OPTIONS: Optional extra CMake options for the opencv-kleidicv build. # CUSTOM_CMAKE_OPTIONS: If provided, an extra build will be created with KleidiCV. @@ -37,36 +39,36 @@ BENCHMARK_SCRIPT_PATH="$(realpath "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) SCRIPT_PATH="${BENCHMARK_SCRIPT_PATH}/.." KLEIDICV_SOURCE_PATH="$(realpath "${SCRIPT_PATH}/..")" -export COMMON_EXTRA_CMAKE_ARGS="\ +export COMMON_CMAKE_ARGS="\ -DANDROID_ABI=arm64-v8a \ - -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=ON \ - -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON \ " # ------------------------------------------------------------------------------ export BUILD_ID="opencv-vanilla" export EXTRA_CMAKE_ARGS="\ - ${COMMON_EXTRA_CMAKE_ARGS} \ + ${COMMON_CMAKE_ARGS} \ + ${COMMON_EXTRA_CMAKE_ARGS:-} \ -DWITH_KLEIDICV=OFF \ ${VANILLA_EXTRA_CMAKE_OPTIONS:-} \ " -"${SCRIPT_PATH}"/build-opencv.sh "opencv_perf_imgproc opencv_perf_core" +"${SCRIPT_PATH}"/build-opencv.sh "${CMAKE_TARGETS:-}" # ------------------------------------------------------------------------------ export BUILD_ID="opencv-kleidicv" export EXTRA_CMAKE_ARGS="\ - ${COMMON_EXTRA_CMAKE_ARGS} \ + ${COMMON_CMAKE_ARGS} \ + ${COMMON_EXTRA_CMAKE_ARGS:-} \ -DWITH_KLEIDICV=ON \ -DKLEIDICV_SOURCE_PATH=${KLEIDICV_SOURCE_PATH} \ -DKLEIDICV_ENABLE_SME2=ON \ ${KLEIDICV_EXTRA_CMAKE_OPTIONS:-} \ " -"${SCRIPT_PATH}"/build-opencv.sh "opencv_perf_imgproc opencv_perf_core" +"${SCRIPT_PATH}"/build-opencv.sh "${CMAKE_TARGETS:-}" # ------------------------------------------------------------------------------ @@ -76,14 +78,15 @@ fi export BUILD_ID="opencv-kleidicv-${CUSTOM_BUILD_SUFFIX:-custom}" export EXTRA_CMAKE_ARGS="\ - ${COMMON_EXTRA_CMAKE_ARGS} \ + ${COMMON_CMAKE_ARGS} \ + ${COMMON_EXTRA_CMAKE_ARGS:-} \ -DWITH_KLEIDICV=ON \ -DKLEIDICV_SOURCE_PATH=${KLEIDICV_SOURCE_PATH} \ -DKLEIDICV_ENABLE_SME2=ON \ ${CUSTOM_CMAKE_OPTIONS} \ " -"${SCRIPT_PATH}"/build-opencv.sh "opencv_perf_imgproc opencv_perf_core" +"${SCRIPT_PATH}"/build-opencv.sh "${CMAKE_TARGETS:-}" # ------------------------------------------------------------------------------ # End of script diff --git a/scripts/build-opencv.sh b/scripts/build-opencv.sh index aeb39e9ae..e0506e701 100755 --- a/scripts/build-opencv.sh +++ b/scripts/build-opencv.sh @@ -96,36 +96,6 @@ cmake_config_args=( "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}" "-DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS}" "-DCMAKE_CXX_STANDARD=14" - "-DOPENCV_DISABLE_THREAD_SUPPORT=ON" - - "-DCV_TRACE=OFF" - "-DBUILD_EXAMPLES=OFF" - "-DBUILD_opencv_apps=OFF" - "-DBUILD_ANDROID_EXAMPLES=OFF" - "-DBUILD_ANDROID_PROJECTS=OFF" - "-DBUILD_JAVA=OFF" - "-DWITH_QT=OFF" - "-DBUILD_OPENCV_PYTHON=NO" - "-DBUILD_OPENCV_PYTHON2=NO" - "-DBUILD_OPENCV_PYTHON3=NO" - "-DWITH_VTK=OFF" - "-DWITH_JASPER=OFF" - "-DWITH_OPENJPEG=OFF" - "-DWITH_JPEG=OFF" - "-DWITH_WEBP=OFF" - "-DWITH_PNG=OFF" - "-DWITH_TIFF=OFF" - "-DWITH_V4L=OFF" - "-DWITH_OPENCL=OFF" - "-DWITH_FLATBUFFERS=OFF" - "-DWITH_PROTOBUF=OFF" - "-DWITH_IMGCODEC_HDR=OFF" - "-DWITH_IMGCODEC_SUNRASTER=OFF" - "-DWITH_IMGCODEC_PXM=OFF" - "-DWITH_IMGCODEC_PFM=OFF" - "-DWITH_ADE=OFF" - "-DWITH_LAPACK=OFF" - "-DOPENCV_PYTHON_SKIP_DETECTION=ON" ) if [[ -n "${CMAKE_CROSSCOMPILING_EMULATOR}" ]]; then diff --git a/scripts/ci-opencv.sh b/scripts/ci-opencv.sh index 22a17dec6..9ceb19644 100755 --- a/scripts/ci-opencv.sh +++ b/scripts/ci-opencv.sh @@ -19,7 +19,40 @@ tar -xzf /opt/opencv-${OPENCV_VERSION}.tar.gz -C build/unpatched-opencv-src BUILD_ID=unpatched-opencv \ OPENCV_PATH="$(pwd)/build/unpatched-opencv-src/opencv-${OPENCV_VERSION}" \ CMAKE_EXE_LINKER_FLAGS="--rtlib=compiler-rt -fuse-ld=lld" \ -EXTRA_CMAKE_ARGS="-DBUILD_SHARED_LIBS=OFF -DWITH_KLEIDICV=ON -DKLEIDICV_SOURCE_PATH=$(pwd) -DKLEIDICV_ENABLE_SME2=ON" \ +EXTRA_CMAKE_ARGS="\ + -DBUILD_SHARED_LIBS=OFF \ + -DWITH_KLEIDICV=ON \ + -DKLEIDICV_SOURCE_PATH=$(pwd) \ + -DKLEIDICV_ENABLE_SME2=ON \ + -DBUILD_ANDROID_EXAMPLES=OFF \ + -DBUILD_ANDROID_PROJECTS=OFF \ + -DOPENCV_DISABLE_THREAD_SUPPORT=ON \ + -DCV_TRACE=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_opencv_apps=OFF \ + -DBUILD_JAVA=OFF \ + -DWITH_QT=OFF \ + -DBUILD_OPENCV_PYTHON=NO \ + -DBUILD_OPENCV_PYTHON2=NO \ + -DBUILD_OPENCV_PYTHON3=NO \ + -DWITH_VTK=OFF \ + -DWITH_JASPER=OFF \ + -DWITH_OPENJPEG=OFF \ + -DWITH_JPEG=OFF \ + -DWITH_WEBP=OFF \ + -DWITH_PNG=OFF \ + -DWITH_TIFF=OFF \ + -DWITH_V4L=OFF \ + -DWITH_OPENCL=OFF \ + -DWITH_FLATBUFFERS=OFF \ + -DWITH_PROTOBUF=OFF \ + -DWITH_IMGCODEC_HDR=OFF \ + -DWITH_IMGCODEC_SUNRASTER=OFF \ + -DWITH_IMGCODEC_PXM=OFF \ + -DWITH_IMGCODEC_PFM=OFF \ + -DWITH_ADE=OFF \ + -DWITH_LAPACK=OFF \ + -DOPENCV_PYTHON_SKIP_DETECTION=ON" \ ./scripts/build-opencv.sh # ------------------------------------------------------------------------------ -- GitLab