[PATCH] Install cmake files to lib/cmake/llvm

Chris Bieneman via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 11 13:33:40 PST 2016


+ Takumi

I’m curious if Takumi has any thoughts here. I primarily work on Darwin where we address multiple architectures by using fat binaries, so we don’t really have this problem.

I’m a little concerned about this patch because it is a universal behavior change across all CMake users.I honestly just don’t know enough about how the CMake out-of-tree builds work to evaluate if this is safe, but from the limited research I’ve done I think it is probably mostly right.

The only thing I really didn’t like is that instead of lib/cmake/llvm I’d rather the directory was just lib/llvm/. Mostly because 5 years from now when I ls lib and want to delete some old LLVM install you’ll know that the llvm directory is part of LLVM instead of part of CMake.

Takumi any thoughts?

-Chris


> On Jan 9, 2016, at 5:26 AM, Niels Ole Salscheider <niels_ole at salscheider-online.de> wrote:
> 
> Ping.
> 
> On Monday, 21 December 2015, 00:17:47 CET, Niels Ole Salscheider via llvm-
> commits wrote:
>> On Monday 21 December 2015, 00:09:29 CET, Niels Ole Salscheider wrote:
>>> This is the right location for platform-specific files.
>>> 
>>> On some distributions (e. g. Exherbo), a package can be installed for
>>> several architectures in parallel, but the architecture-independent files
>>> are shared. Therefore, we must not install architecture-dependent files
>>> (like the CMake config and export files) to share/.
>> 
>> The corresponding Clang patch can be found at
>> http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20151214/145537.htm
>> l.
>>> ---
>>> 
>>> cmake/modules/CMakeLists.txt | 2 +-
>>> docs/CMake.rst               | 8 ++++----
>>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>> 
>>> diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
>>> index 5f3f255..47ae903 100644
>>> --- a/cmake/modules/CMakeLists.txt
>>> +++ b/cmake/modules/CMakeLists.txt
>>> @@ -1,4 +1,4 @@
>>> -set(LLVM_INSTALL_PACKAGE_DIR share/llvm/cmake)
>>> +set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
>>> 
>>> set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
>>> 
>>> get_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS)
>>> 
>>> diff --git a/docs/CMake.rst b/docs/CMake.rst
>>> index 38199e5..204b5aa 100644
>>> --- a/docs/CMake.rst
>>> +++ b/docs/CMake.rst
>>> @@ -511,16 +511,16 @@ The ``find_package(...)`` directive when used in
>>> CONFIG mode (as in the above example) will look for the
>>> ``LLVMConfig.cmake`` file in various locations (see cmake manual for
>>> details).  It creates a ``LLVM_DIR`` cache entry to save the directory
>>> where ``LLVMConfig.cmake`` is found or allows the user to specify the
>>> -directory (e.g. by passing ``-DLLVM_DIR=/usr/share/llvm/cmake`` to
>>> +directory (e.g. by passing ``-DLLVM_DIR=/usr/lib/cmake/llvm`` to
>>> 
>>> the ``cmake`` command or by setting it directly in ``ccmake`` or
>>> 
>>> ``cmake-gui``).
>>> 
>>> This file is available in two different locations.
>>> 
>>> -* ``<INSTALL_PREFIX>/share/llvm/cmake/LLVMConfig.cmake`` where
>>> +* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
>>> 
>>>   ``<INSTALL_PREFIX>`` is the install prefix of an installed version of
>>> 
>>> LLVM. -  On Linux typically this is
>>> ``/usr/share/llvm/cmake/LLVMConfig.cmake``. +  On Linux typically this is
>>> ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
>>> 
>>> -* ``<LLVM_BUILD_ROOT>/share/llvm/cmake/LLVMConfig.cmake`` where
>>> +* ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
>>> 
>>>   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this
>>>   is
>>> 
>>> only available when building LLVM with CMake.**
> 
> 



More information about the llvm-commits mailing list