diff --git a/mingw-w64-leveldb/PKGBUILD b/mingw-w64-leveldb/PKGBUILD index 294bed49b3..894570c838 100644 --- a/mingw-w64-leveldb/PKGBUILD +++ b/mingw-w64-leveldb/PKGBUILD @@ -12,16 +12,21 @@ url="https://github.com/google/leveldb" license=('BSD') makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-benchmark" + "${MINGW_PACKAGE_PREFIX}-gtest" "${MINGW_PACKAGE_PREFIX}-ninja") source=("${_realname}-${pkgver}.tar.gz::https://github.com/google/leveldb/archive/${pkgver}.tar.gz" - 001-snappy-optional.patch) + 001-snappy-optional.patch + leveldb-unbundle-gtest-benchmark.patch) sha256sums=('9a37f8a6174f09bd622bc723b55881dc541cd50747cbd08831c2a82d620f6d76' - '29bd7b19cebf31dddb0cb3fe9d938a367e99fa045ac523014fc45d4021577e53') + '29bd7b19cebf31dddb0cb3fe9d938a367e99fa045ac523014fc45d4021577e53' + '4183dc3b5c17a0cb5fb66ada179b9bd2b43e997d3a9c854d19cf892ea6e524b9') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i ${srcdir}/001-snappy-optional.patch sed -e "s|-Werror||g" -i CMakeLists.txt + patch -p1 -i ${srcdir}/001-snappy-optional.patch + patch -p1 -i ${srcdir}/leveldb-unbundle-gtest-benchmark.patch } build() { @@ -40,8 +45,6 @@ build() { -G"Ninja" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ${extra_config[@]} \ - -DLEVELDB_BUILD_BENCHMARKS=OFF \ - -DLEVELDB_BUILD_TESTS=OFF \ -DLEVELDB_USE_SNAPPY=OFF \ "../${_realname}-${pkgver}" @@ -55,8 +58,6 @@ build() { -G"Ninja" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ ${extra_config[@]} \ - -DLEVELDB_BUILD_BENCHMARKS=OFF \ - -DLEVELDB_BUILD_TESTS=OFF \ -DLEVELDB_USE_SNAPPY=OFF \ -DBUILD_SHARED_LIBS=ON \ "../${_realname}-${pkgver}" @@ -66,11 +67,10 @@ build() { check() { cd "${srcdir}/build-${MSYSTEM}-static" - ${MINGW_PREFIX}/bin/cmake \ - -DLEVELDB_BUILD_TESTS=ON \ - ../${_realname}-${pkgver} - ${MINGW_PREFIX}/bin/cmake --build . - ${MINGW_PREFIX}/bin/ctest + ${MINGW_PREFIX}/bin/ctest . || warning "Tests failed" + + cd "${srcdir}/build-${MSYSTEM}-shared" + ${MINGW_PREFIX}/bin/ctest . || warning "Tests failed" } package() { diff --git a/mingw-w64-leveldb/leveldb-unbundle-gtest-benchmark.patch b/mingw-w64-leveldb/leveldb-unbundle-gtest-benchmark.patch new file mode 100644 index 0000000000..a2fd322e9b --- /dev/null +++ b/mingw-w64-leveldb/leveldb-unbundle-gtest-benchmark.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f8285b8..352ba35 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -296,20 +296,12 @@ if(LEVELDB_BUILD_TESTS) + set(build_gmock ON) + + # This project is tested using GoogleTest. +- add_subdirectory("third_party/googletest") ++ find_package(GTest) + + # This project uses Google benchmark for benchmarking. + set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE) + set(BENCHMARK_ENABLE_EXCEPTIONS OFF CACHE BOOL "" FORCE) +- add_subdirectory("third_party/benchmark") +- +- # GoogleTest triggers a missing field initializers warning. +- if(LEVELDB_HAVE_NO_MISSING_FIELD_INITIALIZERS) +- set_property(TARGET gtest +- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers) +- set_property(TARGET gmock +- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers) +- endif(LEVELDB_HAVE_NO_MISSING_FIELD_INITIALIZERS) ++ find_package(benchmark) + + function(leveldb_test test_file) + get_filename_component(test_target_name "${test_file}" NAME_WE) +@@ -400,7 +392,7 @@ if(LEVELDB_BUILD_BENCHMARKS) + + "${bench_file}" + ) +- target_link_libraries("${bench_target_name}" leveldb gmock gtest) ++ target_link_libraries("${bench_target_name}" leveldb GTest::gtest) + target_compile_definitions("${bench_target_name}" + PRIVATE + ${LEVELDB_PLATFORM_NAME}=1