Further fixes for CMAKE_INSTALL_PREFIX correctness
And other related cmake cleanup, including:
- Use CMAKE_CURRENT_LIST_DIR to find UseEigen3.cmake
- Use INSTALL_DIR term consistently for variable names
- Drop unnecessary extra EIGEN_INCLUDE_INSTALL_DIR
- Fix some paths in generated eigen3.pc and Eigen3Config.cmake files
    missing CMAKE_INSTALL_PREFIX
- Fix pkgconfig directory choice ignored if it doesn't exist at configure
    time (bug #711)
			
			
This commit is contained in:
		
							parent
							
								
									0f20aa3073
								
							
						
					
					
						commit
						0b18ffe175
					
				| @ -1,6 +1,5 @@ | ||||
| project(Eigen) | ||||
| 
 | ||||
| cmake_minimum_required(VERSION 2.8.2) | ||||
| cmake_minimum_required(VERSION 2.8.5) | ||||
| 
 | ||||
| # guard against in-source builds | ||||
| 
 | ||||
| @ -55,6 +54,7 @@ endif(EIGEN_HG_CHANGESET) | ||||
| 
 | ||||
| 
 | ||||
| include(CheckCXXCompilerFlag) | ||||
| include(GNUInstallDirs) | ||||
| 
 | ||||
| set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) | ||||
| 
 | ||||
| @ -288,25 +288,26 @@ option(EIGEN_TEST_C++0x "Enables all C++0x features." OFF) | ||||
| 
 | ||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) | ||||
| 
 | ||||
| # the user modifiable install path for header files | ||||
| set(EIGEN_INCLUDE_INSTALL_DIR ${EIGEN_INCLUDE_INSTALL_DIR} CACHE PATH "The directory where we install the header files (optional)") | ||||
| 
 | ||||
| # set the internal install path for header files which depends on wether the user modifiable | ||||
| # EIGEN_INCLUDE_INSTALL_DIR has been set by the user or not. | ||||
| if(EIGEN_INCLUDE_INSTALL_DIR) | ||||
|   set(INCLUDE_INSTALL_DIR | ||||
|     ${EIGEN_INCLUDE_INSTALL_DIR} | ||||
|     CACHE INTERNAL | ||||
|     "The directory where we install the header files (internal)" | ||||
|   ) | ||||
| # Backward compatibility support for EIGEN_INCLUDE_INSTALL_DIR | ||||
| if(EIGEN_INCLUDE_INSTALL_DIR AND NOT INCLUDE_INSTALL_DIR) | ||||
|   set(INCLUDE_INSTALL_DIR ${EIGEN_INCLUDE_INSTALL_DIR} | ||||
|       CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen header files are installed") | ||||
| else() | ||||
|   set(INCLUDE_INSTALL_DIR | ||||
|     "include/eigen3" | ||||
|     CACHE INTERNAL | ||||
|     "The directory where we install the header files (internal)" | ||||
|   ) | ||||
|       "${CMAKE_INSTALL_INCLUDEDIR}/eigen3" | ||||
|       CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen header files are installed" | ||||
|       ) | ||||
| endif() | ||||
| 
 | ||||
| set(CMAKEPACKAGE_INSTALL_DIR | ||||
|     "${CMAKE_INSTALL_LIBDIR}/cmake/eigen3" | ||||
|     CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen3Config.cmake is installed" | ||||
|     ) | ||||
| set(PKGCONFIG_INSTALL_DIR | ||||
|     "${CMAKE_INSTALL_DATADIR}/pkgconfig" | ||||
|     CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where eigen3.pc is installed" | ||||
|     ) | ||||
| 
 | ||||
| # similar to set_target_properties but append the property instead of overwriting it | ||||
| macro(ei_add_target_property target prop value) | ||||
| 
 | ||||
| @ -324,21 +325,9 @@ install(FILES | ||||
|   ) | ||||
| 
 | ||||
