Как установить свойство для вывода команды в msbuild / xbuild - PullRequest
1 голос
/ 21 апреля 2010

В msbuild / xbuild я хотел бы иметь свойство "libPath", которое можно переопределить в командной строке, используя /p:libpath="/path/to/all/libs". Но когда это свойство не определено, я хочу вызвать pkg-config --retrieve-Path somePackage, чтобы получить текущий системный путь.

Я думал, что здесь Мне нужно, чтобы выходные данные команды были сохранены в свойстве.
Команда всегда возвращает одну строку вывода.

Я пробовал что-то вроде

<PropertyGroup>
  <LibPath />
</PropertyGroup>

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

Но это не сработало.

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Вы не можете сделать это, используя exec, потому что задача Exec не может собрать выходные данные инструмента или команды, которую она запускает.

Вам нужно написать пользовательскую задачу msbuild, которая вызывает pkg-config, и собрать этот вывод в свойстве.

0 голосов
/ 22 апреля 2010

У меня были идеи о том, как этого добиться.
Я создал пользовательскую задачу xbuild / msbuild, чтобы просто выполнить данную команду и сделать вывод пригодным для использования.
Результаты можно посмотреть здесь .

...