我正在尝试使用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/Cholesky
和Eigen/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中拥有与导出标题同名的文件夹和文件?
答案 0 :(得分:3)
src文件夹应该是导出的一部分,试试这个:
prebuilt_cxx_library(
name = 'eigen',
header_only = True,
header_namespace = 'Eigen',
exported_headers = subdir_glob([
('Eigen', '*'),
('Eigen', 'src/**/*.h'),
]),
visibility = [
'PUBLIC',
],
)