Я пытаюсь построить Эйген с доллар. К сожалению, Eigen имеет необычную структуру заголовков:
Eigen/src/Cholesky/LLT.h
Eigen/src/Cholesky/LDLT.h
Eigen/src/Cholesky/...
Eigen/src/...
Eigen/Array
Eigen/Cholesky
Eigen/Core
Eigen/...
...
Вы можете просматривать репо на GitHub.
Мне нужно включить Eigen/Cholesky
а также Eigen/Cholesky/LLT.h
в экспортированных заголовках, но Бак считает это конфликтом:
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, заголовки / Eigen / Cholesky
Как я могу иметь папки и файлы с тем же именем, что и экспортируемые заголовки в Buck?
папка src должна быть частью экспорта, попробуйте это:
prebuilt_cxx_library(
name = 'eigen',
header_only = True,
header_namespace = 'Eigen',
exported_headers = subdir_glob([
('Eigen', '*'),
('Eigen', 'src/**/*.h'),
]),
visibility = [
'PUBLIC',
],
)
Других решений пока нет …