Я использую CMake, CPack и Wix. CPack генерирует файлы:
- directoryies.wxs,
- files.wxs,
- main.wxs,
- и другие ...
Я знаю, что могу использовать Wix Patch для изменения файлов, сгенерированных CPack, например, Wix Patch следующим образом:
<CPackWiXPatch>
<CPackWiXFragment Id="CM_DP_lib">
<Component Id="EnvPath" Guid="">
<CreateFolder />
<Environment Action="set" Id="PathEnv" Name="MY_ENV_VAR" Separator=";" System="yes" Value="[INSTALL_ROOT]/lib"/>
</Component>
</CPackWiXFragment>
<CPackWiXFragment Id="#PRODUCTFEATURE">
<ComponentRef Id="EnvPath" />
</CPackWiXFragment>
</CPackWiXPatch>
Приведет к измененным каталогам. Wxs
<Directory Id="CM_DP_lib" Name="lib">
<Component Guid="1fe759ee-2691-47a7-b0b3-aef2137a8c78" Id="EnvPath">
<CreateFolder/>
<Environment Action="set" Id="UObjectPathEnv" Name="MY_ENV_VAR" Separator=";" System="yes" Value="[INSTALL_ROOT]lib"/>
</Component>
В этом случае мне пришлось явно указать, к какому элементу (CM_DP_lib) я хочу добавить элемент (EnvPath). Есть ли способ добавить элементы ко всем файлам или каталогам, перечисленным в files.wxs, directoryies.wxs?