Coapp / autopkg: несколько папок включения в / build / native / include /

Я пытаюсь собрать пакет nuget с помощью инструмента CoApp для C ++.
Пакет должен включать 3 папки при компиляции cpp с его использованием.

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

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

Мой вопрос: как добавить несколько папок include в / build / native / include /

Я попробовал:

Несколько блоков (варьирующихся 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

2

Решение

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

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

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

Другие решения

Я только что затронул ту же проблему, и ответ Горгара поставил меня на правильный путь, спасибо. Но у меня есть еще одна дополнительная информация. Я только имел один базовый каталог, и в этом случае 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\* };
0

По вопросам рекламы [email protected]