1 From 9464a129603e79d921651f2e76e7f80264d1ed33 Mon Sep 17 00:00:00 2001
2 From: Jan Palus <jpalus@fastmail.com>
3 Date: Tue, 27 Sep 2022 23:48:07 +0200
4 Subject: [PATCH] cmake: use unambiguously absolute paths for install
7 as per https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
8 CMAKE_INSTALL_<dir> can be both relative and absolute. so far mold made
9 assumption these are relative only, but handle both cases by using
10 CMAKE_INSTALL_FULL_<dir> instead.
12 Signed-off-by: Jan Palus <jpalus@fastmail.com>
14 CMakeLists.txt | 16 ++++++++--------
15 1 file changed, 8 insertions(+), 8 deletions(-)
17 diff --git a/CMakeLists.txt b/CMakeLists.txt
18 index dcbfc2d5..80c201a9 100644
21 @@ -13,7 +13,7 @@ endif()
23 target_compile_features(mold PRIVATE cxx_std_20)
24 target_compile_definitions(mold PRIVATE
25 - "LIBDIR=\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\"")
26 + "LIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\"")
27 target_link_libraries(mold PRIVATE ${CMAKE_DL_LIBS})
29 if(NOT "${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
30 @@ -291,17 +291,17 @@ if(NOT CMAKE_SKIP_INSTALL_RULES)
31 install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
32 install(FILES docs/mold.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/)
34 - set(DEST \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}\")
35 + set(DEST \"\$ENV{DESTDIR}\")
36 file(RELATIVE_PATH RELPATH
37 - /${CMAKE_INSTALL_LIBEXECDIR}/mold /${CMAKE_INSTALL_BINDIR}/mold)
38 + /${CMAKE_INSTALL_FULL_LIBEXECDIR}/mold /${CMAKE_INSTALL_FULL_BINDIR}/mold)
39 execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
40 - \${DEST}/${CMAKE_INSTALL_LIBEXECDIR}/mold)
41 + \${DEST}/${CMAKE_INSTALL_FULL_LIBEXECDIR}/mold)
42 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \${RELPATH}
43 - \${DEST}/${CMAKE_INSTALL_LIBEXECDIR}/mold/ld)
44 + \${DEST}/${CMAKE_INSTALL_FULL_LIBEXECDIR}/mold/ld)
45 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mold
46 - \${DEST}/${CMAKE_INSTALL_BINDIR}/ld.mold)
47 + \${DEST}/${CMAKE_INSTALL_FULL_BINDIR}/ld.mold)
48 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mold
49 - \${DEST}/${CMAKE_INSTALL_BINDIR}/ld64.mold)
50 + \${DEST}/${CMAKE_INSTALL_FULL_BINDIR}/ld64.mold)
51 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mold.1
52 - \${DEST}/${CMAKE_INSTALL_MANDIR}/man1/ld.mold.1)")
53 + \${DEST}/${CMAKE_INSTALL_FULL_MANDIR}/man1/ld.mold.1)")