views:

69

answers:

2

In msbuild/xbuild I'd like to have a "libPath" property which can be ovveridden on the commandline using /p:libpath="/path/to/all/libs". But when this property is undefined I want to call pkg-config --retrieve-Path somePackage to get the current systems path.

I thought like here I need the output of a command to be stored in a Property.
The command always returns one line of output.

I have tryied something like

<PropertyGroup>
  <LibPath />
</PropertyGroup>

<Task ....>
  <Exec Command="pkg-config --retrieve-Path somePackage"
        Condition="$(LibPath)' == ''">
   <OutputTaskParameter="output"
          PropertyName="LibPath" />
  </Exec>
</Task>

But that didn't work.

A: 

You can't do that using exec because the Exec task cannot gather output from the tool or command that it runs.

You'll have to write a custom msbuild task that calls pkg-config and gather this output in a property.

madgnome
That's what I feared. Thanks
Nils
A: 

I had some Ideas on how to achieve this.
I created an xbuild/msbuild custom task to simply execute a given command and make the output usable.
The results can be viewed here.

Nils