2017-02-27 72 views
2

我想用来构建Eigen。不幸的是,艾根有头的一个不寻常的结构:Buck是否支持与文件夹名称相同的标题?

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,但巴克认为这种冲突:

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:... /本征/降压输出/ gen/eigen#默认,头文件/ Eigen/Cholesky

如何在Buck中使用与导出标题名称相同的文件夹和文件?

回答

3

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

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

为了详细说明,这是一个问题,因为有两个文件在不同的文件夹的名称相同。拥有'src'前缀避免了这一点。 – sdwilsh

相关问题