From: ludo@gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong@gmail.com>
Cc: 18926@debbugs.gnu.org
Subject: bug#18926: cmake-build-system should set CMAKE_INSTALL_LIBDIR and CMAKE_PREFIX_PATH
Date: Sun, 02 Nov 2014 23:55:49 +0100 [thread overview]
Message-ID: <87d295i556.fsf@gnu.org> (raw)
In-Reply-To: <877fzdu45q.fsf@gmail.com> ("宋文武"'s message of "Sun, 02 Nov 2014 21:24:01 +0800")
[-- Attachment #1: Type: text/plain, Size: 473 bytes --]
宋文武 <iyzsong@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:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 677 bytes --]
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
[-- Attachment #3: Type: text/plain, Size: 330 bytes --]
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?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: the patch --]
[-- Type: text/x-patch, Size: 2212 bytes --]
From 536c143997fa146dc77d6e8defc24032452e5a4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@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
[-- Attachment #5: Type: text/plain, Size: 102 bytes --]
> I find this when packaging https://github.com/lxdg/libqtxdg.
It’s 404.
Thanks,
Ludo’.
next prev parent reply other threads:[~2014-11-02 22:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-02 13:24 bug#18926: cmake-build-system should set CMAKE_INSTALL_LIBDIR and CMAKE_PREFIX_PATH 宋文武
2014-11-02 22:55 ` Ludovic Courtès [this message]
2014-11-03 13:44 ` 宋文武
2014-11-03 16:53 ` Ludovic Courtès
2014-11-04 12:42 ` 宋文武
2015-01-04 17:06 ` Ludovic Courtès
2015-02-08 18:14 ` Ludovic Courtès
2015-03-01 9:58 ` Andreas Enge
2015-03-01 14:35 ` Ludovic Courtès
2015-03-01 20:11 ` Andreas Enge
2015-03-14 15:11 ` Andreas Enge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d295i556.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=18926@debbugs.gnu.org \
--cc=iyzsong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.