[PATCH] D76018: [CMake] Enable the use of -ffile-prefix-map
Petr Hosek via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 11 14:07:37 PDT 2020
phosek updated this revision to Diff 249748.
phosek added a reviewer: smeenai.
phosek added a subscriber: smeenai.
phosek added a comment.
@smeenai does this look reasonable to you?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76018/new/
https://reviews.llvm.org/D76018
Files:
llvm/cmake/modules/HandleLLVMOptions.cmake
llvm/docs/CMake.rst
Index: llvm/docs/CMake.rst
===================================================================
--- llvm/docs/CMake.rst
+++ llvm/docs/CMake.rst
@@ -631,6 +631,14 @@
If enabled, the Z3 constraint solver is activated for the Clang static analyzer.
A recent version of the z3 library needs to be available on the system.
+**LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO**:BOOL
+ Rewrite absolute source paths in debug info to relative ones. The source prefix
+ can be adjusted via the LLVM_SOURCE_PREFIX variable.
+
+**LLVM_USE_RELATIVE_PATHS_IN_FILES**:BOOL
+ Rewrite absolute source paths in sources and debug info to relative ones. The
+ source prefix can be adjusted via the LLVM_SOURCE_PREFIX variable.
+
CMake Caches
============
Index: llvm/cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- llvm/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -1015,8 +1015,9 @@
endif()
endif()
+set(LLVM_SOURCE_PREFIX "" CACHE STRING "Use prefix for sources")
+
option(LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO "Use relative paths in debug info" OFF)
-set(LLVM_SOURCE_PREFIX "" CACHE STRING "Use prefix for sources in debug info")
if(LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO)
check_c_compiler_flag("-fdebug-prefix-map=foo=bar" SUPPORTS_FDEBUG_PREFIX_MAP)
@@ -1030,3 +1031,18 @@
append_if(SUPPORTS_FDEBUG_PREFIX_MAP "-fdebug-prefix-map=${source_root}/=${LLVM_SOURCE_PREFIX}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
add_flag_if_supported("-no-canonical-prefixes" NO_CANONICAL_PREFIXES)
endif()
+
+option(LLVM_USE_RELATIVE_PATHS_IN_FILES "Use relative paths in sources and debug info" OFF)
+
+if(LLVM_USE_RELATIVE_PATHS_IN_FILES)
+ check_c_compiler_flag("-ffile-prefix-map=foo=bar" SUPPORTS_FFILE_PREFIX_MAP)
+ if(LLVM_ENABLE_PROJECTS_USED)
+ get_filename_component(source_root "${LLVM_MAIN_SRC_DIR}/.." ABSOLUTE)
+ else()
+ set(source_root "${LLVM_MAIN_SRC_DIR}")
+ endif()
+ file(RELATIVE_PATH relative_root "${source_root}" "${CMAKE_BINARY_DIR}")
+ append_if(SUPPORTS_FFILE_PREFIX_MAP "-ffile-prefix-map=${CMAKE_BINARY_DIR}=${relative_root}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+ append_if(SUPPORTS_FFILE_PREFIX_MAP "-ffile-prefix-map=${source_root}/=${LLVM_SOURCE_PREFIX}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+ add_flag_if_supported("-no-canonical-prefixes" NO_CANONICAL_PREFIXES)
+endif()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76018.249748.patch
Type: text/x-patch
Size: 2395 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200311/fe5d8123/attachment.bin>
More information about the llvm-commits
mailing list