我想在CMakeLists.txt中设置一些变量,比如CMAKE_CXX__FLAGS。
不幸的是,我不想将粘贴从终端复制到set()。
相反,我希望在CMakeLists.txt中计算命令,并将变量设置为它们的输出。
一个例子是以下尝试:
set(x ${llvm-config --libs core})
message("${x}")我想将llvm-config --libs core的输出绑定到x。但是,评估这个CMakeLists.txt的结果是输出:${llvm-config;--libs;core}。
在CMakeLists.txt中计算命令的正确方法是什么?
当前的平台是Windows 10。
发布于 2017-01-30 13:37:48
您的问题是Cmake无法找到llvm-config。要解决这个问题,必须将Cmake指向程序的位置。
您需要编写如下所示的CMakeLists.txt:
cmake_minimum_required(VERSION 3.7)
find_package(LLVM REQUIRED CONFIG)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
execute_process(COMMAND llvm-config --libs core WORKING_DIRECTORY ${LLVM_TOOLS_BINARY_DIR} OUTPUT_VARIABLE x)
message(${x})find_package(LLVM REQUIRED CONFIG)使LLVM特定的Cmake变量可用。
要使用llvm-config,必须将工作目录设置为${LLVM_TOOLS_BINARY_DIR}。
发布于 2017-01-30 12:40:47
我想你是在找execute_process函数。
就你而言:
execute_process(COMMAND llvm-config --libs core OUTPUT_VARIABLE x)
message(${x})execute_process有很多有用的选项,请看一下文档。
https://stackoverflow.com/questions/41936010
复制相似问题