Skip to content

Commit 6411588

Browse files
committed
Remove CMake < 3 CMP0042 workarounds
CMake only sets install names on darwin to `@rpath/<name>` (which is desired otherwise rpaths don't work at all) when CMP0042 is ON. That's the default when CMake 3.0 or higher is required. And lapack requires it already for years: as of v3.9.1 (8f004b3). So, delete the old workarounds that effectively set CMP0042 to ON. Further, delete the following three options that are redefinitions of builtin with values that are builtin defaults: - `CMAKE_MACOSX_RPATH` - `CMAKE_SKIP_BUILD_RPATH` - `CMAKE_BUILD_WITH_INSTALL_RPATH` Lastly, lapack automatically sets `CMAKE_INSTALL_RPATH_USE_LINK_PATH` to `ON` whenever installing to a non-system dir. The assumption is that whenever you install something to a non-system dir, you need rpaths to locate dependencies. But this is just an assumption which may or may not hold. The downside of it is that the option can be annoying when lapack is used as a sub-project as it affects a global CMake variable (for example OpenBLAS uses lapack as a sub-project). Instead, let users or packagers provide this on the command line if they really need it -- remove it from lapack as it's as helpful as it is harmful.
1 parent 3c351aa commit 6411588

File tree

1 file changed

+0
-24
lines changed

1 file changed

+0
-24
lines changed

CMakeLists.txt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -123,30 +123,6 @@ message(STATUS "Build Index-64 API as extended API with _64 suffix: ${BUILD_INDE
123123

124124
include(GNUInstallDirs)
125125

126-
# Updated OSX RPATH settings
127-
# In response to CMake 3.0 generating warnings regarding policy CMP0042,
128-
# the OSX RPATH settings have been updated per recommendations found
129-
# in the CMake Wiki:
130-
# http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH
131-
option(CMAKE_MACOSX_RPATH "Enable macOS RPATH" ON)
132-
message(STATUS "Enable macOS RPATH: ${CMAKE_MACOSX_RPATH}")
133-
option(CMAKE_SKIP_BUILD_RPATH "Skip build-time RPATH" OFF)
134-
message(STATUS "Skip build-time RPATH: ${CMAKE_SKIP_BUILD_RPATH}")
135-
option(CMAKE_BUILD_WITH_INSTALL_RPATH "Build with install RPATH" OFF)
136-
message(STATUS "Build with install RPATH: ${CMAKE_BUILD_WITH_INSTALL_RPATH}")
137-
138-
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_FULL_LIBDIR} isSystemDir)
139-
140-
if ("${isSystemDir}" STREQUAL "-1")
141-
if(${CMAKE_INSTALL_FULL_LIBDIR})
142-
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
143-
endif()
144-
message(STATUS "Install RPATH: ${CMAKE_INSTALL_RPATH}")
145-
option(CMAKE_INSTALL_RPATH_USE_LINK_PATH "Use link path for RPATH" TRUE)
146-
message(STATUS "Install RPATH use link path: ${CMAKE_INSTALL_RPATH_USE_LINK_PATH}")
147-
endif()
148-
149-
150126
# Configure the warning and code coverage suppression file
151127
configure_file(
152128
"${LAPACK_SOURCE_DIR}/CTestCustom.cmake.in"

0 commit comments

Comments
 (0)