Message ID | 20250714112642.121146-1-Moritz.Haase@bmw.de |
---|---|
State | Under Review |
Headers | show |
Series | [meta-oe,01/10] leveldb: Disable ptests to allow to build with CMake 4+ | expand |
On Mon, Jul 14, 2025 at 4:27 AM Moritz Haase via lists.openembedded.org <Moritz.Haase=bmw.de@lists.openembedded.org> wrote: > > The component itself builds just fine with CMake 4, but the tests don't as they > rely on a bundled version of GTest that is six years old. Since upstream is > inactive, the simplest course of action is to not build the tests and disable > ptest support. is it possible to try using system gtest ? > > Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de> > --- > ...s.txt-fix-googletest-related-options.patch | 55 ------------------- > meta-oe/recipes-dbs/leveldb/leveldb/run-ptest | 10 ---- > meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb | 10 +--- > 3 files changed, 2 insertions(+), 73 deletions(-) > delete mode 100644 meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch > delete mode 100644 meta-oe/recipes-dbs/leveldb/leveldb/run-ptest > > diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch > deleted file mode 100644 > index b0bfb8bf16..0000000000 > --- a/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch > +++ /dev/null > @@ -1,55 +0,0 @@ > -From 77da477840f89da7ced29da315de77571e8f190e Mon Sep 17 00:00:00 2001 > -From: Martin Jansa <martin.jansa@gmail.com> > -Date: Fri, 20 Oct 2023 22:57:48 +0200 > -Subject: [PATCH] CMakeLists.txt: fix googletest related options > - > -* https://cmake.org/cmake/help/book/mastering-cmake/chapter/Writing%20CMakeLists%20Files.html > - says that CMake options are case-sensitive and I don't see lower-case version in > - currently used googletest submodules and gtest is indeed installed with leveldb > - > -* install_gmock option I don't see at all, so I've kept it as is, INSTALL_GTEST, BUILD_GMOCK > - do exist as upper-case > - > -$ grep -Ri install_.*mock . > -./CMakeLists.txt: set(install_gmock OFF) > -./third_party/googletest/googlemock/CMakeLists.txt:install_project(gmock gmock_main) > -$ grep -Ri build_gmock . > -./CMakeLists.txt: set(BUILD_GMOCK ON) > -./third_party/googletest/googletest/README.md:cmake .. -DBUILD_GMOCK=OFF > -./third_party/googletest/CMakeLists.txt:option(BUILD_GMOCK "Builds the googlemock subproject" ON) > -./third_party/googletest/CMakeLists.txt:if(BUILD_GMOCK) > -$ grep -Ri install_gtest . > -./CMakeLists.txt: set(INSTALL_GTEST OFF) > -./third_party/googletest/googletest/cmake/internal_utils.cmake: if(INSTALL_GTEST) > -./third_party/googletest/googletest/CMakeLists.txt:if (INSTALL_GTEST) > -./third_party/googletest/CMakeLists.txt:option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON) > - > -* also use CACHE and FORCE as sugested in: > - https://cmake.org/cmake/help/latest/command/set.html > - https://stackoverflow.com/questions/20239334/cmake-set-subdirectory-options > - for the value to correctly propagate into third_party/googletest subdirectory > - > -Signed-off-by: Martin Jansa <martin.jansa@gmail.com> > ---- > -Upstream-Status: Submitted [https://github.com/google/leveldb/pull/1152] > - > - CMakeLists.txt | 6 +++--- > - 1 file changed, 3 insertions(+), 3 deletions(-) > - > -diff --git a/CMakeLists.txt b/CMakeLists.txt > -index fda9e01..f8a2629 100644 > ---- a/CMakeLists.txt > -+++ b/CMakeLists.txt > -@@ -295,9 +295,9 @@ if(LEVELDB_BUILD_TESTS) > - > - # Prevent overriding the parent project's compiler/linker settings on Windows. > - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) > -- set(install_gtest OFF) > -- set(install_gmock OFF) > -- set(build_gmock ON) > -+ set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) > -+ set(install_gmock OFF CACHE BOOL "" FORCE) > -+ set(BUILD_GMOCK ON CACHE BOOL "" FORCE) > - > - # This project is tested using GoogleTest. > - add_subdirectory("third_party/googletest") > diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest b/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest > deleted file mode 100644 > index 9ae70c1284..0000000000 > --- a/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest > +++ /dev/null > @@ -1,10 +0,0 @@ > -#!/bin/sh > - > -for test in *_test; do > - if ./${test}; then > - echo "PASS: ${test}" > - else > - echo "FAIL: ${test}" > - fi > -done > - > diff --git a/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb b/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb > index 9cefc528ae..0ee0c8c075 100644 > --- a/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb > +++ b/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb > @@ -5,30 +5,24 @@ LICENSE = "BSD-3-Clause" > LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d" > > SRC_URI = "gitsm://github.com/google/${BPN}.git;branch=main;protocol=https \ > - file://0001-CMakeLists.txt-fix-googletest-related-options.patch \ > file://0001-Fix-printing-64-bit-integer-types.patch \ > - file://run-ptest \ > " > > SRCREV = "068d5ee1a3ac40dabd00d211d5013af44be55bea" > > -inherit cmake ptest > +inherit cmake > PACKAGECONFIG ??= "" > PACKAGECONFIG[benchmarks] = "-DLEVELDB_BUILD_BENCHMARKS=ON,-DLEVELDB_BUILD_BENCHMARKS=OFF,sqlite" > PACKAGECONFIG[snappy] = ",,snappy" > PACKAGECONFIG[tcmalloc] = ",,gperftools" > > EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH=ON \ > - -DLEVELDB_BUILD_TESTS=${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'ON', 'OFF', d)}" > + -DLEVELDB_BUILD_TESTS=OFF" > > do_install:append() { > install -D -m 0755 ${B}/leveldbutil ${D}${bindir}/leveldbutil > } > > -do_install_ptest() { > - install -m 0755 ${B}/*_test ${D}${PTEST_PATH} > -} > - > # Do not try to build lib32-leveldb for mips64, but allow libn32-leveldb. > # > COMPATIBLE_HOST:mipsarcho32:pn-lib32-leveldb = "null" > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#118519): https://lists.openembedded.org/g/openembedded-devel/message/118519 > Mute This Topic: https://lists.openembedded.org/mt/114145341/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Hi,
> is it possible to try using system gtest ?
at least not easily, since - among other things - that requires C++14
and the project is still on C++11. Applying the policy override
workaround seems to work though, so I've sent a new patch (see [0]).
Please consider this one obsolete.
[0]: https://lists.openembedded.org/g/openembedded-devel/topic/meta_oe_patch_leveldb/114162925
Moritz
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch deleted file mode 100644 index b0bfb8bf16..0000000000 --- a/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 77da477840f89da7ced29da315de77571e8f190e Mon Sep 17 00:00:00 2001 -From: Martin Jansa <martin.jansa@gmail.com> -Date: Fri, 20 Oct 2023 22:57:48 +0200 -Subject: [PATCH] CMakeLists.txt: fix googletest related options - -* https://cmake.org/cmake/help/book/mastering-cmake/chapter/Writing%20CMakeLists%20Files.html - says that CMake options are case-sensitive and I don't see lower-case version in - currently used googletest submodules and gtest is indeed installed with leveldb - -* install_gmock option I don't see at all, so I've kept it as is, INSTALL_GTEST, BUILD_GMOCK - do exist as upper-case - -$ grep -Ri install_.*mock . -./CMakeLists.txt: set(install_gmock OFF) -./third_party/googletest/googlemock/CMakeLists.txt:install_project(gmock gmock_main) -$ grep -Ri build_gmock . -./CMakeLists.txt: set(BUILD_GMOCK ON) -./third_party/googletest/googletest/README.md:cmake .. -DBUILD_GMOCK=OFF -./third_party/googletest/CMakeLists.txt:option(BUILD_GMOCK "Builds the googlemock subproject" ON) -./third_party/googletest/CMakeLists.txt:if(BUILD_GMOCK) -$ grep -Ri install_gtest . -./CMakeLists.txt: set(INSTALL_GTEST OFF) -./third_party/googletest/googletest/cmake/internal_utils.cmake: if(INSTALL_GTEST) -./third_party/googletest/googletest/CMakeLists.txt:if (INSTALL_GTEST) -./third_party/googletest/CMakeLists.txt:option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON) - -* also use CACHE and FORCE as sugested in: - https://cmake.org/cmake/help/latest/command/set.html - https://stackoverflow.com/questions/20239334/cmake-set-subdirectory-options - for the value to correctly propagate into third_party/googletest subdirectory - -Signed-off-by: Martin Jansa <martin.jansa@gmail.com> ---- -Upstream-Status: Submitted [https://github.com/google/leveldb/pull/1152] - - CMakeLists.txt | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index fda9e01..f8a2629 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -295,9 +295,9 @@ if(LEVELDB_BUILD_TESTS) - - # Prevent overriding the parent project's compiler/linker settings on Windows. - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) -- set(install_gtest OFF) -- set(install_gmock OFF) -- set(build_gmock ON) -+ set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) -+ set(install_gmock OFF CACHE BOOL "" FORCE) -+ set(BUILD_GMOCK ON CACHE BOOL "" FORCE) - - # This project is tested using GoogleTest. - add_subdirectory("third_party/googletest") diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest b/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest deleted file mode 100644 index 9ae70c1284..0000000000 --- a/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -for test in *_test; do - if ./${test}; then - echo "PASS: ${test}" - else - echo "FAIL: ${test}" - fi -done - diff --git a/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb b/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb index 9cefc528ae..0ee0c8c075 100644 --- a/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb +++ b/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb @@ -5,30 +5,24 @@ LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d" SRC_URI = "gitsm://github.com/google/${BPN}.git;branch=main;protocol=https \ - file://0001-CMakeLists.txt-fix-googletest-related-options.patch \ file://0001-Fix-printing-64-bit-integer-types.patch \ - file://run-ptest \ " SRCREV = "068d5ee1a3ac40dabd00d211d5013af44be55bea" -inherit cmake ptest +inherit cmake PACKAGECONFIG ??= "" PACKAGECONFIG[benchmarks] = "-DLEVELDB_BUILD_BENCHMARKS=ON,-DLEVELDB_BUILD_BENCHMARKS=OFF,sqlite" PACKAGECONFIG[snappy] = ",,snappy" PACKAGECONFIG[tcmalloc] = ",,gperftools" EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH=ON \ - -DLEVELDB_BUILD_TESTS=${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'ON', 'OFF', d)}" + -DLEVELDB_BUILD_TESTS=OFF" do_install:append() { install -D -m 0755 ${B}/leveldbutil ${D}${bindir}/leveldbutil } -do_install_ptest() { - install -m 0755 ${B}/*_test ${D}${PTEST_PATH} -} - # Do not try to build lib32-leveldb for mips64, but allow libn32-leveldb. # COMPATIBLE_HOST:mipsarcho32:pn-lib32-leveldb = "null"
The component itself builds just fine with CMake 4, but the tests don't as they rely on a bundled version of GTest that is six years old. Since upstream is inactive, the simplest course of action is to not build the tests and disable ptest support. Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de> --- ...s.txt-fix-googletest-related-options.patch | 55 ------------------- meta-oe/recipes-dbs/leveldb/leveldb/run-ptest | 10 ---- meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb | 10 +--- 3 files changed, 2 insertions(+), 73 deletions(-) delete mode 100644 meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch delete mode 100644 meta-oe/recipes-dbs/leveldb/leveldb/run-ptest