Hi All, We want to compile LLVM/Clang and use the resulting headers/libraries in our project. But we compile it during out build process. I can build LLVM/Clang by adding it to our cmakelists.txt but when our code tries to use one of the headers (clang/CodeGen/ModuleBuilder.h), its not found as it doesnt exist. If I do a 'make install' in the llvm directory, then the file is generated in the LLVM_INSTALL_PREFIX directory. Is the 'make install' step necessary even though I'm compiling llvm along with my code? TIA, ashok
Ashok Nalkund <ashoknn at qti.qualcomm.com> writes:> We want to compile LLVM/Clang and use the resulting > headers/libraries in our project. But we compile it during out build > process. I can build LLVM/Clang by adding it to our cmakelists.txt but > when our code tries to use one of the headers > (clang/CodeGen/ModuleBuilder.h), its not found as it doesnt exist. If > I do a 'make install' in the llvm directory, then the file is > generated in the LLVM_INSTALL_PREFIX directory. Is the 'make install' > step necessary even though I'm compiling llvm along with my code?If you wish to use LLVM/Clang whitout installing it, you must add both the build output header path and the source header path (in this order) to your list of include paths, like this: include_directories( ${LLVM_BUILD_DIR}/include ${LLVM_SOURCE_DIR}/include ) Replace LLVM_SOURCE_DIR/LLVM_BUILD_DIR with the respective directories. Same for Clang
On 1/19/2013 2:39 AM, Óscar Fuentes wrote:> Ashok Nalkund <ashoknn at qti.qualcomm.com> writes: > >> We want to compile LLVM/Clang and use the resulting >> headers/libraries in our project. But we compile it during out build >> process. I can build LLVM/Clang by adding it to our cmakelists.txt but >> when our code tries to use one of the headers >> (clang/CodeGen/ModuleBuilder.h), its not found as it doesnt exist. If >> I do a 'make install' in the llvm directory, then the file is >> generated in the LLVM_INSTALL_PREFIX directory. Is the 'make install' >> step necessary even though I'm compiling llvm along with my code? > > If you wish to use LLVM/Clang whitout installing it, you must add both > the build output header path and the source header path (in this order) > to your list of include paths, like this: > > include_directories( ${LLVM_BUILD_DIR}/include ${LLVM_SOURCE_DIR}/include ) > > Replace LLVM_SOURCE_DIR/LLVM_BUILD_DIR with the respective directories. > Same for ClangThanks for the response, it worked. I can now compile my code by adding the additional include paths. I was using the find_package(LLVM llvm/share/llvm/cmake) and llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native) to get the libraries to link against. This works well for the libLLVM* libraries, but how do I implement similar find stuff for clang libraries? TIA, ashok