gnu: Add cpp-httplib.
* gnu/packages/cpp.scm (cpp-httplib): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
		
							parent
							
								
									49bb544b77
								
							
						
					
					
						commit
						ed4dd53b1e
					
				
					 1 changed files with 62 additions and 1 deletions
				
			
		|  | @ -18,7 +18,7 @@ | ||||||
| ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> | ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> | ||||||
| ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> | ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> | ||||||
| ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> | ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> | ||||||
| 
 | ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -66,6 +66,7 @@ | ||||||
|   #:use-module (gnu packages maths) |   #:use-module (gnu packages maths) | ||||||
|   #:use-module (gnu packages onc-rpc) |   #:use-module (gnu packages onc-rpc) | ||||||
|   #:use-module (gnu packages perl) |   #:use-module (gnu packages perl) | ||||||
|  |   #:use-module (gnu packages python) | ||||||
|   #:use-module (gnu packages pkg-config) |   #:use-module (gnu packages pkg-config) | ||||||
|   #:use-module (gnu packages popt) |   #:use-module (gnu packages popt) | ||||||
|   #:use-module (gnu packages pretty-print) |   #:use-module (gnu packages pretty-print) | ||||||
|  | @ -556,6 +557,66 @@ tools: | ||||||
| @end itemize\n") | @end itemize\n") | ||||||
|     (license license:bsd-3))) |     (license license:bsd-3))) | ||||||
| 
 | 
 | ||||||
|  | (define-public cpp-httplib | ||||||
|  |   ;; this package is not graftable, as everything is implemented in a single | ||||||
|  |   ;; header | ||||||
|  |   (package | ||||||
|  |     (name "cpp-httplib") | ||||||
|  |     (version "0.8.8") | ||||||
|  |     (source | ||||||
|  |      (origin | ||||||
|  |        (method git-fetch) | ||||||
|  |        (uri (git-reference | ||||||
|  |              (url "https://github.com/yhirose/cpp-httplib") | ||||||
|  |              (commit (string-append "v" version)))) | ||||||
|  |        (sha256 | ||||||
|  |         (base32 "0c0gyfbvm34bgrqy9fhfxw1f8nb9zhf063j7xq91k892flb7qm1c")) | ||||||
|  |        (file-name (git-file-name name version)))) | ||||||
|  |     (build-system cmake-build-system) | ||||||
|  |     (arguments | ||||||
|  |      `(#:configure-flags | ||||||
|  |        '("-DBUILD_SHARED_LIBS=ON" | ||||||
|  |          "-DHTTPLIB_COMPILE=ON" | ||||||
|  |          "-DHTTPLIB_REQUIRE_BROTLI=ON" | ||||||
|  |          "-DHTTPLIB_REQUIRE_OPENSSL=ON" | ||||||
|  |          "-DHTTPLIB_REQUIRE_ZLIB=ON") | ||||||
|  |        #:phases | ||||||
|  |        (modify-phases %standard-phases | ||||||
|  |          (add-after 'unpack 'disable-network-tests | ||||||
|  |            (lambda _ | ||||||
|  |              (for-each | ||||||
|  |               (lambda (test) | ||||||
|  |                 (substitute* "test/test.cc" | ||||||
|  |                   (((string-append "\\(" test)) | ||||||
|  |                    (string-append "(DISABLED_" test)))) | ||||||
|  |               ;; There are tests requiring network access, disable them | ||||||
|  |               '("AbsoluteRedirectTest" "BaseAuthTest" "CancelTest" | ||||||
|  |                 "ChunkedEncodingTest" "ChunkedEncodingTest" | ||||||
|  |                 "DecodeWithChunkedEncoding" "DefaultHeadersTest" | ||||||
|  |                 "DigestAuthTest" "HttpsToHttpRedirectTest" | ||||||
|  |                 "RangeTest" "RedirectTest" "RelativeRedirectTest" | ||||||
|  |                 "SSLClientTest" "SendAPI" "TooManyRedirectTest" "UrlWithSpace" | ||||||
|  |                 "YahooRedirectTest" "YahooRedirectTest")))) | ||||||
|  |          (replace 'check | ||||||
|  |            (lambda* (#:key source tests? #:allow-other-keys) | ||||||
|  |              ;; openssl genrsa wants to write a file in the git checkout | ||||||
|  |              (when tests? | ||||||
|  |                (with-directory-excursion "../source/test" | ||||||
|  |                  (invoke "make")))))))) | ||||||
|  |     (native-inputs | ||||||
|  |      ;; required to build shared lib | ||||||
|  |      `(("python" ,python))) | ||||||
|  |     (inputs | ||||||
|  |      `(("brotli" ,brotli) | ||||||
|  |        ("openssl" ,openssl) | ||||||
|  |        ("zlib" ,zlib))) | ||||||
|  |     (home-page "https://github.com/yhirose/cpp-httplib") | ||||||
|  |     (synopsis "C++ HTTP/HTTPS server and client library") | ||||||
|  |     (description "cpp-httplib is a C++11 single-file cross platform blocking | ||||||
|  | HTTP/HTTPS library, easy to setup.  It can also be used as a single-header | ||||||
|  | library.") | ||||||
|  |     (license license:expat))) | ||||||
|  | 
 | ||||||
| (define-public cpplint | (define-public cpplint | ||||||
|   (package |   (package | ||||||
|     (name "cpplint") |     (name "cpplint") | ||||||
|  |  | ||||||
		Reference in a new issue