summaryrefslogtreecommitdiff
path: root/math/lapack/patches/patch-CMakeLists.txt
blob: 6fa11d49f9cd5abd57b454ef577d42686a15414f (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
$NetBSD: patch-CMakeLists.txt,v 1.1 2020/10/12 21:51:57 bacon Exp $

Avoid installation of LAPACK CMake and pkg-config files when not installing
LAPACK, also allowing explicitly to switch off LAPACK build for BLAS-only
packaging.

--- CMakeLists.txt.orig	2020-03-03 15:36:43.155560348 +0100
+++ CMakeLists.txt	2020-03-03 15:36:34.827560837 +0100
@@ -112,8 +112,10 @@
 
 
 # --------------------------------------------------
-set(LAPACK_INSTALL_EXPORT_NAME lapack-targets)
 
+if(LAPACK)
+
+set(LAPACK_INSTALL_EXPORT_NAME lapack-targets)
 macro(lapack_install_library lib)
   install(TARGETS ${lib}
     EXPORT ${LAPACK_INSTALL_EXPORT_NAME}
@@ -123,6 +125,18 @@
   )
 endmacro()
 
+else()
+
+macro(lapack_install_library lib)
+  install(TARGETS ${lib}
+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
+    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT RuntimeLibraries
+  )
+endmacro()
+
+endif()
+
 set(PKG_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
 # --------------------------------------------------
@@ -252,6 +266,10 @@
 
 option(USE_OPTIMIZED_LAPACK "Whether or not to use an optimized LAPACK library instead of included netlib LAPACK" OFF)
 
+option(LAPACK "Whether to build or use LAPACK (to enable a BLAS-only build)")
+
+if(LAPACK)
+
 # --------------------------------------------------
 # LAPACK
 # User did not provide a LAPACK Library but specified to search for one
@@ -293,6 +311,8 @@
     CACHE STRING "Linker flags for shared libs" FORCE)
 endif()
 
+endif()
+
 if(BUILD_TESTING)
   add_subdirectory(TESTING)
 endif()
@@ -374,14 +394,18 @@
   set(ALL_TARGETS ${ALL_TARGETS} blas)
 endif()
 
+if(LAPACK)
 if(NOT LATESTLAPACK_FOUND)
   set(ALL_TARGETS ${ALL_TARGETS} lapack)
+  set(BUILD_LAPACK ON)
+endif()
 endif()
 
 if(BUILD_TESTING OR LAPACKE_WITH_TMG)
   set(ALL_TARGETS ${ALL_TARGETS} tmglib)
 endif()
 
+if(LAPACK)
 # Export lapack targets, not including lapacke, from the
 # install tree, if any.
 set(_lapack_config_install_guard_target "")
@@ -395,6 +419,7 @@
   # lapack-config.cmake to load targets from the install tree.
   list(GET ALL_TARGETS 0 _lapack_config_install_guard_target)
 endif()
+endif()
 
 # Include cblas in targets exported from the build tree.
 if(CBLAS)
@@ -406,6 +431,7 @@
   set(ALL_TARGETS ${ALL_TARGETS} lapacke)
 endif()
 
+if(LAPACK)
 # Export lapack and lapacke targets from the build tree, if any.
 set(_lapack_config_build_guard_target "")
 if(ALL_TARGETS)
@@ -415,32 +441,34 @@
   # for lapack-config.cmake to load targets from the build tree.
   list(GET ALL_TARGETS 0 _lapack_config_build_guard_target)
 endif()
+endif()
 
-configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in
-  ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
-
+if(BUILD_LAPACK)
+  configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in
+    ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
 
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc @ONLY)
+  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc @ONLY)
   install(FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc
-  DESTINATION ${PKG_CONFIG_DIR}
-  COMPONENT Development
-  )
+    ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc
+    DESTINATION ${PKG_CONFIG_DIR}
+    COMPONENT Development
+    )
 
-configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-install.cmake.in
-  ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake @ONLY)
+  configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-install.cmake.in
+    ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake @ONLY)
 
-include(CMakePackageConfigHelpers)
-write_basic_package_version_file(
-  ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
-  VERSION ${LAPACK_VERSION}
-  COMPATIBILITY SameMajorVersion
-  )
+  include(CMakePackageConfigHelpers)
+  write_basic_package_version_file(
+    ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
+    VERSION ${LAPACK_VERSION}
+    COMPATIBILITY SameMajorVersion
+    )
 
-install(FILES
-  ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake
-  ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
-  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapack-${LAPACK_VERSION}
-  COMPONENT Development
-  )
-  
\ Kein Zeilenumbruch am Dateiende.
+  install(FILES
+    ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake
+    ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
+    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapack-${LAPACK_VERSION}
+    COMPONENT Development
+    )
+endif()
+