Attempt to make arpack.pc identical when generated by CMake
This commit is contained in:
+29
-22
@@ -6,6 +6,11 @@ endif ()
|
||||
|
||||
project(arpack C Fortran)
|
||||
|
||||
set(arpack_ng_MAJOR_VERSION 3)
|
||||
set(arpack_ng_MINOR_VERSION 7)
|
||||
set(arpack_ng_PATCH_VERSION 0)
|
||||
set(arpack_ng_VERSION ${arpack_ng_MAJOR_VERSION}.${arpack_ng_MINOR_VERSION}.${arpack_ng_PATCH_VERSION})
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
|
||||
|
||||
# Adopted from https://github.com/feymark/arpack.git
|
||||
@@ -30,6 +35,8 @@ option(INTERFACE64 "use the 64-bit integer interface (ILP64) for ARPACK, BLAS an
|
||||
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
|
||||
# We don't want this to run on every build.
|
||||
option(COVERALLS "Generate coveralls data" OFF)
|
||||
if (COVERALLS)
|
||||
include(Coveralls)
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
|
||||
@@ -671,10 +678,32 @@ endif()
|
||||
# 'make install' to the correct location
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Convert variable names to those expected by the .pc file.
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(exec_prefix \${prefix})
|
||||
set(libdir \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
|
||||
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/")
|
||||
# Convert (LAPACK|BLAS)_LIBRARIES to -l flags, store in ARPACK_PC_LIBS.
|
||||
# LAPACK_LIBRARIES contains transitive deps, no need to parse BLAS_LIBRARIES.
|
||||
set(ARPACK_PC_LIBS)
|
||||
foreach(lib ${LAPACK_LIBRARIES})
|
||||
get_filename_component(libname ${lib} NAME)
|
||||
string(REGEX REPLACE "^lib([^.]+).*$" "-l\\1" libname ${libname})
|
||||
list(APPEND ARPACK_PC_LIBS "${libname}")
|
||||
endforeach()
|
||||
string(REPLACE ";" " " ARPACK_PC_LIBS "${ARPACK_PC_LIBS}")
|
||||
configure_file(SRC/arpack.pc.in "${PROJECT_BINARY_DIR}/SRC/arpack${LIBSUFFIX}.pc" @ONLY)
|
||||
|
||||
|
||||
install(TARGETS arpack
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES "${PROJECT_BINARY_DIR}/SRC/arpack${LIBSUFFIX}.pc"
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
|
||||
if (MPI)
|
||||
install(TARGETS parpack
|
||||
@@ -716,10 +745,6 @@ install(FILES "${PROJECT_BINARY_DIR}/arpackicb.h" DESTINATION ${CMAKE_INSTALL_IN
|
||||
# Provide find_package for arpack-ng to users.
|
||||
configure_file(arpack-ng-config.cmake.in "${PROJECT_BINARY_DIR}/arpack-ng-config.cmake" @ONLY)
|
||||
install(FILES "${PROJECT_BINARY_DIR}/arpack-ng-config.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) # find_package(arpack-ng)
|
||||
set(arpack_ng_MAJOR_VERSION 3)
|
||||
set(arpack_ng_MINOR_VERSION 7)
|
||||
set(arpack_ng_PATCH_VERSION 0)
|
||||
set(arpack_ng_VERSION ${arpack_ng_MAJOR_VERSION}.${arpack_ng_MINOR_VERSION}.${arpack_ng_PATCH_VERSION})
|
||||
configure_file(arpack-ng-config-version.cmake.in "${PROJECT_BINARY_DIR}/arpack-ng-config-version.cmake" @ONLY)
|
||||
install(FILES "${PROJECT_BINARY_DIR}/arpack-ng-config-version.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
|
||||
|
||||
@@ -731,24 +756,6 @@ set(CPACK_SOURCE_IGNORE_FILES "/BUILD/" "/Build/" "/build/" "/local/") # Do not
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "arpack-ng-${CPACK_VERSION_MAJOR}.${CPACK_VERSION_MINOR}.${CPACK_VERSION_PATCH}")
|
||||
include(CPack)
|
||||
|
||||
# Convert variable names to those expected by the .pc file.
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(exec_prefix \${prefix})
|
||||
set(libdir \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
|
||||
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/")
|
||||
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)
|
||||
|
||||
# We don't want this to run on every build.
|
||||
option(COVERALLS "Generate coveralls data" OFF)
|
||||
|
||||
|
||||
if (COVERALLS)
|
||||
set(arpack_TST_SRC
|
||||
${arpack_SOURCE_DIR}/TESTS/bug_1323.f
|
||||
|
||||
@@ -23,9 +23,5 @@ endif
|
||||
EXTRA_DIST = README.md PARPACK_CHANGES CHANGES DOCUMENTS VISUAL_STUDIO \
|
||||
detect_arpack_bug.m4 CMakeLists.txt arpack-ng-config.cmake.in arpack-ng-config-version.cmake.in
|
||||
|
||||
pkgconfig_DATA = arpack@LIBSUFFIX@.pc
|
||||
|
||||
cmkdir = $(prefix)/lib/cmake
|
||||
cmk_DATA = arpack-ng-config.cmake arpack-ng-config-version.cmake
|
||||
|
||||
DISTCLEANFILES = $(pkgconfig_DATA) arpackdef.h arpack-ng-config.cmake arpack-ng-config-version.cmake
|
||||
|
||||
@@ -33,3 +33,8 @@ if ICB
|
||||
libarpack@LIBSUFFIX@_la_LIBADD += $(top_builddir)/ICB/libdbgicb.la $(top_builddir)/ICB/libstaicb.la
|
||||
libarpack@LIBSUFFIX@_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir)
|
||||
endif
|
||||
|
||||
pkgconfig_DATA = arpack@LIBSUFFIX@.pc
|
||||
|
||||
# Due to the LIBSUFFIX, configure doesn't automatically clean this file:
|
||||
DISTCLEANFILES = arpack@LIBSUFFIX@.pc
|
||||
|
||||
@@ -7,5 +7,5 @@ Name: @PACKAGE_NAME@
|
||||
Description: Collection of Fortran77 subroutines designed to solve large scale eigenvalue problems
|
||||
Version: @PACKAGE_VERSION@
|
||||
URL: @PACKAGE_URL@
|
||||
Libs: -L${libdir} -larpack@LIBSUFFIX@ @LAPACK_LIBS@ @BLAS_LIBS@
|
||||
Libs: -L${libdir} -larpack@LIBSUFFIX@ @ARPACK_PC_LIBS@
|
||||
Cflags: -I${includedir}/arpack
|
||||
+2
-1
@@ -254,7 +254,8 @@ AM_CONDITIONAL([ICB], [test x"$enable_icb" != x"no"])
|
||||
AM_CONDITIONAL([ICBEXMM], [test x"$enable_icb_exmm" != x"no"])
|
||||
|
||||
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], [AC_SUBST([pkgconfigdir], [${libdir}/pkgconfig])])
|
||||
AC_CONFIG_FILES([arpack$LIBSUFFIX.pc:arpack.pc.in], [], [LIBSUFFIX="$LIBSUFFIX"])
|
||||
AC_SUBST([ARPACK_PC_LIBS], ["$LAPACK_LIBS $BLAS_LIBS"])
|
||||
AC_CONFIG_FILES([SRC/arpack$LIBSUFFIX.pc:SRC/arpack.pc.in], [], [LIBSUFFIX="$LIBSUFFIX"])
|
||||
|
||||
AC_SUBST([CMAKE_INSTALL_FULL_LIBDIR], ["$libdir"]) # FIXME: need to recursively expand these
|
||||
AC_SUBST([CMAKE_INSTALL_FULL_INCLUDEDIR], ["$includedir"])
|
||||
|
||||
Reference in New Issue
Block a user