GNU bug report logs - #70397
[PATCH] gnu: cppdap: Add cppdap to debug.scm.

Previous Next

Package: guix-patches;

Reported by: Daniel Ziltener <dziltener <at> lyrion.ch>

Date: Mon, 15 Apr 2024 14:26:02 UTC

Severity: normal

Tags: patch

Done: Z572 <zhengjunjie <at> iscas.ac.cn>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 70397 in the body.
You can then email your comments to 70397 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 14:26:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Ziltener <dziltener <at> lyrion.ch>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 15 Apr 2024 14:26:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Daniel Ziltener <dziltener <at> lyrion.ch>
To: guix-patches <at> gnu.org
Cc: dziltener <at> lyrion.ch
Subject: [PATCH] gnu: cppdap: Add cppdap to debug.scm.
Date: Mon, 15 Apr 2024 16:23:09 +0200
---
 gnu/packages/debug.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 6d4567acc4..7865dc32f4 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -185,6 +185,37 @@ (define-public c-reduce
 tools that process C/C++ code.")
     (license license:ncsa)))
 
+(define-public cppdap
+  (package
+    (name "cppdap")
+    (version "1.58.0-a")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/google/cppdap")
+         (commit (string-append "dap-" version))))
+       (sha256
+        (base32
+         "0fq2w35fw1lb5wya1nny45pk3a13b689k48calk1cmqmqpbcjn2b"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags #~(list "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON")
+      #:phases #~(modify-phases %standard-phases
+                   (delete 'check))))
+    (propagated-inputs
+     (list nlohmann-json))
+    (home-page "https://github.com/google/cppdap")
+    (synopsis "C++ library for the Debug Adapter Protocol")
+    (description
+     "cppdap is a C++11 library (\"SDK\") implementation of the Debug Adapter Protocol,
+providing an API for implementing a DAP client or server.
+cppdap provides C++ type-safe structures for the full DAP specification, and provides
+ a simple way to add custom protocol messages.")
+    (license license:expat)))
+
 (define-public c-vise
   (package
     (name "c-vise")
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 16:28:02 GMT) Full text and rfc822 format available.

Message #8 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
To: 70397 <at> debbugs.gnu.org
Cc: Daniel Ziltener <dziltener <at> lyrion.ch>
Subject: [PATCH] gnu: Add cppdap.
Date: Tue, 16 Apr 2024 00:26:36 +0800
From: Daniel Ziltener <dziltener <at> lyrion.ch>

* gnu/packages/debug.scm (cppdap): New variable.
* gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch: New
patch.
* gnu/local.mk (dist_patch_DATA): Register it.

Signed-off-by: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
Change-Id: I328ca0c01787defcc9d18f4ccd7762c86412cca7
---
 gnu/local.mk                                  |   1 +
 gnu/packages/debug.scm                        |  50 +++++++++
 ...dd-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch | 101 ++++++++++++++++++
 3 files changed, 152 insertions(+)
 create mode 100644 gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 64efee901f..a8cc5de803 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1078,6 +1078,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/cool-retro-term-wctype.patch		\
   %D%/packages/patches/coreutils-gnulib-tests.patch		\
   %D%/packages/patches/cppcheck-disable-char-signedness-test.patch	\
+  %D%/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch\
   %D%/packages/patches/cpuinfo-system-libraries.patch		\
   %D%/packages/patches/cpulimit-with-glib-2.32.patch		\
   %D%/packages/patches/crawl-upgrade-saves.patch		\
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 6d4567acc4..7a7eafddab 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -46,6 +46,7 @@ (define-module (gnu packages debug)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages c)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
@@ -185,6 +186,55 @@ (define-public c-reduce
 tools that process C/C++ code.")
     (license license:ncsa)))
 
+(define-public cppdap
+  (package
+    (name "cppdap")
+    (version "1.58.0-a")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/google/cppdap")
+         (commit (string-append "dap-" version))))
+       (modules '((guix build utils)))
+       (snippet
+        '(delete-file-recursively "third_party"))
+       (patches (search-patches
+                 "cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch"))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fq2w35fw1lb5wya1nny45pk3a13b689k48calk1cmqmqpbcjn2b"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list
+         "-DCPPDAP_BUILD_TESTS=ON"
+         "-DCPPDAP_USE_EXTERNAL_GTEST_PACKAGE=ON"
+         ;; Only one of the following three can be enabled at the same time
+         ;; "-DCPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE=ON"
+         ;; "-DCPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE=ON"
+         "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON")))
+    (native-inputs
+     (list googletest))
+    ;; see lib/cmake/cppdap/cppdapConfig.cmake
+    (propagated-inputs
+     (list
+      ;; Only one of the following three can be enabled at the same time
+      ;; rapidjson
+      ;; jsoncpp
+      nlohmann-json))
+    (home-page "https://github.com/google/cppdap")
+    (synopsis "C++ library for the Debug Adapter Protocol")
+    (description
+     "cppdap is a C++11 library (\"SDK\") implementation of the Debug Adapter
+Protocol, providing an API for implementing a DAP client or server.  cppdap
+provides C++ type-safe structures for the full DAP specification, and provides a
+simple way to add custom protocol messages.")
+    (license license:expat)))
+
 (define-public c-vise
   (package
     (name "c-vise")
diff --git a/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
new file mode 100644
index 0000000000..62df0634ce
--- /dev/null
+++ b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
@@ -0,0 +1,101 @@
+From 40d9eaf3b6eca2ab8d5558e8935d56a75bd97183 Mon Sep 17 00:00:00 2001
+From: topazus <topazus <at> outlook.com>
+Date: Wed, 27 Dec 2023 19:56:49 +0800
+Subject: [PATCH] CMake: add CPPDAP_USE_EXTERNAL_GTEST_PACKAGE option
+
+---
+ CMakeLists.txt | 35 +++++++++++++++++++++++++----------
+ 1 file changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1b3c321..7292f3c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -40,6 +40,7 @@ option_if_not_defined(CPPDAP_INSTALL_VSCODE_EXAMPLES "Build and install dap exam
+ option_if_not_defined(CPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE "Use nlohmann_json with find_package() instead of building internal submodule" OFF)
+ option_if_not_defined(CPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE "Use RapidJSON with find_package()" OFF)
+ option_if_not_defined(CPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE "Use JsonCpp with find_package()" OFF)
++option_if_not_defined(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE "Use googletest with find_package()" OFF)
+ 
+ ###########################################################
+ # Directories
+@@ -59,7 +60,7 @@ set_if_not_defined(CPPDAP_GOOGLETEST_DIR  ${CPPDAP_THIRD_PARTY_DIR}/googletest)
+ ###########################################################
+ # Submodules
+ ###########################################################
+-if(CPPDAP_BUILD_TESTS)
++if(CPPDAP_BUILD_TESTS AND NOT CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
+     if(NOT EXISTS ${CPPDAP_GOOGLETEST_DIR}/.git)
+         message(WARNING "third_party/googletest submodule missing.")
+         message(WARNING "Run: `git submodule update --init` to build tests.")
+@@ -161,7 +162,7 @@ function(cppdap_set_json_links target)
+         target_link_libraries(${target} PRIVATE JsonCpp::JsonCpp)
+     else()
+         target_include_directories(${target} PRIVATE "${CPPDAP_JSON_DIR}/include/")
+-    endif()    
++    endif()
+ endfunction(cppdap_set_json_links)
+ 
+ function(cppdap_set_target_options target)
+@@ -247,7 +248,7 @@ write_basic_package_version_file(
+ )
+ configure_package_config_file(
+ 	${CPPDAP_CMAKE_CONFIG_TEMPLATE}
+-	"${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}" 
++	"${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
+ 	INSTALL_DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR}
+ )
+ 
+@@ -276,6 +277,8 @@ DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR})
+ 
+ # tests
+ if(CPPDAP_BUILD_TESTS)
++    enable_testing()
++
+     set(DAP_TEST_LIST
+         ${CPPDAP_SRC_DIR}/any_test.cpp
+         ${CPPDAP_SRC_DIR}/chan_test.cpp
+@@ -290,16 +293,24 @@ if(CPPDAP_BUILD_TESTS)
+         ${CPPDAP_SRC_DIR}/traits_test.cpp
+         ${CPPDAP_SRC_DIR}/typeinfo_test.cpp
+         ${CPPDAP_SRC_DIR}/variant_test.cpp
+-        ${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
+     )
+ 
+-    set(DAP_TEST_INCLUDE_DIR
+-        ${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
+-        ${CPPDAP_GOOGLETEST_DIR}/googletest/
+-        ${CPPDAP_GOOGLETEST_DIR}/googletest/include/
+-    )
++    if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
++        find_package(GTest REQUIRED)
++    else()
++        list(APPEND DAP_TEST_LIST
++            ${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
++        )
++
++        set(DAP_TEST_INCLUDE_DIR
++            ${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
++            ${CPPDAP_GOOGLETEST_DIR}/googletest/
++            ${CPPDAP_GOOGLETEST_DIR}/googletest/include/
++        )
++    endif()
+ 
+     add_executable(cppdap-unittests ${DAP_TEST_LIST})
++    add_test(NAME cppdap-unittests COMMAND cppdap-unittests)
+ 
+     target_include_directories(cppdap-unittests PUBLIC ${DAP_TEST_INCLUDE_DIR} )
+     set_target_properties(cppdap-unittests PROPERTIES
+@@ -312,7 +323,11 @@ if(CPPDAP_BUILD_TESTS)
+     endif()
+ 
+     cppdap_set_target_options(cppdap-unittests)
+-    target_link_libraries(cppdap-unittests PRIVATE cppdap)
++    if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
++        target_link_libraries(cppdap-unittests PRIVATE cppdap GTest::gtest)
++    else()
++        target_link_libraries(cppdap-unittests PRIVATE cppdap)
++    endif()
+ endif(CPPDAP_BUILD_TESTS)
+ 
+ # fuzzer

base-commit: a8353e9d6b34fd8d42d2e8f14ce844849fe9c293
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 16:44:09 GMT) Full text and rfc822 format available.

Message #11 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
To: Daniel Ziltener <dziltener <at> lyrion.ch>, 70397 <at> debbugs.gnu.org
Subject: Re: [bug#70397] [PATCH] gnu: cppdap: Add cppdap to debug.scm.
Date: Tue, 16 Apr 2024 00:42:33 +0800
[Message part 1 (text/plain, inline)]
hellow, i review this patch, and have some comment

Daniel Ziltener via Guix-patches via <guix-patches <at> gnu.org> writes:

> ---
>  gnu/packages/debug.scm | 31 +++++++++++++++++++++++++++++++

Usually our message goes something like this:

gnu: Add cppdap.
* gnu/packages/debug.scm (cppdap): New variable.

>  1 file changed, 31 insertions(+)
>
> diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
> index 6d4567acc4..7865dc32f4 100644
> --- a/gnu/packages/debug.scm
> +++ b/gnu/packages/debug.scm
> @@ -185,6 +185,37 @@ (define-public c-reduce
>  tools that process C/C++ code.")
>      (license license:ncsa)))
>  
> +(define-public cppdap
> +  (package
> +    (name "cppdap")
> +    (version "1.58.0-a")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri
> +        (git-reference
> +         (url "https://github.com/google/cppdap")
> +         (commit (string-append "dap-" version))))

usually we add (file-name (git-file-name name version)), 

and it have a "third_party" directory, we need remove it.

and see https://github.com/google/cppdap/pull/124 , it add a
CPPDAP_USE_EXTERNAL_GTEST_PACKAGE option to use system gtest. so we can
pick it.

> +       (sha256
> +        (base32
> +         "0fq2w35fw1lb5wya1nny45pk3a13b689k48calk1cmqmqpbcjn2b"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:configure-flags #~(list "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON")
> +      #:phases #~(modify-phases %standard-phases
> +                   (delete 'check))))

if no test target, please use "#:tests? #f" and add commit about it.

and it have CPPDAP_BUILD_TESTS, so we can enable it.

> +    (propagated-inputs
> +     (list nlohmann-json))

need add some commit about why propagate nlohmann-json. and need add
(gnu packages cpp) module.

> +    (home-page "https://github.com/google/cppdap")
> +    (synopsis "C++ library for the Debug Adapter Protocol")
> +    (description
> +     "cppdap is a C++11 library (\"SDK\") implementation of the Debug Adapter Protocol,
> +providing an API for implementing a DAP client or server.
> +cppdap provides C++ type-safe structures for the full DAP specification, and provides
> + a simple way to add custom protocol messages.")

It's a little over the line count

> +    (license license:expat)))
> +
>  (define-public c-vise
>    (package
>      (name "c-vise")

The end result should be similar https://issues.guix.gnu.org/70397#1
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 21:55:04 GMT) Full text and rfc822 format available.

Message #14 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Ziltener <dziltener <at> lyrion.ch>
To: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>, 70397 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add cppdap.
Date: Mon, 15 Apr 2024 23:54:14 +0200
Thank you very much! As I understand and see it, you have fixed the
commit for me, and there is nothing more to do for me?
I will make a note to myself about the correct commit message format for
the future.

Best regards,
Daniel 




Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 21:55:06 GMT) Full text and rfc822 format available.

Message #17 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Ziltener <dziltener <at> lyrion.ch>
To: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>, 70397 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add cppdap.
Date: Mon, 15 Apr 2024 23:54:28 +0200
Thank you very much! As I understand and see it, you have fixed the
commit for me, and there is nothing more to do for me?
I will make a note to myself about the correct commit message format for
the future.

Best regards,
Daniel 




Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 21:58:02 GMT) Full text and rfc822 format available.

Message #20 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Ziltener <dziltener <at> lyrion.ch>
To: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>, 70397 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add cppdap.
Date: Mon, 15 Apr 2024 23:57:03 +0200
Thank you very much! As I understand and see it, you have fixed the
commit for me, and there is nothing more to do for me?
I will make a note to myself about the correct commit message format for
the future.

Best regards,
Daniel 




Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 21:58:04 GMT) Full text and rfc822 format available.

Message #23 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Ziltener <dziltener <at> lyrion.ch>
To: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>, 70397 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add cppdap.
Date: Mon, 15 Apr 2024 23:57:36 +0200
Thank you very much! As I understand and see it, you have fixed the
commit for me, and there is nothing more to do for me?
I will make a note to myself about the correct commit message format for
the future.

Best regards,
Daniel 




Information forwarded to guix-patches <at> gnu.org:
bug#70397; Package guix-patches. (Mon, 15 Apr 2024 22:05:01 GMT) Full text and rfc822 format available.

Message #26 received at 70397 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Ziltener <dziltener <at> lyrion.ch>
To: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>, 70397 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add cppdap.
Date: Tue, 16 Apr 2024 00:04:40 +0200
Thank you very much! As I understand and see it, you have fixed the
commit for me, and there is nothing more to do for me?
I will make a note to myself about the correct commit message format for
the future.

Best regards,
Daniel 




Reply sent to Z572 <zhengjunjie <at> iscas.ac.cn>:
You have taken responsibility. (Tue, 23 Apr 2024 08:59:03 GMT) Full text and rfc822 format available.

Notification sent to Daniel Ziltener <dziltener <at> lyrion.ch>:
bug acknowledged by developer. (Tue, 23 Apr 2024 08:59:03 GMT) Full text and rfc822 format available.

Message #31 received at 70397-done <at> debbugs.gnu.org (full text, mbox):

From: Z572 <zhengjunjie <at> iscas.ac.cn>
To: 70397-done <at> debbugs.gnu.org
Cc: Daniel Ziltener <dziltener <at> lyrion.ch>
Subject: Re: [bug#70397] [PATCH] gnu: Add cppdap.
Date: Tue, 23 Apr 2024 16:57:58 +0800
[Message part 1 (text/plain, inline)]
Zheng Junjie <zhengjunjie <at> iscas.ac.cn> writes:

> From: Daniel Ziltener <dziltener <at> lyrion.ch>
>
> * gnu/packages/debug.scm (cppdap): New variable.
> * gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch: New
> patch.
> * gnu/local.mk (dist_patch_DATA): Register it.
>
> Signed-off-by: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
> Change-Id: I328ca0c01787defcc9d18f4ccd7762c86412cca7
> ---
>  gnu/local.mk                                  |   1 +
>  gnu/packages/debug.scm                        |  50 +++++++++
>  ...dd-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch | 101 ++++++++++++++++++
>  3 files changed, 152 insertions(+)
>  create mode 100644 gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 64efee901f..a8cc5de803 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -1078,6 +1078,7 @@ dist_patch_DATA =						\
>    %D%/packages/patches/cool-retro-term-wctype.patch		\
>    %D%/packages/patches/coreutils-gnulib-tests.patch		\
>    %D%/packages/patches/cppcheck-disable-char-signedness-test.patch	\
> +  %D%/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch\
>    %D%/packages/patches/cpuinfo-system-libraries.patch		\
>    %D%/packages/patches/cpulimit-with-glib-2.32.patch		\
>    %D%/packages/patches/crawl-upgrade-saves.patch		\
> diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
> index 6d4567acc4..7a7eafddab 100644
> --- a/gnu/packages/debug.scm
> +++ b/gnu/packages/debug.scm
> @@ -46,6 +46,7 @@ (define-module (gnu packages debug)
>    #:use-module (gnu packages bash)
>    #:use-module (gnu packages bison)
>    #:use-module (gnu packages c)
> +  #:use-module (gnu packages cpp)
>    #:use-module (gnu packages check)
>    #:use-module (gnu packages code)
>    #:use-module (gnu packages compression)
> @@ -185,6 +186,55 @@ (define-public c-reduce
>  tools that process C/C++ code.")
>      (license license:ncsa)))
>  
> +(define-public cppdap
> +  (package
> +    (name "cppdap")
> +    (version "1.58.0-a")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri
> +        (git-reference
> +         (url "https://github.com/google/cppdap")
> +         (commit (string-append "dap-" version))))
> +       (modules '((guix build utils)))
> +       (snippet
> +        '(delete-file-recursively "third_party"))
> +       (patches (search-patches
> +                 "cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch"))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32
> +         "0fq2w35fw1lb5wya1nny45pk3a13b689k48calk1cmqmqpbcjn2b"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:configure-flags
> +      #~(list
> +         "-DCPPDAP_BUILD_TESTS=ON"
> +         "-DCPPDAP_USE_EXTERNAL_GTEST_PACKAGE=ON"
> +         ;; Only one of the following three can be enabled at the same time
> +         ;; "-DCPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE=ON"
> +         ;; "-DCPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE=ON"
> +         "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON")))
> +    (native-inputs
> +     (list googletest))
> +    ;; see lib/cmake/cppdap/cppdapConfig.cmake
> +    (propagated-inputs
> +     (list
> +      ;; Only one of the following three can be enabled at the same time
> +      ;; rapidjson
> +      ;; jsoncpp
> +      nlohmann-json))
> +    (home-page "https://github.com/google/cppdap")
> +    (synopsis "C++ library for the Debug Adapter Protocol")
> +    (description
> +     "cppdap is a C++11 library (\"SDK\") implementation of the Debug Adapter
> +Protocol, providing an API for implementing a DAP client or server.  cppdap
> +provides C++ type-safe structures for the full DAP specification, and provides a
> +simple way to add custom protocol messages.")
> +    (license license:expat)))
> +
>  (define-public c-vise
>    (package
>      (name "c-vise")
> diff --git a/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
> new file mode 100644
> index 0000000000..62df0634ce
> --- /dev/null
> +++ b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
> @@ -0,0 +1,101 @@
> +From 40d9eaf3b6eca2ab8d5558e8935d56a75bd97183 Mon Sep 17 00:00:00 2001
> +From: topazus <topazus <at> outlook.com>
> +Date: Wed, 27 Dec 2023 19:56:49 +0800
> +Subject: [PATCH] CMake: add CPPDAP_USE_EXTERNAL_GTEST_PACKAGE option
> +
> +---
> + CMakeLists.txt | 35 +++++++++++++++++++++++++----------
> + 1 file changed, 25 insertions(+), 10 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 1b3c321..7292f3c 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -40,6 +40,7 @@ option_if_not_defined(CPPDAP_INSTALL_VSCODE_EXAMPLES "Build and install dap exam
> + option_if_not_defined(CPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE "Use nlohmann_json with find_package() instead of building internal submodule" OFF)
> + option_if_not_defined(CPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE "Use RapidJSON with find_package()" OFF)
> + option_if_not_defined(CPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE "Use JsonCpp with find_package()" OFF)
> ++option_if_not_defined(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE "Use googletest with find_package()" OFF)
> + 
> + ###########################################################
> + # Directories
> +@@ -59,7 +60,7 @@ set_if_not_defined(CPPDAP_GOOGLETEST_DIR  ${CPPDAP_THIRD_PARTY_DIR}/googletest)
> + ###########################################################
> + # Submodules
> + ###########################################################
> +-if(CPPDAP_BUILD_TESTS)
> ++if(CPPDAP_BUILD_TESTS AND NOT CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
> +     if(NOT EXISTS ${CPPDAP_GOOGLETEST_DIR}/.git)
> +         message(WARNING "third_party/googletest submodule missing.")
> +         message(WARNING "Run: `git submodule update --init` to build tests.")
> +@@ -161,7 +162,7 @@ function(cppdap_set_json_links target)
> +         target_link_libraries(${target} PRIVATE JsonCpp::JsonCpp)
> +     else()
> +         target_include_directories(${target} PRIVATE "${CPPDAP_JSON_DIR}/include/")
> +-    endif()    
> ++    endif()
> + endfunction(cppdap_set_json_links)
> + 
> + function(cppdap_set_target_options target)
> +@@ -247,7 +248,7 @@ write_basic_package_version_file(
> + )
> + configure_package_config_file(
> + 	${CPPDAP_CMAKE_CONFIG_TEMPLATE}
> +-	"${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}" 
> ++	"${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
> + 	INSTALL_DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR}
> + )
> + 
> +@@ -276,6 +277,8 @@ DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR})
> + 
> + # tests
> + if(CPPDAP_BUILD_TESTS)
> ++    enable_testing()
> ++
> +     set(DAP_TEST_LIST
> +         ${CPPDAP_SRC_DIR}/any_test.cpp
> +         ${CPPDAP_SRC_DIR}/chan_test.cpp
> +@@ -290,16 +293,24 @@ if(CPPDAP_BUILD_TESTS)
> +         ${CPPDAP_SRC_DIR}/traits_test.cpp
> +         ${CPPDAP_SRC_DIR}/typeinfo_test.cpp
> +         ${CPPDAP_SRC_DIR}/variant_test.cpp
> +-        ${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
> +     )
> + 
> +-    set(DAP_TEST_INCLUDE_DIR
> +-        ${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
> +-        ${CPPDAP_GOOGLETEST_DIR}/googletest/
> +-        ${CPPDAP_GOOGLETEST_DIR}/googletest/include/
> +-    )
> ++    if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
> ++        find_package(GTest REQUIRED)
> ++    else()
> ++        list(APPEND DAP_TEST_LIST
> ++            ${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
> ++        )
> ++
> ++        set(DAP_TEST_INCLUDE_DIR
> ++            ${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
> ++            ${CPPDAP_GOOGLETEST_DIR}/googletest/
> ++            ${CPPDAP_GOOGLETEST_DIR}/googletest/include/
> ++        )
> ++    endif()
> + 
> +     add_executable(cppdap-unittests ${DAP_TEST_LIST})
> ++    add_test(NAME cppdap-unittests COMMAND cppdap-unittests)
> + 
> +     target_include_directories(cppdap-unittests PUBLIC ${DAP_TEST_INCLUDE_DIR} )
> +     set_target_properties(cppdap-unittests PROPERTIES
> +@@ -312,7 +323,11 @@ if(CPPDAP_BUILD_TESTS)
> +     endif()
> + 
> +     cppdap_set_target_options(cppdap-unittests)
> +-    target_link_libraries(cppdap-unittests PRIVATE cppdap)
> ++    if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
> ++        target_link_libraries(cppdap-unittests PRIVATE cppdap GTest::gtest)
> ++    else()
> ++        target_link_libraries(cppdap-unittests PRIVATE cppdap)
> ++    endif()
> + endif(CPPDAP_BUILD_TESTS)
> + 
> + # fuzzer
>
> base-commit: a8353e9d6b34fd8d42d2e8f14ce844849fe9c293

push. see https://git.savannah.gnu.org/cgit/guix.git/commit/?id=2d19e505f6f9f82aebc9ba8c74ba223818acd9bc 
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 21 May 2024 11:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 85 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.