Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top