我正在尝试配置vscode来使用CMake工具插件来开发llvm/mlir项目。该项目很大,需要将此配置传递给命令行:
git clone https://github.com/llvm/llvm-project.git
mkdir llvm-project/build
cd llvm-project/build
cmake -G Ninja ../llvm \
-DLLVM_ENABLE_PROJECTS=mlir \
-DLLVM_BUILD_EXAMPLES=ON \
-DLLVM_TARGETS_TO_BUILD="X86;NVPTX;AMDGPU" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_LLD=ON \
-DPYTHON_EXECUTABLE=python3我试图将这些信息添加到.vscode/settings.json中
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm",
"cmake.configureArgs": [
"-DLLVM_ENABLE_PROJECTS=mlir",
"-DLLVM_BUILD_EXAMPLES=ON",
"-DLLVM_TARGETS_TO_BUILD='X86;NVPTX;AMDGPU'",
"-DCMAKE_BUILD_TYPE=Release",
"-DLLVM_ENABLE_ASSERTIONS=ON",
"-DCMAKE_C_COMPILER=clang",
"-DCMAKE_CXX_COMPILER=clang++",
"-DLLVM_ENABLE_LLD=ON",
"-DPYTHON_EXECUTABLE=python3",
]
}但是配置没有成功,而且我的参数似乎没有被检测到。
[main] Configuring folder: llvm-project
[proc] Executing command: /usr/bin/cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/bin/clang-10 -DCMAKE_CXX_COMPILER:FILEPATH=/bin/clang++-10 -H${HOME}/Development/mlir/llvm-project/mlir -B${HOME}/Development/mlir/llvm-project/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] CMake Warning (dev) in CMakeLists.txt:
[cmake] No project() command is present. The top-level CMakeLists.txt file must
[cmake] contain a literal, direct call to the project() command. Add a line of
[cmake] code such as
[cmake]
[cmake] project(ProjectName)
[cmake]
[cmake] near the top of the file, but after cmake_minimum_required().
[cmake]
[cmake] CMake is pretending there is a "project(Project)" command on the first
[cmake] line.
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] -- The C compiler identification is Clang 10.0.0
[cmake] -- The CXX compiler identification is Clang 10.0.0
[cmake] -- Check for working C compiler: /bin/clang-10
[cmake] -- Check for working C compiler: /bin/clang-10 -- works
[cmake] -- Detecting C compiler ABI info
[cmake] -- Detecting C compiler ABI info - done
[cmake] -- Detecting C compile features
[cmake] -- Detecting C compile features - done
[cmake] -- Check for working CXX compiler: /bin/clang++-10
[cmake] -- Check for working CXX compiler: /bin/clang++-10 -- works
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - done
[cmake] -- Detecting CXX compile features
[cmake] -- Detecting CXX compile features - done
[cmake] CMake Warning (dev) at CMakeLists.txt:26 (if):
[cmake] Policy CMP0057 is not set: Support new IN_LIST if() operator. Run "cmake
[cmake] --help-policy CMP0057" for policy details. Use the cmake_policy command to
[cmake] set the policy and suppress this warning.
[cmake]
[cmake] IN_LIST will be interpreted as an operator when the policy is set to NEW.
[cmake] Since the policy is not set the OLD behavior will be used.
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] CMake Error at CMakeLists.txt:26 (if):
[cmake] if given arguments:
[cmake]
[cmake] "NVPTX" "IN_LIST" "LLVM_TARGETS_TO_BUILD"
[cmake]
[cmake] Unknown arguments specified
[cmake]
[cmake]
[cmake] CMake Warning (dev) in CMakeLists.txt:
[cmake] No cmake_minimum_required command is present. A line of code such as
[cmake]
[cmake] cmake_minimum_required(VERSION 3.16)
[cmake]
[cmake] should be added at the top of the file. The version specified may be lower
[cmake] if you wish to support older CMake versions for this project. For more
[cmake] information run "cmake --help-policy CMP0000".
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] -- Configuring incomplete, errors occurred!
[cmake] See also "${HOME}/Development/mlir/llvm-project/build/CMakeFiles/CMakeOutput.log".如何将配置行转换为CMake工具插件可以理解的内容?
编辑:调整错误消息
EDIT2:
修改.vscode/settings.json以使用cmake.configureSettings并不能解决这个问题:
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm",
"cmake.configureSettings": {
"LLVM_ENABLE_PROJECTS" : "mlir",
"LLVM_BUILD_EXAMPLES" : "ON",
"LLVM_TARGETS_TO_BUILD" : "\"X86;NVPTX;AMDGPU\"",
"CMAKE_BUILD_TYPE" : "Release",
"LLVM_ENABLE_ASSERTIONS" : "ON",
"CMAKE_C_COMPILER" : "clang",
"CMAKE_CXX_COMPILER" : "clang++",
"LLVM_ENABLE_LLD" : "ON",
"PYTHON_EXECUTABLE" : "python3",
}
}发布于 2020-09-09 18:37:08
我发现了这个问题/可能的错误。
vscode和CMake工具插件似乎缓存一些文件和,即使删除了构建文件夹(保存CMakeCache.txt),项目也不使用在.vscode/settings.json上修改的新配置参数。
所以,让我的项目开始工作。
我将这个信息添加到.vscode/seetings.json中
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm",
"cmake.configureSettings": {
"LLVM_ENABLE_PROJECTS" : "mlir",
"LLVM_BUILD_EXAMPLES" : "ON",
"LLVM_TARGETS_TO_BUILD" : "X86;NVPTX;AMDGPU",
"CMAKE_BUILD_TYPE" : "Release",
"LLVM_ENABLE_ASSERTIONS" : "ON",
"CMAKE_C_COMPILER" : "clang",
"CMAKE_CXX_COMPILER" : "clang++",
"LLVM_ENABLE_LLD" : "ON",
"PYTHON_EXECUTABLE" : "python3",
}
}吗?
配置是成功的。
现在,您可以使用vscode选择目标。
不幸的是,每次打开vscode时,CMake插件都会触发新的配置,但最好还是在另一个问题/论坛中解决这个问题。
发布于 2021-01-18 12:19:40
在.vscode/seetings.json中,使用数组语法来指定多个选项。例如,
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm",
"cmake.configureSettings": {
//...
"LLVM_TARGETS_TO_BUILD" : ["X86", "NVPTX", "AMDGPU"],
//...
}
}https://stackoverflow.com/questions/63816585
复制相似问题