Files
vcpkg/ports/lapack-reference/implicit-link.patch

42 lines
1.8 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58e59be8fb..572478de83 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -520,6 +520,25 @@ endif()
configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in
${LAPACK_BINARY_DIR}/${LAPACKLIB}-config.cmake @ONLY)
+set(FORTRAN_IMPLICIT_LIBS "")
+set(FORTRAN_IMPLICIT_LINK_DIRS "")
+if(NOT BUILD_SHARED_LIBS)
+ set(FORTRAN_IMPLICIT_LIBS ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
+ set(FORTRAN_IMPLICIT_LINK_DIRS ${CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES})
+ list(REVERSE FORTRAN_IMPLICIT_LIBS)
+ list(REMOVE_DUPLICATES FORTRAN_IMPLICIT_LIBS)
+ list(REVERSE FORTRAN_IMPLICIT_LIBS)
+ list(REMOVE_ITEM FORTRAN_IMPLICIT_LIBS ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES})
+ list(REMOVE_ITEM FORTRAN_IMPLICIT_LINK_DIRS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES} ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES})
+ list(JOIN FORTRAN_IMPLICIT_LIBS " -l" FORTRAN_IMPLICIT_LIBS)
+ list(JOIN FORTRAN_IMPLICIT_LINK_DIRS " -L" FORTRAN_IMPLICIT_LINK_DIRS)
+ if(FORTRAN_IMPLICIT_LIBS)
+ set(FORTRAN_IMPLICIT_LIBS "-l${FORTRAN_IMPLICIT_LIBS}")
+ endif()
+ if(FORTRAN_IMPLICIT_LINK_DIRS)
+ set(FORTRAN_IMPLICIT_LINK_DIRS "-L${FORTRAN_IMPLICIT_LINK_DIRS}")
+ endif()
+endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${LAPACKLIB}.pc @ONLY)
install(FILES
diff --git a/lapack.pc.in b/lapack.pc.in
index 316c871011..4d7f3f7b56 100644
--- a/lapack.pc.in
+++ b/lapack.pc.in
@@ -5,5 +5,5 @@ Name: LAPACK
Description: FORTRAN reference implementation of LAPACK Linear Algebra PACKage
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/
-Libs: -L${libdir} -llapack
+Libs: -L${libdir} -llapack @FORTRAN_IMPLICIT_LINK_DIRS@ @FORTRAN_IMPLICIT_LIBS@
Requires.private: blas