Buck支持headers文件夹同名吗?
Does Buck support headers with the same name as folders?
我正在尝试使用 buck 构建 Eigen。不幸的是,Eigen 有一个不寻常的结构 headers:
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。
我需要在导出的 headers 中包含 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 中拥有与导出 headers 同名的文件夹和文件?
src 文件夹应该是导出的一部分,试试这个:
prebuilt_cxx_library(
name = 'eigen',
header_only = True,
header_namespace = 'Eigen',
exported_headers = subdir_glob([
('Eigen', '*'),
('Eigen', 'src/**/*.h'),
]),
visibility = [
'PUBLIC',
],
)
我正在尝试使用 buck 构建 Eigen。不幸的是,Eigen 有一个不寻常的结构 headers:
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。
我需要在导出的 headers 中包含 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 中拥有与导出 headers 同名的文件夹和文件?
src 文件夹应该是导出的一部分,试试这个:
prebuilt_cxx_library(
name = 'eigen',
header_only = True,
header_namespace = 'Eigen',
exported_headers = subdir_glob([
('Eigen', '*'),
('Eigen', 'src/**/*.h'),
]),
visibility = [
'PUBLIC',
],
)