mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-11 13:49:23 -05:00
gnu: Add cppdap.
* 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@iscas.ac.cn> Change-Id: I328ca0c01787defcc9d18f4ccd7762c86412cca7 Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn>
This commit is contained in:
parent
837016fe33
commit
2d19e505f6
3 changed files with 155 additions and 0 deletions
|
@ -1075,6 +1075,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 \
|
||||
|
|
|
@ -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,56 @@ (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
|
||||
;; cmake file require propagate this.
|
||||
(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")
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
from https://github.com/google/cppdap/pull/124
|
||||
|
||||
From 40d9eaf3b6eca2ab8d5558e8935d56a75bd97183 Mon Sep 17 00:00:00 2001
|
||||
From: topazus <topazus@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
|
Loading…
Reference in a new issue