Cygwin+conan+cmake:如何强制使用忍者



我安装了带有pythoncmakeNinja软件包的Cygwin。然后我安装了柯南(按照建议-使用pip)。现在,当我尝试使用最小conanfile.txt:的柯南时

[requires]
bzip2/1.0.8

失败

CMake错误:无法创建命名生成器MinGW Makefiles

(完整日志粘贴在下面)。

我有回避MinGW的理由,所以问题是:如何迫使conan+cmake使用忍术而不是"MinGW Makefiles"??

试着按照建议在这里设置,没有运气。

$conan install-pr clang--build=bzip2配置:[settings]arch=x86_64 arch_build=x8_64 build_type=发布编译器=clangcompiler.cppstd=17 compiler.libcxx=libc++编译器版本=14os=Windows os_build=Windows[选项][构建要求][环境]CONAN_CMAKE_GENERATOR=Ninja bzip2/1.0.8:从源代码强制构建conanfile.txt:安装软件包要求bzip2/1.0.8来自"conancenter"-缓存来自"conancenter"的cmake/3.24.0-缓存包bzip2/1.0.8:fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0-内部版本cmake/32.40:0a420ff5c47119e668867cdb51baff0eca1fdb68-缓存

正在安装(下载、生成)二进制文件。。。bzip2/1.0.8:警告:生成文件夹已损坏,正在将其删除:/home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0bzip2/1.0.8:将源代码复制到构建文件夹bzip2/1.0.8:构建您的包裹/home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0bzip2/1.0.8:Generator txt创建了conanbuildinfo.txt bzip2/1.0.8:调用generate()bzip2/1.0.8:WARN:使用新的工具链和生成器而不指定生成配置文件(例如:-pr:b=default)气馁,可能导致失败和意外行为bzip2/1.0.8:聚合env生成器bzip2/1.0.8:调用build()bzip2/1.0.8:CMake命令:CMake-G";MinGW Makefiles";-DCMAKE_TOOLCHAIN_FILE="/home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0/build/generners/conan_toolchain.cmake";-DCMAKE_ INSTALL_PREFIX="/home/user/.conan/data/bzip2/1.0.8///package/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0";-DCMAKE_POLICY_DEFAULT_CMP0091=";NEW"-BUILD_TYPE=;释放"home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0/src/"CMake错误:无法创建命名生成器MinGW Makefiles

发电机

  • Unix生成文件=生成标准的Unix生成文件。Ninja=生成build.Ninja文件。忍者Multi-Config=生成内部版本的.ninja文件
    CodeBlocks-Ninja=生成CodeBlocks项目文件
    CodeBlocks-Unix Makefiles=生成CodeBlocks项目文件
    CodeLite-Ninja=生成CodeLite项目文件
    CodeLite-Unix Makefiles=生成CodeLite项目文件
    Eclipse CDT4-Ninja=生成Eclipse CDT 4.0项目文件。Eclipse CDT4-Unix Makefiles=生成Eclipse CDT 4.0项目文件。Kate-Ninja=生成Kate项目文件。Kate-Unix Makefiles=生成Kate项目文件。Sublime Text 2-Ninja=生成Sublime Text2项目文件。Sublime Text 2-Unix Makefiles=生成Sublime Text 2项目文件

bzip2/1.0.8:bzip2/1.0.8:错误:包"fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0"生成失败bzip2/1.0.8:警告:构建文件夹/home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0/build/发布错误:bzip2/1.1.8:build()方法错误,第69行cmake.configure(build_script_folder=os.path.join(self.source_folder,os.pardir))ConaException:执行cmake-G"时出现错误1;工具链Makefiles";-DCMAKE_TOOLCHAIN_FILE="/home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0/build/generners/conan_toolchain.cmake";-DCMAKE_ INSTALL_PREFIX="/home/user/.conan/data/bzip2/1.0.8///package/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0";-DCMAKE_POLICY_DEFAULT_CMP0091=";NEW"-BUILD_TYPE=;释放"home/user/.conan/data/bzip2/1.0.8///build/fa16798f9daa5b15fd5cb2fcd5a5d39b602801a0/src/">

conan处于v1&v2,这里有3个解决方案,每个解决方案都适用于conan v1&v2配方:

全球强制忍者生成器:

<user_home>/.conan:中

  • conan.conf中:
[general]
cmake_generator = Ninja
  • 如果文件global.conf还不存在,请创建该文件,并添加:
tools.cmake.cmaketoolchain:generator=Ninja

从配置文件强制忍者:

在您的配置文件中(通常在<user_home>/.conan/profiles文件夹中),添加:

[env]
CONAN_CMAKE_GENERATOR=Ninja # for conan v1 recipes
[conf]
tools.cmake.cmaketoolchain:generator=Ninja # for conan v2 recipes

在conan命令中按需强制使用忍者:

conan install <path/to/conanfile> -e CONAN_CMAKE_GENERATOR=Ninja -c tools.cmake.cmaketoolchain:generator=Ninja

最新更新