Bug#785931: llvm-3.6-dev: LLVM CMake files broken by Debian packaging
Brad King
brad.king at kitware.com
Wed May 20 13:43:34 UTC 2015
Package: llvm-3.6-dev
Version: 1:3.6-2
Severity: normal
Dear Maintainer,
The issue reported in bug #735592 is not fully resolved (as reported
in some follow-up posts in that issue). While that problem has been
resolved in upstream LLVM 3.6, another problem is caused by Debian
packaging.
When a CMake-based project does
find_package(LLVM)
on Debian one gets:
CMake Error at /usr/share/llvm-3.6/cmake/LLVMConfig.cmake:52 (include):
include could not find load file:
/usr/lib/llvm-3.6/share/llvm/cmake/LLVMExports.cmake
The problem does not occur with upstream LLVM 3.6. It is caused by
the adjustment of the installed file layout done by Debian packaging.
First 'debian/rules' configures with
--prefix=/usr/lib/llvm-$(LLVM_VERSION)
The build generates content in
debian/tmp/usr/lib/llvm- at LLVM_VERSION@/share/llvm/cmake/LLVMConfig.cmake
that references the directory
/usr/lib/llvm- at LLVM_VERSION@/share/llvm/cmake
because that is where files are installed by upstream for the given prefix.
Then 'debian/llvm-X.Y-dev.install.in' has:
debian/tmp/usr/lib/llvm- at LLVM_VERSION@/share/llvm/cmake/*.cmake usr/share/llvm- at LLVM_VERSION@/cmake/
This moves these files to a different location during packaging,
but the content of 'LLVMConfig.cmake' expects the original location.
I'm able to work around the issue locally by running
$ sudo ln -s /usr/share/llvm-3.6 /usr/lib/llvm-3.6/share/llvm
to restore the existence of the original path to the files. The
Debian package should be updated to add this symlink. Or, it can
install the files to the original location and add a symlink in
the other direction (to satisfy default find_package search paths).
Thanks,
-Brad
More information about the Pkg-llvm-team
mailing list