diff --git a/SConstruct b/SConstruct index 7533e0341..5435a7ef0 100644 --- a/SConstruct +++ b/SConstruct @@ -917,6 +917,8 @@ if 'msi' in COMMAND_LINE_TARGETS: wxs_target = env.Command(pjoin('build', 'wix', 'cantera.wxs'), [], build_wxs) env.AlwaysBuild(wxs_target) + + env.Append(WIXLIGHTFLAGS=['-ext', 'WixUIExtension']) msi_target = env.WiX('cantera.msi', [pjoin('build', 'wix', 'cantera.wxs')]) env.Depends(wxs_target, installTargets) diff --git a/platform/windows/License.rtf b/platform/windows/License.rtf new file mode 100644 index 000000000..6461b9d15 Binary files /dev/null and b/platform/windows/License.rtf differ diff --git a/site_scons/wxsgen.py b/site_scons/wxsgen.py index 008f1a01e..a72b4d3ad 100644 --- a/site_scons/wxsgen.py +++ b/site_scons/wxsgen.py @@ -100,16 +100,45 @@ def make_wxs(stageDir, outFile): instdir = Directory(pfiles, 'INSTALLDIR', 'Cantera') # Features - complete = et.SubElement(product, 'Feature', dict(Id='Complete', Level='1')) + core = et.SubElement(product, 'Feature', + dict(Id='Core', Level='1', + Title='Cantera', + Description='Cantera base files', + Display='expand', + ConfigurableDirectory='INSTALLDIR', + AllowAdvertise='no', + Absent='disallow')) + devel = et.SubElement(product, 'Feature', + dict(Id='DevTools', Level='1000', + Title='Develpment Tools', + Description='Header files and static libraries needed to develop applications that use Cantera.', + Display='expand', + AllowAdvertise='no')) + extras = et.SubElement(product, 'Feature', + dict(Id='Extras', Level='1', + Title='Extras', + Description='Demos, tutorials and templates which show you some ways of using Cantera.', + Display='expand', + AllowAdvertise='no')) # Files - includes = addDirectoryContents(stageDir, 'include', instdir, complete) - binaries = addDirectoryContents(stageDir, 'bin', instdir, complete) - lib_dir = addDirectoryContents(stageDir, 'lib', instdir, complete) - data_dir = addDirectoryContents(stageDir, 'data', instdir, complete) - demos_dir = addDirectoryContents(stageDir, 'demos', instdir, complete) - templates_dir = addDirectoryContents(stageDir, 'templates', instdir, complete) - tutorials_dir = addDirectoryContents(stageDir, 'tutorials', instdir, complete) + includes = addDirectoryContents(stageDir, 'include', instdir, devel) + binaries = addDirectoryContents(stageDir, 'bin', instdir, core) + lib_dir = addDirectoryContents(stageDir, 'lib', instdir, devel) + data_dir = addDirectoryContents(stageDir, 'data', instdir, core) + demos_dir = addDirectoryContents(stageDir, 'demos', instdir, extras) + templates_dir = addDirectoryContents(stageDir, 'templates', instdir, extras) + tutorials_dir = addDirectoryContents(stageDir, 'tutorials', instdir, extras) + + # Wix UI + et.SubElement(product, 'UIRef', dict(Id='WixUI_FeatureTree')) + et.SubElement(product, 'UIRef', dict(Id='WixUI_ErrorProgressText')) + et.SubElement(product, 'Property', dict(Id='WIXUI_INSTALLDIR', + Value='INSTALLDIR')) + + # License + et.SubElement(product, 'WixVariable', + dict(Id='WixUILicenseRtf', Value='platform/windows/License.rtf')) # Format and save as XML indent(wix)