2017-02-27 6 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 # default, headers/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