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

时间:2017-02-27 16:10:14

标签: 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

我需要在导出的标头中加入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中拥有与导出标题同名的文件夹和文件?

1 个答案:

答案 0 :(得分:3)

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

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