-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CMake files do not respect the LLVM config files from the custom installation #689
Comments
Hi @flipreverse, PhASAR currently requires LLVM 14. We are in the process of supporting newer LLVM versions, but there are two major problems that have to be solved first (#533 and #687). In our build configuration, we use
only changes the compiler, but has no influence on the LLVM version that phasar links against. In order to use a different LLVM version, you would need to modify the corresponding line in our top-level CMakeLists.txt. |
Currently, the custom build of LLVM must be located in /usr/local/llvm-14. If not, CMake will either fail finding LLVMConfig.cmake or use a different LLVM installation, e.g., the system-wide one. This will, for example, result in an include path different from the custom LLVM installation. This commit extends 'bootstrap.sh' to set 'LLVM_ROOT' to the custom installation. Moreover, it allows the user to select an arbitrary location for LLVM. (Fixed #689) Co-authored-by: Fabian Schiebel <52407375+fabianbs96@users.noreply.github.com>
Bug description
CMake does not use the include directory of the self-built LLVM/clang.
Steps to reproduce
bootstrap.sh
CC=/fs/scratch/al/llvm-14/bin/clang CXX=/fs/scratch/al/llvm-14/bin/clang++ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DPHASAR_BUILD_UNITTESTS=true /fs/scratch/al/phasar/src
cmake --build . -j 1
Actual result: Due to the newer LLVM, the build process aborts. This in turn shows the wrong include dir:
-I/usr/lib/llvm-14/include
.Expected result: The CMake files should honor the custom LLVM installation. The parameter
-I/usr/lib/llvm-14/include
should be replaced by-I/fs/scratch/al/llvm-14//include
.(Important
/fs/scratch/al/llvm-14/
does contain a built of LLVM 17.0.6. The directory name is misleading.)Context (Environment)
Operating System:
Build Type:
Possible solution
The CMake variable
LLVM_INCLUDE_DIRS
, used incmake/phasar_macros.cmake:209
shall point to the aforementioned directory.That variable is set in
/fs/scratch/al/llvm-14/lib/cmake/llvm/LLVMConfig.cmake
. I assume CMake must use the CMake files for LLVM from/fs/scratch/al/llvm-14/lib/cmake
.Example files
Files:
The text was updated successfully, but these errors were encountered: