From 10532a3297ea5f40d8d523bbdec5ce77b893ee0f Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sun, 25 Feb 2024 13:08:02 +0100 Subject: [PATCH] chore(ricepp): install benchmark alongside artifacts --- .docker/build-linux.sh | 3 +-- .docker/install-static-libs.sh | 20 ++++++++++---------- .github/workflows/build.yml | 6 +++--- CMakeLists.txt | 29 +++++++++++++++++++---------- ricepp/CMakeLists.txt | 4 ++++ 5 files changed, 37 insertions(+), 25 deletions(-) diff --git a/.docker/build-linux.sh b/.docker/build-linux.sh index 0af421fd..cde0bd45 100644 --- a/.docker/build-linux.sh +++ b/.docker/build-linux.sh @@ -93,10 +93,9 @@ if [[ "-$BUILD_TYPE-" == *-static-* ]]; then export LDFLAGS="-L/opt/static-libs/$COMPILER/lib" CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_DO_NOT_USE=1" CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_EXTRA_PREFIX=/opt/static-libs/$COMPILER" -else - CMAKE_ARGS="${CMAKE_ARGS} -DWITH_BENCHMARKS=1" fi +CMAKE_ARGS="${CMAKE_ARGS} -DWITH_BENCHMARKS=1" CMAKE_ARGS="${CMAKE_ARGS} -DWITH_TESTS=1 -DWITH_LEGACY_FUSE=1" CMAKE_ARGS="${CMAKE_ARGS} -DDWARFS_ARTIFACTS_DIR=/artifacts" diff --git a/.docker/install-static-libs.sh b/.docker/install-static-libs.sh index fb26f981..fe179553 100644 --- a/.docker/install-static-libs.sh +++ b/.docker/install-static-libs.sh @@ -12,7 +12,7 @@ BZIP2_VERSION=1.0.8 LIBARCHIVE_VERSION=3.7.2 FLAC_VERSION=1.4.3 LIBUNWIND_VERSION=1.7.2 -# BENCHMARK_VERSION=1.8.2 +BENCHMARK_VERSION=1.8.3 RETRY=0 while true; do @@ -32,7 +32,7 @@ wget https://sourceware.org/pub/bzip2/bzip2-${BZIP2_VERSION}.tar.gz wget https://github.com/libarchive/libarchive/releases/download/v${LIBARCHIVE_VERSION}/libarchive-${LIBARCHIVE_VERSION}.tar.xz wget https://github.com/xiph/flac/releases/download/${FLAC_VERSION}/flac-${FLAC_VERSION}.tar.xz wget https://github.com/libunwind/libunwind/releases/download/v${LIBUNWIND_VERSION}/libunwind-${LIBUNWIND_VERSION}.tar.gz -# wget https://github.com/google/benchmark/archive/refs/tags/v${BENCHMARK_VERSION}.tar.gz +wget https://github.com/google/benchmark/archive/refs/tags/v${BENCHMARK_VERSION}.tar.gz for COMPILER in clang gcc; do if [[ "$COMPILER" == "clang" ]]; then @@ -85,14 +85,14 @@ for COMPILER in clang gcc; do make -j$(nproc) make install - # cd "$HOME/pkgs" - # tar xf v${BENCHMARK_VERSION}.tar.gz - # cd benchmark-${BENCHMARK_VERSION} - # mkdir build - # cd build - # cmake .. -DBENCHMARK_DOWNLOAD_DEPENDENCIES=1 -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" - # make -j$(nproc) - # make install + cd "$HOME/pkgs/$COMPILER" + tar xf ../v${BENCHMARK_VERSION}.tar.gz + cd benchmark-${BENCHMARK_VERSION} + mkdir build + cd build + cmake .. -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" + make -j$(nproc) + make install done cd "$HOME" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 99b96d8e..02cb0a77 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,7 +40,7 @@ jobs: - name: Configure Build shell: cmd run: | - cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs + cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs - name: Run Build shell: cmd @@ -120,7 +120,7 @@ jobs: - name: Configure Rice++ Build shell: cmd run: | - cmake -B${{ runner.temp }}\build-ricepp -S${{ runner.workspace }}\dwarfs\ricepp -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl + cmake -B${{ runner.temp }}\build-ricepp -S${{ runner.workspace }}\dwarfs\ricepp -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl - name: Run Build shell: cmd @@ -140,7 +140,7 @@ jobs: - name: Configure Build shell: cmd run: | - cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs -DCMAKE_PREFIX_PATH=${{ runner.temp }}\ricepp-install -DUSE_RICEPP_PACKAGE=ON + cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs -DCMAKE_PREFIX_PATH=${{ runner.temp }}\ricepp-install -DUSE_RICEPP_PACKAGE=ON - name: Run Build shell: cmd diff --git a/CMakeLists.txt b/CMakeLists.txt index f7266aa3..9e387401 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -766,17 +766,15 @@ if(WITH_TESTS) endif() if(WITH_BENCHMARKS) - if(NOT STATIC_BUILD_DO_NOT_USE) - find_package(benchmark 1.8) - if(benchmark_FOUND) - add_executable(dwarfs_benchmark test/dwarfs_benchmark.cpp) - target_link_libraries(dwarfs_benchmark test_helpers benchmark::benchmark) - list(APPEND BINARY_TARGETS dwarfs_benchmark) + find_package(benchmark 1.8) + if(benchmark_FOUND) + add_executable(dwarfs_benchmark test/dwarfs_benchmark.cpp) + target_link_libraries(dwarfs_benchmark test_helpers benchmark::benchmark) + list(APPEND BINARY_TARGETS dwarfs_benchmark) - add_executable(multiversioning_benchmark test/multiversioning_benchmark.cpp) - target_link_libraries(multiversioning_benchmark test_helpers benchmark::benchmark) - list(APPEND BINARY_TARGETS multiversioning_benchmark) - endif() + add_executable(multiversioning_benchmark test/multiversioning_benchmark.cpp) + target_link_libraries(multiversioning_benchmark test_helpers benchmark::benchmark) + list(APPEND BINARY_TARGETS multiversioning_benchmark) endif() add_executable(segmenter_benchmark test/segmenter_benchmark.cpp) @@ -1237,10 +1235,21 @@ if(STATIC_BUILD_DO_NOT_USE OR WIN32) "binary_tarball=${CMAKE_PROJECT_NAME}-${DWARFS_ARTIFACT_ID}${PACKAGE_EXT}\n" "universal_binary=${UNIVERSAL_PACKED}\n") + if(USE_RICEPP_PACKAGE) + add_executable(ricepp_benchmark_fits ricepp/ricepp_benchmark_fits.cpp) + target_link_libraries(ricepp_benchmark_fits ricepp benchmark::benchmark) + set(RICEPP_BENCHMARK_FITS "ricepp_benchmark_fits") + else() + set(RICEPP_BENCHMARK_FITS "ricepp/ricepp_benchmark_fits") + endif() + add_custom_target(copy_artifacts COMMAND ${CMAKE_COMMAND} -E make_directory ${ARTIFACTS_FULL_PATH} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}-${DWARFS_ARTIFACT_ID}${PACKAGE_EXT} ${ARTIFACTS_FULL_PATH} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${UNIVERSAL_PACKED} ${ARTIFACTS_FULL_PATH} + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/${RICEPP_BENCHMARK_FITS}${CMAKE_EXECUTABLE_SUFFIX} + ${ARTIFACTS_FULL_PATH}/ricepp_benchmark_fits-${DWARFS_ARTIFACT_ID}${CMAKE_EXECUTABLE_SUFFIX} ) add_custom_target(copy_source_artifacts diff --git a/ricepp/CMakeLists.txt b/ricepp/CMakeLists.txt index 241cb9d8..3beadbc1 100644 --- a/ricepp/CMakeLists.txt +++ b/ricepp/CMakeLists.txt @@ -148,6 +148,10 @@ endif() if(WITH_BENCHMARKS) find_package(benchmark 1.8) if(benchmark_FOUND) + if(STATIC_BUILD_DO_NOT_USE) + add_link_options(-static -static-libgcc) + endif() + add_executable(ricepp_benchmark ricepp_benchmark.cpp) target_link_libraries(ricepp_benchmark ricepp benchmark::benchmark)