Pergunta

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.

Foi útil?

Solução

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.

Outras dicas

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top