aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/lapack-reference/implicit-link.patch
blob: 8b4e093ecf95f387b4f1682d9aedada305a7e83d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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