Issue63 (#213)
* Generate arpack.pc when configuring with cmake * Fix detection using pkg-config * Use correct cmake variable names
This commit is contained in:
committed by
Sylvestre Ledru
parent
dbe1582b5f
commit
92787d9bcc
+20
-22
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user