Поддерживает ли 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/...
...

Вы можете просмотреть репо на 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?

1 ответ

Решение

Папка src должна быть частью экспорта, попробуйте это:

prebuilt_cxx_library(
  name = 'eigen',
  header_only = True,
  header_namespace = 'Eigen', 
  exported_headers = subdir_glob([
    ('Eigen', '*'),
    ('Eigen', 'src/**/*.h'),
  ]), 
  visibility = [
    'PUBLIC',
  ],
)
Другие вопросы по тегам