Кто-нибудь знает, как добавить опцию `llvm-config --cxxflags --ldflags --libs`
в CMake?Самое сложное для меня - обратная связь `
.
. Мне нужно настроить файлы CMake для получения команды компиляции, например:
g++ test.cpp -lclangBasic -I/usr/lib/llvm-6.0/include
-Wall `llvm-config --cxxflags --ldflags --libs`
Я пытался использовать следующие параметры, ноони не работают:
add_compile_options(`llvm-config --cxxflags --ldflags --libs`)
# or
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} `llvm-config --cxxflags --ldflags --libs`")
Заранее спасибо.
===============
Обновление 1.
Используя вывод `llvm-config --cxxflags --ldflags --libs`
, я могу успешно скомпилировать следующую команду:
g++ test.cpp -lclangBasic -I/usr/lib/llvm-6.0/include
-Wall -I/usr/lib/llvm-6.0/include -L/usr/lib/llvm-6.0/lib -lLLVM-6.0
Я могу передать -I/usr/lib/llvm-6.0/include
с помощью include_directories(usr/lib/llvm-6.0/include)
.
Но, тем не менее, я не знаю, как передать часть -L/usr/lib/llvm-6.0/lib -lLLVM-6.0
в CMake.Использование link_directories
и target_link_libraries
, как показано ниже, не работает для меня:
link_directories(/usr/lib/llvm-6.0/lib)
target_link_libraries(test PUBLIC "LLVM-6.0")
Кто-нибудь знает, как заставить их работать в CMake?
===============
Обновление 2.
Мне нужно добавить следующий код в файл CMakeLists.txt
, чтобы заставить работать CMake.
add_library(LLVM-6.0 SHARED IMPORTED) # or STATIC instead of SHARED
set_target_properties(LLVM-6.0 PROPERTIES
IMPORTED_LOCATION "/usr/lib/llvm-6.0/lib/libLLVM-6.0.so"
INTERFACE_INCLUDE_DIRECTORIES "/usr/lib/llvm-6.0/include"
)
add_library(clangBasic SHARED IMPORTED) # or STATIC instead of SHARED
set_target_properties(clangBasic PROPERTIES
IMPORTED_LOCATION "/usr/lib/llvm-6.0/lib/libclangBasic.a"
INTERFACE_INCLUDE_DIRECTORIES "/usr/lib/llvm-6.0/include"
)
target_link_libraries(solidity PUBLIC "LLVM-6.0;clangBasic")
Тем не менее, это выглядит вручную, и я все еще ищу лучшие решения ...