Reputation: 389
I am using cmake
and cpack
and wix
to build and deploy my project. The installer has some properties that user can enter via GUI or MSI-command-line options.
I set default property values in my CMakeLists.txt
using:
set(CPACK_WIX_PROPERTY_<PROPERTY> <value>)
The problem is that if I change these values, I should rerun cmake
command before cpack
command.
I am looking for a way to change default value of these properties without need for rerunning cmake
.
I tried adding additional wxs
files using CPACK_WIX_EXTRA_SOURCES
or patching generated files with additional xml
files using CPACK_WIX_PATCH_FILE
, but couldn't find the right code to put in wxs
or xml
files to accomplish my goal.
I tried The SetProperty
command and found out its behavior is not easy to control, I gave up when I saw the user provided values don't replace the initial values and suggested solution at https://web.archive.org/web/20180205001358/http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Unable-to-override-SetProperty-value-with-Edit-Control-value-td7591569.html didn't work. I hope there is a simple way, but even a complex answer using SetProperty
is allright.
Upvotes: 0
Views: 696
Reputation: 66089
I am looking for a way to change default value of these properties without need for rerunning
cmake
.
A script specified in CPACK_PROJECT_CONFIG_FILE variable is the one, which affects on CPack, but which changing doesn't require cmake
to re-run. So you may place setting of CPACK_WIX_PROPERTY_<PROPERTY>
here: Changing this setting would require only to re-run CPack without re-run cmake
on the main project.
Also, when the script specified in CPACK_PROJECT_CONFIG_FILE
variable is parsed, CPACK_GENERATOR
variable contains the exact CPack generator which is currently processed. This opposites to behavior of the variable inside CMakeLists.txt
, when it contains a list of generators.
Upvotes: 1