2015-04-25 3 views
2

Я пытаюсь создать пакет nuget с помощью инструмента CoApp для C++. Пакет должен вставлять 3 папки при компиляции cpp, используя его.Coapp/autopkg: multiple include folders in/build/native/include/

Итак, я хочу внутренний включают структуру следующим образом:

/build/native/include/lib1, /build/native/include/lib2, /build/native/include/lib3

Мой вопрос: как добавить несколько включает папки/сборки/нативный/включить/

I tryied:

Множественные блоки (изменение Lib1, Lib2, lib3):

nestedInclude += 
    { 
     #destination = ${d_include}lib1; 
     ".\lib1\**\*.hpp", ".\lib1\**\*.h" 
    }; 

Множественные блоки (изменение Lib1, Lib2, lib3):

nestedInclude 
    { 
     #destination = ${d_include}lib1; 
     ".\lib1\**\*.hpp", ".\lib1\**\*.h" 
    }; 

но кажется coapp накапливает файлы .h/.hpp между блоками (в зависимости от оператора + = или нет) и в конце концов, добавьте все из них до последнего значения тега #destination. Таким образом, я получаю уникальную запись: /build/native/include/lib3

ответ

3

Пункт назначения переписан в вашем примере, и поэтому вы получаете все на последнем заданном адресе. Для того, чтобы справиться с этим вы можете вместо этого создать несколько вложенных включают,

nested1Include: { 
     #destination = ${d_include}lib1; 
     ".\lib1\**\*.hpp", ".\lib1\**\*.h" 
    } 

    nested2Include: { 
      #destination = ${d_include}lib2; 
      ".\lib2\**\*.hpp", ".\lib2\**\*.h" 
    } 
0

Я просто ударил тот же вопрос, и ответ Gorgar в посадивший меня на правильном пути, спасибо. Но у меня есть еще одна дополнительная информация. У меня был только один базовый каталог, и в этом случае CoApp все еще сплющил все. Хитрость заключается в том, чтобы заставить его думать, что у него два, даже если это не так:

include1: { 
     #destination = ${d_include}NativeLogger; 
     "include\NativeLogger\*.h" 
    }; 

    // The use of a second include spec here which doesn't actually address any files 
    // is to force CoApp to create the substructure of the first include. There is some 
    // discussion on the net about bugginess related to includes structures, but this 
    // seems to fix it. 
    include2: { include\* };