如何使用 conan Cmake 助手实现 Cmake -C 选项

问题描述

现在我像这样使用 cmake:

cmake .. -C pathToMyFile

我想使用 Conan Cmake 助手配置 cmake,以便在我的 conanfile.py 中拥有

cmake=CMake(self)
cmake.configure()

我怎样才能告诉 Cmake 预加载我的脚本以填充缓存。我试过了

cmake.configure(args="-C mypath")

但这没有用。谢谢!

解决方法

你为什么需要它? CMake 助手使用它自己的缓存,您不需要配置任何额外的东西。除此之外,您可以重复使用相同的 CMake 对象,以避免调用两次。

正确的流程是:

def _configure_cmake(self):
   if self._cmake:
       return self._cmake
   self._cmake = CMake(self)
   self._cmake.definitions["BUILD_TESTING"] = False
   self._cmake.configure() # it runs cmake <build_folder> -DBUILD_TESTING=False ...
   return self._cmake

def build(self):
   cmake = self._configure_cmake()
   cmake.build() # it runs cmake --build .

def package(self):
   cmake = self._configure_cmake()
   cmake.install()  # it runs cmake --build . --target install
 

另外,CMake args 不是字符串,而是列表,很好 documented,因此,您必须通过:

cmake.configure(args=["-C","mypath"])