New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Bug 1100 - CMAKE_INSTALL_PREFIX used incorrectly
Summary: CMAKE_INSTALL_PREFIX used incorrectly
Status: RESOLVED FIXED
Alias: None
Product: Eigen
Classification: Unclassified
Component: General (show other bugs)
Version: 3.2
Hardware: All All
: Normal Compilation Problem
Assignee: Nobody
URL:
Whiteboard:
Keywords:
: 1072 1114 (view as bug list)
Depends on:
Blocks: 3.3 711
  Show dependency treegraph
 
Reported: 2015-10-29 21:47 UTC by Taylor Braun-Jones
Modified: 2015-12-10 15:18 UTC (History)
6 users (show)



Attachments
Fix CMAKE_INSTALL_PREFIX missing from generated eigen3.pc (425 bytes, patch)
2015-11-06 14:47 UTC, Taylor Braun-Jones
no flags Details | Diff
Fix CMAKE_INSTALL_PREFIX missing from generated eigen3.pc (959 bytes, patch)
2015-11-07 02:13 UTC, Taylor Braun-Jones
no flags Details | Diff

Description Taylor Braun-Jones 2015-10-29 21:47:11 UTC
The DESTINATION provided to the `install` command should not be prefixed with ${CMAKE_INSTALL_PREFIX} - it breaks things like CMAKE_STAGING_PREFIX (and probably other use cases as well). From `cmake --help-command install`:

       DESTINATION arguments specify the directory on disk to which a file
       will be installed.  If a full path (with a leading slash or drive
       letter) is given it is used directly.  If a relative path is given it
       is interpreted relative to the value of CMAKE_INSTALL_PREFIX.  The
       prefix can be relocated at install time using DESTDIR mechanism
       explained in the CMAKE_INSTALL_PREFIX variable documentation.

So, for example, instead of:

  set(INCLUDE_INSTALL_DIR
    "${CMAKE_INSTALL_PREFIX}/include/eigen3"
    CACHE INTERNAL
    "The directory where we install the header files (internal)"
  )

It should simply be:

  set(INCLUDE_INSTALL_DIR
    "include/eigen3"
    CACHE INTERNAL
    "The directory where we install the header files (internal)"
  )
Comment 1 Gael Guennebaud 2015-10-30 14:16:15 UTC
Thank you for the hint, fixed in devel and 3.2 branches:
https://bitbucket.org/eigen/eigen/commits/d26ebad
https://bitbucket.org/eigen/eigen/commits/1f02e55
Comment 2 Sandro Mani 2015-11-06 14:25:50 UTC
This unfortunately breaks the eigen3.pc file, which now has

Cflags: -Iinclude/eigen3 

instead of

Cflags: -I/usr/include/eigen3
Comment 3 Taylor Braun-Jones 2015-11-06 14:47:36 UTC
Created attachment 622 [details]
Fix CMAKE_INSTALL_PREFIX missing from generated eigen3.pc
Comment 4 Taylor Braun-Jones 2015-11-06 14:49:22 UTC
The attached patch follows the convention described at the bottom of this page:

https://autotools.io/pkgconfig/file-format.html
Comment 5 Sandro Mani 2015-11-06 19:51:16 UTC
That patch won't work because ${prefix} will be replaced by an empty string when cmake configures the file, since it thinks that its a variable which it should replace.
Comment 6 Taylor Braun-Jones 2015-11-07 02:13:22 UTC
Created attachment 623 [details]
Fix CMAKE_INSTALL_PREFIX missing from generated eigen3.pc

Whoops, you're right. This updated patch fixes that -- and has actually be tested this time :-)
Comment 7 Sandro Mani 2015-11-07 11:37:47 UTC
Thanks
Comment 8 Taylor Braun-Jones 2015-11-08 02:36:00 UTC
Actually, the eigen3.pc wasn't the only thing that broke. Here's a more complete patch to fix the CMAKE_INSTALL_PREFIX correctness in Eigen:

https://bitbucket.org/eigen/eigen/pull-requests/143/
Comment 9 Taylor Braun-Jones 2015-11-08 04:13:14 UTC
Updated pull request:

https://bitbucket.org/eigen/eigen/pull-requests/144/
Comment 10 Gael Guennebaud 2015-12-10 14:50:07 UTC
*** Bug 1114 has been marked as a duplicate of this bug. ***
Comment 11 Gael Guennebaud 2015-12-10 14:51:01 UTC
Thank you for the updated PR.

devel: https://bitbucket.org/eigen/eigen/commits/1db6cf71f628/
3.2: https://bitbucket.org/eigen/eigen/commits/35a341924dae/
Comment 12 Gael Guennebaud 2015-12-10 15:18:44 UTC
*** Bug 1072 has been marked as a duplicate of this bug. ***

Note You need to log in before you can comment on or make changes to this bug.