Frank Kaaijk
Frank Kaaijk

Reputation: 283

Create c++ NuGet package with nested include folders

I'm trying to package a toolkit for C++ where the include files are spread over several folders, like so: Includes - cen_dcm -dcmnet -ofstd -dcmdata

Inside the nuspec is: include: { ${SDK_Base}\cen_dcm\**\*.h };

With this package deployed I get the include files in the following location: ..\packages\DCMTK.3.42.0.0\build\native\include including subfolders.

When I use the including the IntelliSense has no problems finding it, but if that include file includes something from a different folder it fails to find it.

So I use: #include"dcmnet/assoc.h" which works just fine, but when compiling assoc.h it reports it cannot find osconfig.h

That file is in the package but in the ofstd folder. Normally I'd solve that by adding additional includes, but since this is a package I don't want that.

What am I missing? I can't imagine that support for something so basic is lacking?

Upvotes: 0

Views: 352

Answers (1)

Frank Kaaijk
Frank Kaaijk

Reputation: 283

To answer my own question. You can add {targets} to your autopkg file.

It looks like this:

targets {
      Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm";
      Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\config";
      Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\dcmtls";
      Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\dcmdata";
      Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\dcmnet";
      Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\ofstd";
   }

This additional include folders will show up in the of your package.targets file.

There are more possibilities using {targets}. See http://coapp.org/reference/autopackage-ref.html

Upvotes: 1

Related Questions