aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorGreg Hogan <code@greghogan.com>2021-11-03 15:20:51 +0000
committerLudovic Courtès <ludo@gnu.org>2022-02-08 13:34:01 +0100
commit4469990f2e4b300781c93dfd41a82c41611842e3 (patch)
tree329efc8829cfe1c5eb420656f0867bf5016a73ec /gnu
parent6207da50e2fe919b36b40bf9aac6e6f1e60401a8 (diff)
downloadguix-4469990f2e4b300781c93dfd41a82c41611842e3.tar.gz
guix-4469990f2e4b300781c93dfd41a82c41611842e3.zip
gnu: Add bloomberg-bde-tools.
* gnu/packages/cpp.scm (bloomberg-bde-tools): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/cpp.scm30
-rw-r--r--gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch95
3 files changed, 125 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 2a2fbf79d4..82c08cfa02 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -912,6 +912,7 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-CVE-2021-45078.patch \
+ %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 3c68cd86a0..3bc77ff017 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
-;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2020-2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
@@ -48,6 +48,7 @@
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix modules)
@@ -1585,3 +1586,30 @@ microparallel algorithms to implement a strict JSON parser with UTF-8
validation.")
(home-page "https://github.com/simdjson/simdjson")
(license license:asl2.0)))
+
+(define-public bloomberg-bde-tools
+ (let ((commit "094885bd177e0159232d4e6a060a04edb1edd786"))
+ (package
+ (name "bloomberg-bde-tools")
+ ;; Recent releases are not tagged so commit must be used for checkout.
+ (version "3.97.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bloomberg/bde-tools")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0mbbai73z8amh23ah3wy35kmy612380yr5wg89mic60qwqmpqb02"))
+ (patches
+ (search-patches
+ "bloomberg-bde-tools-fix-install-path.patch"))))
+ (build-system copy-build-system)
+ ;; Unable to be an inline dependency of bloomberg-bde due to patch.
+ (properties '((hidden? . #t)))
+ (synopsis "Tools for developing and building libraries modeled on BDE")
+ (description
+ "This package provides the cmake imports needed to build bloomberg-bde.")
+ (home-page "https://github.com/bloomberg/bde-tools")
+ (license license:asl2.0))))
diff --git a/gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch b/gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch
new file mode 100644
index 0000000000..a80c6c3ea3
--- /dev/null
+++ b/gnu/packages/patches/bloomberg-bde-tools-fix-install-path.patch
@@ -0,0 +1,95 @@
+Install shared libraries into "lib". Do not create symbolic links to static
+libraries since only shared libraries are built.
+
+--- a/cmake/layers/ufid.cmake
++++ b/cmake/layers/ufid.cmake
+@@ -6,10 +6,7 @@ bde_prefixed_override(ufid project_setup_install_opts)
+ function(ufid_project_setup_install_opts proj)
+ bde_assert_no_extra_args()
+
+- set(libPath "bin/so")
+- if (${bde_ufid_is_64})
+- string(APPEND libPath "/64")
+- endif()
++ set(libPath "lib")
+
+ bde_struct_create(
+ installOpts
+@@ -86,13 +83,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-symlinks"
+- )
+-
+ # This code creates compatibility symlinks
+ # WARNING: This is custom logic that has nothing to do with our build system.
+ # Some external build systems expect to find a variaty of ufids in dpkg.
+@@ -110,14 +100,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ symlinkFile
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+-
+- # IMPORTANT: symlinkFile is the same as above!
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-symlinks"
+- )
+ endif()
+
+ if (${bde_ufid_is_pic})
+@@ -134,14 +116,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+
+- # IMPORTANT: symlinkFile is the same as above!
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-pic-symlink-hack"
+- )
+-
+ # And another one for "64" - remove "pic", add "64"
+ if (${bde_ufid_is_64})
+ set(temp_ufid_flags ${install_ufid_flags})
+@@ -157,14 +131,6 @@ function(bde_create_ufid_symlink uor installOpts)
+ symlinkFile
+ "${symlinkPrefix}/${symlinkDir}/${libLinkName}"
+ )
+-
+- # IMPORTANT: symlinkFile is the same as above!
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkFile})"
+- COMPONENT "${component}-pic-symlink-hack"
+- )
+ endif()
+ endif()
+
+@@ -177,18 +143,5 @@ function(bde_create_ufid_symlink uor installOpts)
+ symlinkReleaseFile
+ "${symlinkPrefix}/${symlinkDir}/${libReleaseLinkName}"
+ )
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkReleaseFile})"
+- COMPONENT "${component}-release-symlink"
+- )
+- install(
+- CODE
+- "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- ${symlinkVal} ${symlinkReleaseFile})"
+- COMPONENT "release-symlink"
+- EXCLUDE_FROM_ALL
+- )
+ endif()
+ endfunction()