Package: llvm-3.7-dev Version: 1:3.7~+rc2-2 Severity: normal Tags: patch Dear Maintainer,
The LLVM_INSTALL_PREFIX variable set by LLVMConfig.cmake wrongly assumes that the installed CMake configuration files are in a subdirectory of the actual LLVM installation. The Debian package moves the CMake configuration files to /usr/share/llvm-VERSION/, so this assumption is not correct. The way that the LLVM_INSTALL_PREFIX variable is determined has changed in LLVM 3.7, and this issue for Debian was pointed out (along with a proposed fix) by Brad King, here: http://thread.gmane.org/gmane.comp.compilers.llvm.cvs/255502/focus=25574 The attached patch resolves this by essentially using the same mechanism to determine LLVM_INSTALL_PREFIX as was used in LLVM 3.6. The resulting changes to the generated LLVMConfig.cmake match the changes proposed by Brad above. Many thanks, James -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 4.1.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages llvm-3.7-dev depends on: ii libc6 2.19-19 ii libedit2 3.1-20150325-1 ii libffi-dev 3.2.1-3 ii libffi6 3.2.1-3 ii libgcc1 1:5.2.1-14 ii libjsoncpp0v5 0.10.5-1 ii libllvm3.7 1:3.7~+rc2-2 ii libstdc++6 5.2.1-14 ii libtinfo-dev 5.9+20150516-2 ii libtinfo5 5.9+20150516-2 ii llvm-3.7 1:3.7~+rc2-2 ii zlib1g 1:1.2.8.dfsg-2+b1 llvm-3.7-dev recommends no packages. llvm-3.7-dev suggests no packages. -- no debconf information
--- a/cmake/modules/Makefile +++ b/cmake/modules/Makefile @@ -62,17 +62,9 @@ LLVM_CONFIG_CODE := \ \# Compute the CMake directory from the LLVMConfig.cmake file location.\n\ -get_filename_component(_LLVM_CMAKE_DIR "$${CMAKE_CURRENT_LIST_FILE}" PATH)\n\ -\# Compute the installation prefix from the LLVMConfig.cmake file location.\n\ -get_filename_component(LLVM_INSTALL_PREFIX "$${CMAKE_CURRENT_LIST_FILE}" PATH)\n +get_filename_component(_LLVM_CMAKE_DIR "$${CMAKE_CURRENT_LIST_FILE}" PATH)\n -# Compute number of levels (typically 3 - ``share/llvm/cmake/``) to PROJ_prefix -# from PROJ_cmake, then emit the appropriate number of calls to -# get_filename_components(). Note this assumes there are no spaces in the -# cmake_path_suffix variable. -cmake_path_suffix := $(subst $(PROJ_prefix),,$(subst $(DESTDIR),,$(PROJ_cmake))) -cmake_path_dirs := $(subst /, ,$(cmake_path_suffix)) -LLVM_CONFIG_CODE += $(foreach __not_used,$(cmake_path_dirs),get_filename_component(LLVM_INSTALL_PREFIX "$${LLVM_INSTALL_PREFIX}" PATH)\n) +LLVM_CONFIG_CODE += set(LLVM_INSTALL_PREFIX "$(subst /,\/,$(PROJ_prefix))")\n LLVM_CONFIG_CODE += set(_LLVM_LIBRARY_DIR "$${LLVM_INSTALL_PREFIX}\/lib")