* Generate arpack.pc when configuring with cmake

* Fix detection using pkg-config

* Use correct cmake variable names
This commit is contained in:
Franck HOUSSEN
2019-05-23 22:55:46 +02:00
committed by Sylvestre Ledru
parent dbe1582b5f
commit 92787d9bcc
+20 -22
View File
@@ -66,47 +66,47 @@ endfunction(pexamples)
if (ICBEXMM)
find_package(Eigen3)
if (NOT Eigen3_FOUND) # If not found, piggy-back pkg-config files.
if (NOT EIGEN3_FOUND) # If not found, piggy-back pkg-config files.
message(WARNING "CMake didn't find the Eigen3 package. Try to look for pkg-config file...")
find_package(PkgConfig 3.2 REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(EIGEN3 REQUIRED eigen3>=3.2)
endif ()
find_program (BASH_PROGRAM bash)
# Look for headers.
find_path(EIGEN3_SPARSE_DIR NAMES Sparse PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_SPARSE_DIR)
message(FATAL_ERROR "-- Eigen/Sparse header not found.")
endif ()
find_path(EIGEN3_ITERATIVE_SOLVER_DIR NAMES IterativeLinearSolvers PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_ITERATIVE_SOLVER_DIR NAMES IterativeLinearSolvers PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_ITERATIVE_SOLVER_DIR)
message(FATAL_ERROR "-- Eigen/IterativeLinearSolvers header not found.")
endif ()
find_path(EIGEN3_SPARSELU_SOLVER_DIR NAMES SparseLU PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_SPARSE_DIR NAMES Sparse PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_SPARSE_DIR)
message(FATAL_ERROR "-- Eigen/Sparse header not found.")
endif ()
find_path(EIGEN3_SPARSELU_SOLVER_DIR NAMES SparseLU PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_SPARSELU_SOLVER_DIR)
message(FATAL_ERROR "-- Eigen/SparseLU header not found.")
endif ()
find_path(EIGEN3_SPARSEQR_SOLVER_DIR NAMES SparseQR PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_SPARSEQR_SOLVER_DIR NAMES SparseQR PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_SPARSEQR_SOLVER_DIR)
message(FATAL_ERROR "-- Eigen/SparseQR header not found.")
endif ()
find_path(EIGEN3_SPARSECHOLESKY_SOLVER_DIR NAMES SparseCholesky PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_SPARSECHOLESKY_SOLVER_DIR NAMES SparseCholesky PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_SPARSECHOLESKY_SOLVER_DIR)
message(FATAL_ERROR "-- Eigen/SparseCholesky header not found.")
endif ()
find_path(EIGEN3_DENSE_DIR NAMES Dense PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_DENSE_DIR NAMES Dense PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_DENSE_DIR)
message(FATAL_ERROR "-- Eigen/Dense header not found.")
endif ()
find_path(EIGEN3_DENSELU_DIR NAMES LU PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_DENSELU_DIR NAMES LU PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_DENSELU_DIR)
message(FATAL_ERROR "-- Eigen/LU header not found.")
endif ()
find_path(EIGEN3_DENSEQR_DIR NAMES QR PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_DENSEQR_DIR NAMES QR PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_DENSEQR_DIR)
message(FATAL_ERROR "-- Eigen/QR header not found.")
endif ()
find_path(EIGEN3_DENSECHOLESKY_DIR NAMES Cholesky PATHS ${EIGEN3_INCLUDE_DIRS} PATH_SUFFIXES Eigen)
find_path(EIGEN3_DENSECHOLESKY_DIR NAMES Cholesky PATHS ${EIGEN3_INCLUDE_DIR} PATH_SUFFIXES Eigen)
if (NOT EIGEN3_DENSECHOLESKY_DIR)
message(FATAL_ERROR "-- Eigen/Cholesky header not found.")
endif ()
@@ -578,7 +578,7 @@ if(ICB)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/EXAMPLES/MATRIX_MARKET)
add_executable(arpackmm EXAMPLES/MATRIX_MARKET/arpackmm.cpp)
target_include_directories(arpackmm PUBLIC ${PROJECT_SOURCE_DIR}/ICB ${EIGEN3_INCLUDE_DIRS}) # Get arpack.h + eigen
target_include_directories(arpackmm PUBLIC ${PROJECT_SOURCE_DIR}/ICB ${EIGEN3_INCLUDE_DIR}) # Get arpack.h + eigen
target_link_libraries(arpackmm arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} ${EXTRA_LDLAGS})
configure_file(EXAMPLES/MATRIX_MARKET/As.mtx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/As.mtx)
configure_file(EXAMPLES/MATRIX_MARKET/An.mtx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/An.mtx)
@@ -648,13 +648,11 @@ set(includedir \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
set(PACKAGE_NAME ${PROJECT_NAME})
set(PACKAGE_VERSION ${arpack_ng_VERSION})
set(PACKAGE_URL "https://github.com/opencollab/arpack-ng/")
# TODO: Fill these in with something appropriate.
#set(LAPACK_LIBS)
#set(BLAS_LIBS)
set(LAPACK_LIBS ${LAPACK_LIBRARIES})
set(BLAS_LIBS ${BLAS_LIBRARIES})
configure_file(arpack.pc.in arpack${LIBSUFFIX}.pc @ONLY)
#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/arpack${LIBSUFFIX}.pc
# DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/arpack${LIBSUFFIX}.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
# We don't want this to run on every build.
option(COVERALLS "Generate coveralls data" OFF)
@@ -753,5 +751,5 @@ endif()
libsummary("BLAS" "" "${BLAS_LIBRARIES}")
libsummary("LAPACK" "" "${LAPACK_LIBRARIES}")
if (ICBEXMM)
libsummary("EIGEN3" "${EIGEN3_INCLUDE_DIRS}" "")
libsummary("EIGEN3" "${EIGEN3_INCLUDE_DIR}" "")
endif()