| if(EIGEN_BUILD_PKGCONFIG) | ||||
|     SET(path_separator ":") | ||||
|     STRING(REPLACE ${path_separator} ";" pkg_config_libdir_search "$ENV{PKG_CONFIG_LIBDIR}") | ||||
|     message(STATUS "searching for 'pkgconfig' directory in PKG_CONFIG_LIBDIR ( $ENV{PKG_CONFIG_LIBDIR} ), ${CMAKE_INSTALL_PREFIX}/share, and ${CMAKE_INSTALL_PREFIX}/lib") | ||||
|     FIND_PATH(pkg_config_libdir pkgconfig ${pkg_config_libdir_search} ${CMAKE_INSTALL_PREFIX}/share ${CMAKE_INSTALL_PREFIX}/lib ${pkg_config_libdir_search}) | ||||
|     if(pkg_config_libdir) | ||||
|         SET(pkg_config_install_dir ${pkg_config_libdir}) | ||||
|         message(STATUS "found ${pkg_config_libdir}/pkgconfig" ) | ||||
|     else(pkg_config_libdir) | ||||
|         SET(pkg_config_install_dir ${CMAKE_INSTALL_PREFIX}/share) | ||||
|         message(STATUS "pkgconfig not found; installing in ${pkg_config_install_dir}" ) | ||||
|     endif(pkg_config_libdir) | ||||
| 
 | ||||
|     configure_file(eigen3.pc.in eigen3.pc) | ||||
|     configure_file(eigen3.pc.in eigen3.pc @ONLY) | ||||
|     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigen3.pc | ||||
|         DESTINATION ${pkg_config_install_dir}/pkgconfig | ||||
|         DESTINATION ${PKGCONFIG_INSTALL_DIR} | ||||
|         ) | ||||
| endif(EIGEN_BUILD_PKGCONFIG) | ||||
| 
 | ||||
| @ -401,12 +390,15 @@ if(cmake_generator_tolower MATCHES "makefile") | ||||
|   message(STATUS "--------------+--------------------------------------------------------------") | ||||
|   message(STATUS "Command       |   Description") | ||||
|   message(STATUS "--------------+--------------------------------------------------------------") | ||||
|   message(STATUS "make install  | Install to ${CMAKE_INSTALL_PREFIX}. To change that:") | ||||
|   message(STATUS "              |     cmake . -DCMAKE_INSTALL_PREFIX=yourpath") | ||||
|   message(STATUS "              |   Eigen headers will then be installed to:") | ||||
|   message(STATUS "              |     ${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}") | ||||
|   message(STATUS "              |   To install Eigen headers to a separate location, do:") | ||||
|   message(STATUS "              |     cmake . -DEIGEN_INCLUDE_INSTALL_DIR=yourpath") | ||||
|   message(STATUS "make install  | Install Eigen. Headers will be installed to:") | ||||
|   message(STATUS "              |     <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>") | ||||
|   message(STATUS "              |   Using the following values:") | ||||
|   message(STATUS "              |     CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") | ||||
|   message(STATUS "              |     INCLUDE_INSTALL_DIR:  ${INCLUDE_INSTALL_DIR}") | ||||
|   message(STATUS "              |   Change the install location of Eigen headers using:") | ||||
|   message(STATUS "              |     cmake . -DCMAKE_INSTALL_PREFIX=yourprefix") | ||||
|   message(STATUS "              |   Or:") | ||||
|   message(STATUS "              |     cmake . -DINCLUDE_INSTALL_DIR=yourdir") | ||||
|   message(STATUS "make doc      | Generate the API documentation, requires Doxygen & LaTeX") | ||||
|   message(STATUS "make check    | Build and run the unit-tests. Read this page:") | ||||
|   message(STATUS "              |   http://eigen.tuxfamily.org/index.php?title=Tests") | ||||
|  | ||||
| @ -1,6 +1,9 @@ | ||||
| prefix=@CMAKE_INSTALL_PREFIX@ | ||||
| exec_prefix=${prefix} | ||||
| 
 | ||||
| Name: Eigen3 | ||||
| Description: A C++ template library for linear algebra: vectors, matrices, and related algorithms | ||||
| Requires: | ||||
| Version: ${EIGEN_VERSION_NUMBER} | ||||
| Version: @EIGEN_VERSION_NUMBER@ | ||||
| Libs: | ||||
| Cflags: -I${INCLUDE_INSTALL_DIR} | ||||
| Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Taylor Braun-Jones
						Taylor Braun-Jones