[llvm-dev] Embedding llvm as a git submodule in Project
Timo Janssen via llvm-dev
llvm-dev at lists.llvm.org
Tue Oct 11 01:33:07 PDT 2016
I see. Thanks again.
THen I will look how I best do it.
But it would be good if it would be poosible if I could build llvm
in-tree and only build those parts I really need. TO reduce build time.
But this way will probably be good enaugh. Many thanks.
Timo
Am 10.10.2016 um 15:42 schrieb don hinton:
> Sorry my example wasn't helpful.
>
> I did take a quick look at rust -- though I didn't download or try to
> build it -- and they seem to allow you to use an installed or prebuilt
> version in addition to building it in-tree. However, even when they
> build it in-tree, they build the whole thing -- see mk/llvm.mk
> <http://llvm.mk>.
>
> Good luck...
>
>
>
> On Mon, Oct 10, 2016 at 1:33 AM, Timo Janssen via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Hi Don,
>
>
> thanks, but that isn't completely what I want.
>
> THe way you explain it, I have to first build llvm an install and
> then seperately my project.
>
> But that isn't what I want. I want to build it together as one
> thing. In the Rust Compiler they have llvm as a submodule in src
> folder. I don't know how they do it but they don't use CMake so it
> won't really help to look it up. And I want to only build those
> llvm libraries I will need for my project.
>
>
> Am 10.10.2016 um 02:10 schrieb don hinton:
>> Hi Timo:
>>
>> You need to find LLVMConfig.cmake in the binary or install
>> directory tree, not the source tree.
>>
>> Although I don't embed clang/llvm, my config might help you
>> figure it -- clang/llvm installed under (could have used build
>> directory) ~/usr :
>>
>> $ cd /Users/dhinton/projects/cover/build/ && rm -rf * &&
>> CC=~/usr/bin/clang CXX=~/usr/bin/clang++
>> LLVM_DIR=~/usr/lib/cmake/llvm cmake ../CVRFI/ -GNinja
>>
>> $ cat ../CVRFI/CMakeLists.txt
>> cmake_minimum_required(VERSION 2.8)
>>
>> set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
>>
>> set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
>> set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
>> set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
>>
>> # Make Debug the default, pass -DCMAKE_BUILD_TYPE=Release to
>> change this.
>> if (NOT CMAKE_BUILD_TYPE)
>> message ("Setting CMAKE_BUILD_TYPE = Debug")
>> set(CMAKE_BUILD_TYPE Debug)
>> endif()
>>
>> if(APPLE)
>> set(CMAKE_MACOSX_RPATH ON)
>> set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}
>> -undefined dynamic_lookup")
>> set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
>> -undefined dynamic_lookup")
>> endif()
>>
>> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
>>
>> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra
>> -Wno-unused-parameter")
>>
>> # While just setting LLVM_DIR will make find_package work, you
>> need to
>> # add it to CMAKE_MODULE_PATH if you want to include AddLLVM,
>> e.g., if
>> # you want to use add_llvm_loadable_module.
>> set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "$ENV{LLVM_DIR}")
>> find_package(LLVM REQUIRED CONFIG)
>> include(AddLLVM)
>> add_definitions(${LLVM_DEFINITIONS})
>> include_directories(${LLVM_INCLUDE_DIRS})
>> link_directories(${LLVM_LIBRARY_DIRS})
>>
>>
>>
>> On Sun, Oct 9, 2016 at 2:03 PM, Timo Janssen via llvm-dev
>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>> Hi,
>>
>>
>> I am sorry but I really am not good with cmake yet.
>>
>> I made one mistake I used MODULE instead of CONFIG in
>> find_package.
>>
>> But even with CONFIG I doesn't work for me.
>>
>>
>> Here my CMakeLists.txt:
>>
>>
>> cmake_minimum_required(VERSION 3.5.1)
>> project(SimpleProject)
>>
>> find_package(LLVM REQUIRED CONFIG PATHS
>> "${CMAKE_CURRENT_SOURCE_DIR}/llvm/cmake$
>>
>> message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
>> message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
>>
>> include_directories(${LLVM_INCLUDE_DIRS})
>> add_definitions(${LLVM_DEFINITIONS})
>>
>> add_executable(simple-tool main.cpp)
>>
>> llvm_map_components_to_libnames(llvm_libs support)
>>
>> target_link_libraries(simple-tool ${llvm_libs})
>>
>>
>> Here part of the cmake output in terminal:
>>
>> CMake Error at CMakeLists.txt:4 (find_package):
>> Could not find a package configuration file provided by
>> "LLVM" with any of
>> the following names:
>>
>> LLVMConfig.cmake
>> llvm-config.cmake
>>
>> Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH
>> or set
>> "LLVM_DIR" to a directory containing one of the above
>> files. If "LLVM"
>> provides a separate development package or SDK, be sure it
>> has been
>> installed.
>>
>>
>> -- Configuring incomplete, errors occurred!
>> See also
>> "/home/timoo/Schreibtisch/build/CMakeFiles/CMakeOutput.log"
>>
>>
>> I added the PATHS to find_package becouse the command must
>> find the files.
>>
>> In the llvm/cmake/modules dircotry are:
>>
>> LLVM-Config.cmake (instead of lower case) and
>>
>> LLVMConfig.cmake.in <http://LLVMConfig.cmake.in> (.in added
>> at end)
>>
>>
>> So what must I do?
>>
>>
>>
>> Am 09.10.2016 um 16:18 schrieb Timo Janssen:
>>
>> Hi all.
>>
>>
>> I want to use llvm in my project and I want to make llvm
>> a git submodule in my project.
>>
>> http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project
>> <http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project>
>>
>> At this in the documentation it claims to describe how to
>> embed llvm into a project. I tried it that way but it
>> doesn't work, because there isn't any findLLVM.cmake in
>> the llvm/cmake/modules directory anymore (i don't know if
>> there was one in the past).
>>
>>
>> Can someone tell me how to do it now.
>>
>>
>> Timo Janssen
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>>
>>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161011/46479fc8/attachment-0001.html>
More information about the llvm-dev
mailing list