GNU bug report logs -
#18926
cmake-build-system should set CMAKE_INSTALL_LIBDIR and CMAKE_PREFIX_PATH
Previous Next
Reported by: 宋文武 <iyzsong <at> gmail.com>
Date: Sun, 2 Nov 2014 16:58:01 UTC
Severity: normal
Done: Andreas Enge <andreas <at> enge.fr>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 18926 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
宋文武 <iyzsong <at> gmail.com> skribis:
> if CMAKE_INSTALL_LIBDIR not set to `lib`, GNUInstallDirs.cmake will install
> libraries files to $out/lib64.
I found several CMake-built libraries on x86_64 (graphite2, openjpeg,
qjson) that all use lib/, not lib64/.
Then I found one counterexample, libftdi; however, setting
CMAKE_INSTALL_LIBDIR=lib doesn’t make any different: it still installs
libraries in $out/lib64. Any idea?
Here’s the patch I tried:
[Message part 2 (text/x-patch, inline)]
diff --git a/guix/build/cmake-build-system.scm b/guix/build/cmake-build-system.scm
index 74b4f01..b1598dd 100644
--- a/guix/build/cmake-build-system.scm
+++ b/guix/build/cmake-build-system.scm
@@ -53,6 +53,8 @@
build-type))
'())
,(string-append "-DCMAKE_INSTALL_PREFIX=" out)
+ ;; Install libraries to $prefix/lib, not $prefix/lib64.
+ "-DCMAKE_INSTALL_LIBDIR=lib"
;; add input libraries to rpath
"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
;; add (other) libraries of the project itself to rpath
[Message part 3 (text/plain, inline)]
According to <http://www.cmake.org/Wiki/CMake_Useful_Variables>,
LIBRARY_OUTPUT_PATH might be better for this, no?
> if CMAKE_PREFIX_PATH not set to PATH of `inputs`, cmake will unable to
> find cmake modules of inputs.
You’re talking about .cmake files, right?
Could you try the attached patch and report back?
[0001-gnu-cmake-Add-search-paths-for-CMAKE_-INCLUDE-LIBRAR.patch (text/x-patch, inline)]
From 536c143997fa146dc77d6e8defc24032452e5a4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo <at> gnu.org>
Date: Sun, 2 Nov 2014 23:54:28 +0100
Subject: [PATCH] gnu: cmake: Add search paths for
CMAKE_{INCLUDE,LIBRARY,MODULE}_PATH.
* gnu/packages/cmake.scm (cmake)[native-search-paths]: New field.
* guix/build/cmake-build-system.scm (configure): Remove 'setenv' calls
for "CMAKE_LIBRARY_PATH" and "CMAKE_INCLUDE_PATH".
---
gnu/packages/cmake.scm | 19 +++++++++++++++++++
guix/build/cmake-build-system.scm | 2 --
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 63805ef..e0349be 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -100,6 +100,25 @@
("expat" ,expat)
("bzip2" ,bzip2)
("libarchive" ,libarchive)))
+
+ (native-search-paths
+ (list
+ ;; Search path used by the 'FIND_XXX' functions.
+ (search-path-specification
+ (variable "CMAKE_PROGRAM_PATH")
+ (directories '("bin")))
+ (search-path-specification
+ (variable "CMAKE_INCLUDE_PATH")
+ (directories '("include")))
+ (search-path-specification
+ (variable "CMAKE_LIBRARY_PATH")
+ (directories '("lib" "lib64")))
+
+ ;; Search path used by 'FIND_PACKAGE' and 'INCLUDE'.
+ (search-path-specification
+ (variable "CMAKE_MODULE_PATH")
+ (directories '("lib/cmake")))))
+
(home-page "http://www.cmake.org/")
(synopsis "Cross-platform build system")
(description
diff --git a/guix/build/cmake-build-system.scm b/guix/build/cmake-build-system.scm
index b1598dd..766797e 100644
--- a/guix/build/cmake-build-system.scm
+++ b/guix/build/cmake-build-system.scm
@@ -60,8 +60,6 @@
;; add (other) libraries of the project itself to rpath
,(string-append "-DCMAKE_INSTALL_RPATH=" out "/lib")
,@configure-flags)))
- (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
- (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))
(format #t "running 'cmake' with arguments ~s~%" args)
(zero? (apply system* "cmake" args)))))
--
2.1.2
[Message part 5 (text/plain, inline)]
> I find this when packaging https://github.com/lxdg/libqtxdg.
It’s 404.
Thanks,
Ludo’.
This bug report was last modified 10 years and 149 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.