문제

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.

도움이 되었습니까?

해결책

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.

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top