创建柯南包而不复制源

时间:2019-09-03 08:14:02

标签: conan

我有一个约400MB的相当大的代码库,包含46k文件(历史原因)。调用issecsApart <- function(d_cor) { secs <- 0 keeps <- c() for (d in d_cor) { if (d >= secs + 15) { secs <- d keeps <- c(keeps, TRUE) } else { keeps <- c(keeps, FALSE) } } keeps } d_cor2 <- d_cor %>% arrange(Time) %>% filter(issecsApart(Time)) 会花费15分钟以上的时间,大部分时间都是在复制文件。直接调用cmake只需约20秒。

我现在想禁止使用no_copy_source进行复制,但是除非经过绝对路径,否则cmake找不到源文件。

我想念什么?

conan create

1 个答案:

答案 0 :(得分:0)

您什么都不丢失。

属性no-copy-source告诉柯南不要将任何文件复制到构建文件夹。运行conan create时,柯南将从build_folder构建所有文件。这就是为什么cmake找不到这些文件的原因。

由于您的存储库很大,因此需要将源文件夹传递给CMake configure:

def _configure_cmake(self):
    cmake = CMake()
    cmake.configure(source_dir=self.source_folder)
    return cmake

def build(self):
    cmake = self._configure_cmake()
    cmake.build()

def package(self):
    # if cmake file has install() configured
    cmake = self._configure_cmake()
    cmake.install()

    # of copy directly
    self.copy("*.lib", dst="lib", src=os.path.join(self.source_folder, "lib"))

如您所见,现在已经正确配置了源文件夹,包括在打包时。