[llvm] [cmake] Move LLVM_INSTALL_PACKAGE_DIR top-level to fix llvm-config
authorMichał Górny <mgorny@gentoo.org>
Mon, 15 Aug 2022 07:50:14 +0000 (09:50 +0200)
committerTobias Hieta <tobias@hieta.se>
Wed, 17 Aug 2022 08:56:24 +0000 (10:56 +0200)
commit64260feaa763ca0065637c4b0929262166035387
tree04928a86cfab62a00c7b57d71912195b5bef509e
parentb4a285bcb59e8c4d80f170e26739356a95eb3091
[llvm] [cmake] Move LLVM_INSTALL_PACKAGE_DIR top-level to fix llvm-config

Move the `LLVM_INSTALL_PACKAGE_DIR` declaration from llvm/cmake/modules
directory to the top-level llvm/CMakeLists.txt, in order to fix
the regression in `llvm-config --cmakedir` output for installed LLVM.
Since the tools directory is processed by CMake prior to
llvm/cmake/modules, the llvm-config executable ended up using
the variable prior to it being defined and incorrectly used an empty
path, resulting in e.g.:

    $ llvm-config --cmakedir
    /usr/lib/llvm/16/

With this patch, the path is defined (and therefore the default value
is being set) prior to adding the tools subdirectory and llvm-config
starts working correctly:

    $ llvm-config --cmakedir
    /usr/lib/llvm/16/lib64/cmake/llvm

This fixes a regression introduced by D130539.  Thanks to Petr Polezhaev
for reporting the problem @ https://bugs.gentoo.org/865165

Differential Revision: https://reviews.llvm.org/D131878

(cherry picked from commit d230055234863aafe63489f9ab95e52d2c1883f2)
llvm/CMakeLists.txt
llvm/cmake/modules/CMakeLists.txt