c++ - Buck 是否支持与文件夹同名的标题?

标签 c++ buck

我正在尝试使用 构建 Eigen .不幸的是,Eigen 有一个不寻常的标题结构:

Eigen/src/Cholesky/LLT.h
Eigen/src/Cholesky/LDLT.h
Eigen/src/Cholesky/...
Eigen/src/...
Eigen/Array
Eigen/Cholesky
Eigen/Core
Eigen/...
...

您可以浏览the repo on GitHub .

我需要在导出的 header 中包含 Eigen/CholeskyEigen/Cholesky/LLT.h,但 Buck 认为这是一个冲突:

prebuilt_cxx_library(
  name = 'eigen',
  header_only = True,
  header_namespace = 'Eigen', 
  exported_headers = subdir_glob([
    ('Eigen', '*'),
    ('Eigen/src', '**/*.h'),
  ]), 
  visibility = [
    'PUBLIC',
  ],
)

java.nio.file.FileAlreadyExistsException: .../eigen/buck-out/gen/eigen#default,headers/Eigen/Cholesky

如何在 Buck 中拥有与导出的 header 同名的文件夹和文件?

最佳答案

src 文件夹应该是导出的一部分,试试这个:

prebuilt_cxx_library(
  name = 'eigen',
  header_only = True,
  header_namespace = 'Eigen', 
  exported_headers = subdir_glob([
    ('Eigen', '*'),
    ('Eigen', 'src/**/*.h'),
  ]), 
  visibility = [
    'PUBLIC',
  ],
)

关于c++ - Buck 是否支持与文件夹同名的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42490457/

相关文章:

c++ - 手动 SIMD 代码的可负担性

c++ - 将字符数组转换为整数值

c++ - 使用<filesystem>获取文件的基本名称

android - annotation_processors (buck) 文档

android - Google Play 服务 - SafeParcelable 在哪里?

java - 如何在 Buck 中使用自定义注释处理器?

c++ - C 套接字文件传输损坏的数据

c++ - 在 Buck 中,如何扩展 genrule 输出目录?

c++ - std::fill、std::copy 是否专门用于 std::vector<bool>?