强制 CMake 将 MSVC 与忍者一起使用

Force CMake to use MSVC with Ninja

我正在尝试在 64 位 Windows 上编译 aseprite 并使用 CMake 和 Ninja 编译它

当我在 运行 CMake 时,我看到它正在使用 MINGW64 来制作构建文件,尽管提到不支持 MinGW。我试着写 -DCMAKE_IGNORE_PATH=C:\MinGW\bin 但它似乎忽略了它,当 运行 ninja aseprite 我得到一个错误

一代:

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\deps\skia -DSKIA_LIBRARY_DIR=C:\deps\skia\out\Release-x64 -DCMAKE_IGNORE_PATH=C:\mingw64\bin -G Ninja ..

我检查过,所有依赖项都存在

错误:

FAILED: bin/modp_b64_gen.exe
cmd.exe /C "cd . && C:\mingw64\bin\gcc.exe -O2 -g -DNDEBUG   laf/third_party/CMakeFiles/modp_b64_gen.dir/stringencoders/src/arraytoc.c.obj laf/third_party/CMakeFiles/modp_b64_gen.dir/stringencoders/src/modp_b64_gen.c.obj  -o bin\modp_b64_gen.exe -Wl,--out-implib,lib\libmodp_b64_gen.dll.a -Wl,--major-image-version,0,--minor-image-version,0  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 wsock32.lib ws2_32.lib && cd ."
gcc.exe: error: wsock32.lib: No such file or directory
gcc.exe: error: ws2_32.lib: No such file or directory
[563/1514] Building CXX object third_party/harfbuzz/CMakeFiles/harfbuzz.dir/src/hb-ot-layout.cc.obj
ninja: build stopped: subcommand failed.

我在github上看到一个issue,解决办法是从GCC改成MSVC,但是没有提到如何强制MSVC进行生成过程。 当我从 PATH 中删除 mingw64 时,它仍然以某种方式找到它,如果我删除该文件夹,它会抛出找不到 GCC 的错误。

如何在 CMake 上强制使用 MSVC?

我通过将环境变量 CC 更改为 cl

来解决这个问题
set CC=cl