summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames H. Hill <hilljh82@gmail.com>2010-05-17 06:45:46 +0000
committerJames H. Hill <hilljh82@gmail.com>2010-05-17 06:45:46 +0000
commit05b800c0cea4220dac124e2ba13085549ca8432d (patch)
tree8d67838b0ffe697c88a657743bf32a2fb2148fc3
parent8185791147a3402c373298aa2970eb3c04453571 (diff)
downloadMPC-05b800c0cea4220dac124e2ba13085549ca8432d.tar.gz
Mon May 17 06:43:59 UTC 2010 James H. Hill <hillj at cs dot iupui dot edu>
-rw-r--r--ChangeLog12
-rw-r--r--modules/WixWorkspaceCreator.pm2
-rw-r--r--templates/wix.mpd125
-rw-r--r--templates/wix.mpt2
4 files changed, 98 insertions, 43 deletions
diff --git a/ChangeLog b/ChangeLog
index fb0877b2..f86181d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Mon May 17 06:43:59 UTC 2010 James H. Hill <hillj at cs dot iupui dot edu>
+
+ * modules/WixWorkspaceCreator.pm:
+ * templates/wix.mpd:
+ * templates/wix.mpt:
+
+ Updated Wix workspace/project generator to support installation
+ of the following:
+
+ . files in subdirectories
+ . gme paradigms
+
Sat Apr 24 23:40:57 UTC 2010 Chad Elliott <elliott_c@ociweb.com>
* config/bison.mpb:
diff --git a/modules/WixWorkspaceCreator.pm b/modules/WixWorkspaceCreator.pm
index ff4e478e..5ea4fe0a 100644
--- a/modules/WixWorkspaceCreator.pm
+++ b/modules/WixWorkspaceCreator.pm
@@ -70,7 +70,7 @@ sub post_workspace {
$self->get_workspace_name(), '">', $crlf;
foreach my $project ($self->sort_dependencies($self->get_projects())) {
- print $fh ' <ComponentRef Id="',
+ print $fh ' <ComponentGroupRef Id="ComponentGroup.',
$$info{$project}->[0], '" />', $crlf;
}
diff --git a/templates/wix.mpd b/templates/wix.mpd
index 4986b66f..c3a357f4 100644
--- a/templates/wix.mpd
+++ b/templates/wix.mpd
@@ -2,73 +2,118 @@
<Include>
<%marker(top)%>
<Fragment Id="<%project_name%>">
-<%if(sharedname || exename || install_location)%>
+ <ComponentGroup Id="ComponentGroup.<%project_name%>">
+<%if(!no_binary)%>
+ <ComponentRef Id="<%project_name%><%foreach(name, install_location)%>.<%name%><%endfor%>.<%if(type_is_dynamic)%><%sharedname%>.dll<%else%><%exename%>.exe<%endif%>" />
+<%endif%>
+<%if(gme_install)%>
+ <ComponentRef Id="gme.component.<%gme_progid%>" />
+<%endif%>
+<%if(gme_paradigm)%>
+ <ComponentRef Id="gme.paradigm.<%paradigm_name%>" />
+<%endif%>
+<%if(install_resources)%>
+<%foreach(resource_files)%>
+ <ComponentRef Id="<%project_name%><%foreach(name, install_location)%>.<%name%><%endfor%>.<%normalize(resource_file)%>" />
+<%endfor%>
+<%endif%>
+<%foreach(components)%>
+ <ComponentRef Id="<%component%>" />
+<%endfor%>
+ </ComponentGroup>
+
<DirectoryRef Id="INSTALLDIR">
+<%marker(component_top)%>
+<%if(!no_binary)%>
<%foreach(name, install_location)%>
- <Directory Id="<%project_name%>.<%name%>" Name="<%name%>">
+ <Directory Id="<%project_name%>.binary.<%forcount%>.<%name%>" Name="<%name%>">
<%endfor%>
-
- <Component Id="<%project_name%>" Guid="<%guid%>">
-<%marker(component_top)%>
-<%if(install_binary)%>
- <File Id="file.<%project_name%>" Name="<%if(type_is_dynamic)%><%sharedname%>.dll<%else%><%exename%>.exe<%endif%>"
+ <Component Id="<%project_name%><%foreach(name, install_location)%>.<%name%><%endfor%>.<%if(type_is_dynamic)%><%sharedname%>.dll<%else%><%exename%>.exe<%endif%>" Guid="*">
+ <File Name="<%if(type_is_dynamic)%><%sharedname%>.dll<%else%><%exename%>.exe<%endif%>"
Source="<%source_directory%>/<%if(type_is_dynamic)%><%sharedname%>.dll<%else%><%exename%>.exe<%endif%>"
DiskId="<%diskid(1)%>" />
+ </Component>
+<%foreach(name, install_location)%>
+ </Directory>
+<%endfor%>
<%endif%>
<%if(install_resources)%>
<%foreach(resource_files)%>
- <File Id="file.resource.<%resource_file%>" Name="<%resource_file%>"
+<%foreach(name, install_location)%>
+ <Directory Id="<%project_name%>.<%normalize(resource_file)%>.<%forcount%>.<%name%>" Name="<%name%>">
+<%endfor%>
+ <Component Id="<%project_name%><%foreach(name, install_location)%>.<%name%><%endfor%>.<%normalize(resource_file)%>" Guid="*">
+ <File Name="<%basename(resource_file)%>"
Source="<%full_path(resource_file)%>"
DiskId="<%diskid(1)%>" />
-
+ </Component>
+<%foreach(name, install_location)%>
+ </Directory>
+<%endfor%>
<%endfor%>
<%endif%>
<%if(gme_install)%>
-
- <!-- registry information for GME component -->
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\GME\Components\<%gme_progid%>" Action="createAndRemoveOnUninstall">
- <RegistryValue Name="Description" Type="string" Value="<%gme_description%>" Action="write" />
+ <Component Id="gme.component.<%gme_progid%>" Guid="<%gme_uuid%>">
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\GME\Components\<%gme_progid%>" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="Description" Type="string" Value="<%gme_description%>" Action="write" />
<%if(gme_has_icon)%>
- <RegistryValue Name="Icon" Type="string" Value="<%gme_icon(,IDI_COMPICON)%>" Action="write" />
+ <RegistryValue Name="Icon" Type="string" Value="<%gme_icon(,IDI_COMPICON)%>" Action="write" />
<%endif%>
- <RegistryValue Name="Paradigm" Type="string" Value="<%foreach(gme_paradigms)%><%gme_paradigm%><%fornotlast(",")%><%endfor%>" Action="write" />
- <RegistryValue Name="Tooltip" Type="string" Value="<%gme_tooltip%>" Action="write" />
- <RegistryValue Name="Type" Type="integer" Value="<%gme_component_type(1)%>" Action="write" />
- </RegistryKey>
+ <RegistryValue Name="Paradigm" Type="string" Value="<%foreach(gme_paradigms)%><%gme_paradigm%><%fornotlast(",")%><%endfor%>" Action="write" />
+ <RegistryValue Name="Tooltip" Type="string" Value="<%gme_tooltip%>" Action="write" />
+ <RegistryValue Name="Type" Type="integer" Value="<%gme_component_type(1)%>" Action="write" />
+ </RegistryKey>
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\GME\Components\<%gme_progid%>\Associated" Action="create">
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\GME\Components\<%gme_progid%>\Associated" Action="create">
<%foreach(gme_paradigms)%>
- <RegistryValue Name="<%gme_paradigm%>" Type="string" Action="write" Value="" />
+ <RegistryValue Name="<%gme_paradigm%>" Type="string" Action="write" Value="" />
<%endfor%>
- </RegistryKey>
+ </RegistryKey>
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\<%gme_progid%>" Action="createAndRemoveOnUninstall">
- <RegistryValue Type="string" Value="<%gme_description%>" />
- </RegistryKey>
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\<%gme_progid%>" Action="createAndRemoveOnUninstall">
+ <RegistryValue Type="string" Value="<%gme_description%>" />
+ </RegistryKey>
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\<%gme_progid%>\CLSID" Action="create">
- <RegistryValue Type="string" Value="{<%gme_uuid%>}" />
- </RegistryKey>
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\<%gme_progid%>\CLSID" Action="create">
+ <RegistryValue Type="string" Value="{<%gme_uuid%>}" />
+ </RegistryKey>
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\CLSID\{<%gme_uuid%>}" Action="createAndRemoveOnUninstall">
- <RegistryValue Type="string" Value="<%gme_description%>" />
- </RegistryKey>
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\CLSID\{<%gme_uuid%>}" Action="createAndRemoveOnUninstall">
+ <RegistryValue Type="string" Value="<%gme_description%>" />
+ </RegistryKey>
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\CLSID\{<%gme_uuid%>}\InProcServer32" Action="create">
- <RegistryValue Type="string" Value="[INSTALLDIR]<%foreach(name, install_location)%><%name%>\\<%endfor%><%sharedname%>.dll" />
- </RegistryKey>
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\CLSID\{<%gme_uuid%>}\InProcServer32" Action="create">
+ <RegistryValue Type="string" Value="[INSTALLDIR]<%foreach(name, install_location)%><%name%>\<%endfor%><%sharedname%>.dll" />
+ </RegistryKey>
- <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\CLSID\{<%gme_uuid%>}\ProgID" Action="create">
- <RegistryValue Type="string" Value="<%gme_progid%>" />
- </RegistryKey>
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\Classes\CLSID\{<%gme_uuid%>}\ProgID" Action="create">
+ <RegistryValue Type="string" Value="<%gme_progid%>" />
+ </RegistryKey>
+ </Component>
<%endif%>
-<%marker(component_bottom)%>
- </Component>
+<%if(gme_paradigm)%>
<%foreach(name, install_location)%>
- </Directory>
+ <Directory Id="<%project_name%>.<%paradigm_name%>.<%forcount%>.<%name%>" Name="<%name%>">
+<%endfor%>
+ <Component Id="gme.paradigm.<%paradigm_name%>" Guid="<%paradigm_guid%>">
+ <File Name="<%paradigm_file%>"
+ Source="<%full_path(paradigm_file)%>"
+ DiskId="<%diskid(1)%>" />
+
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\GME\Paradigms\<%paradigm_name%>" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="CurrentVersion" Type="string" Value="{<%paradigm_guid%>}" Action="write" />
+ </RegistryKey>
+
+ <RegistryKey Root="<%gme_register(HKLM)%>" Key="SOFTWARE\GME\Paradigms\<%paradigm_name%>\{<%paradigm_guid%>}" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="ConnStr" Type="string" Value="MGA=[INSTALLDIR]<%foreach(name, install_location)%><%name%>\<%endfor%><%paradigm_file%>" />
+ </RegistryKey>
+ </Component>
+<%foreach(name, install_location)%>
+ </Directory>
<%endfor%>
- </DirectoryRef>
<%endif%>
+<%marker(component_bottom)%>
+ </DirectoryRef>
</Fragment>
<%marker(bottom)%>
</Include>
diff --git a/templates/wix.mpt b/templates/wix.mpt
index 118f5fa0..300ea4b2 100644
--- a/templates/wix.mpt
+++ b/templates/wix.mpt
@@ -2,5 +2,3 @@
// $Id$
conditional_include "common"
-
-install_binary = 1