diff mbox series

[meta-oe,01/10] leveldb: Disable ptests to allow to build with CMake 4+

Message ID 20250714112642.121146-1-Moritz.Haase@bmw.de
State Accepted
Headers show
Series [meta-oe,01/10] leveldb: Disable ptests to allow to build with CMake 4+ | expand

Commit Message

Haase Moritz, JD-62 July 14, 2025, 11:26 a.m. UTC
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

Comments

Khem Raj July 14, 2025, 5:56 p.m. UTC | #1
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]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Haase Moritz, JD-62 July 15, 2025, 7:22 a.m. UTC | #2
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 mbox series

Patch

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"