Я пытаюсь собрать один из примеров из стандартного дистрибутива, а именно BrainF, но безуспешно.
Я сделал свою копию examples/BrainF и попытался запустить cmake из этого каталога. Изначально CMakeLists.txt выглядел так:
set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter)
add_llvm_example(BrainF
BrainF.cpp
BrainFDriver.cpp
)
cmake жаловался на добавление _*. Я прочиталhttp://llvm.org/docs/CMake.html#embeddingи решил добавить немного прелюдии в CMakeLists.txt:
find_package(LLVM)
# Define add_llvm_* macro's.
include(AddLLVM)
add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})
link_directories(${LLVM_LIBRARY_DIRS})
Затем cmake пожаловался на то, что не может выполнить find_package(LLVM)
и предложил поискать LLVMConfig.cmake или llvm -config.cmake. Самое близкое, что я нашел, лежало в /usr/src/llvm/cmake/modules/LLVM -Config.cmake, поэтому я установил CMAKE_PREFIX_PATH=/usr/src/llvm/cmake/modules/
и сделал программную ссылку LLVMConfig.cmake на LLVM -Config.cmake.
Затем cmake пожаловался таким образом :«include не удалось найти файл загрузки :AddLLVM». Если я жестко запрограммирую весь путь для включения AddLLVM.cmake, проблема перейдет к включениям, которые существуют внутри AddLLVM.cmake, поэтому это не похоже на правильный способ добиться цели.
Моя среда — Xubuntu 12.04, а llvm+clang 3.1 (получил пакет deb от какого-то ppa, бэкпорт от Debian ).