wixgem 0.12.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c8e8fb29b1fc8de53b616aba90c7f17bbb4aa98
4
- data.tar.gz: 2d1972ee40cc27cf799ec8edf183ade5f8e20f8b
3
+ metadata.gz: b5174286911b527edb1ecfe405dab9e3242eda68
4
+ data.tar.gz: 39fd107b670ed0f722cbf425cf331e2b74014c82
5
5
  SHA512:
6
- metadata.gz: ce636502fc7010954fea869c9dc99ac9da597ccd87157d4e6a6fc9c0a5be47a4d989307073859025cb2f02b609e10244b160eaa08fe7bc80c4220334b52b9610
7
- data.tar.gz: 3441d8c1a073ecaf32530d96bf68310e2e25a6b9af9f7eab5418d98c8deab864a5e15ba8121dbb93ad54a05ae2e9f95777b6c6821be821aa0c13cd96ad521673
6
+ metadata.gz: f6a5cddb4c2117cf7799ee6e8c9660775d2e6535bfd70ddde903df95a47952fabebd4e52cd614bda1c65186ed0000f09d5c51d17fa3b9c93700c839f86f10251
7
+ data.tar.gz: 4b61a8e3df54eb39ba1d97adebad02acdf2b648cc3f0c95c90c62353cbce84160358bdaa12812c056fba6e54ec17c3570519e52840d21997647d0f96ddb68a36
data/README.md CHANGED
@@ -9,6 +9,22 @@ wixgem can be installed by the single command
9
9
  ## Usage
10
10
  The wix toolset must be installed.
11
11
 
12
+ ## Simple usage
13
+
14
+ ``
15
+ require 'wixgem'
16
+
17
+ WIX_TOOLSET_ROOT='path to root of Wix toolset'
18
+ Wix.install_path = WIX_TOOLSET_ROOT
19
+
20
+ # Installation example
21
+ Wix.make_installation('wixgem_install_test1.msi', ['rakefile.rb']])
22
+
23
+ # Mergemodule example
24
+ Wix.make_mergemodule('wixgem_install_test1.msi', ['rakefile.rb']])
25
+ ```
26
+
27
+
12
28
  In a rakefile define an installation task:
13
29
 
14
30
  ```
data/lib/wixgem.rb CHANGED
@@ -1,17 +1,22 @@
1
1
  require 'fileutils'
2
2
  require 'SecureRandom'
3
+ require 'tmpdir.rb'
3
4
 
4
5
  class Wix
5
- def self.install_path=(value)
6
- raise "WIX path '#{value}' does not exist" unless(Dir.exists?(value))
7
- @install_path = value
6
+ def self.install_path=(path)
7
+ @install_path = path
8
8
  end
9
-
10
9
  def self.install_path
11
- @install_path = ENV['WIX'] if(@install_path.nil?)
12
- return @install_path
10
+ return @install_path
13
11
  end
14
-
12
+
13
+ def self.debug=(bool)
14
+ @debug = bool
15
+ end
16
+ def self.debug
17
+ return @debug
18
+ end
19
+
15
20
  def self.make_mergemodule(output, input)
16
21
  gem_dir = File.dirname(__FILE__)
17
22
  apply_wix_template(output, input, "#{gem_dir}/templates/mergemodule.wxs")
@@ -22,153 +27,174 @@ class Wix
22
27
  apply_wix_template(output, input, "#{gem_dir}/templates/Install.wxs")
23
28
  end
24
29
 
25
- def self.create_mergemodule_wixfile(output_wixfile, input)
26
- gem_dir = File.dirname(__FILE__)
27
- create_wix_file(output_wixfile, input, "#{gem_dir}/templates/mergemodule.wxs")
30
+ private
31
+ def self.manage_upgrade(wxs_text, input)
32
+ if(input.kind_of?(Hash) &&
33
+ input.has_key?(:remove_existing_products) &&
34
+ input[:remove_existing_products])
35
+
36
+ raise 'Hash must have a version key if the hash has a :remove_existing_products key' unless(input.has_key?(:version))
37
+ raise 'Hash must have an upgrade_code key if the hash has a :remove_existing_products key' unless(input.has_key?(:upgrade_code))
38
+
39
+ upgrade = "
40
+ <Upgrade Id=\"#{input[:upgrade_code]}\">
41
+ <UpgradeVersion Minimum=\"#{input[:version]}\"
42
+ OnlyDetect='yes'
43
+ Property='NEWPRODUCTFOUND' />
44
+ <UpgradeVersion Minimum='1.0.0'
45
+ IncludeMinimum='yes'
46
+ Maximum=\"#{input[:version]}\"
47
+ IncludeMaximum='no'
48
+ Property='UPGRADEFOUND' />
49
+ </Upgrade>
50
+ <CustomAction"
51
+ wxs_text = wxs_text.gsub(/<CustomAction/, upgrade)
52
+
53
+ remove_existing_products = " <RemoveExistingProducts After='InstallValidate' />
54
+ </InstallExecuteSequence>"
55
+ wxs_text = wxs_text.gsub(/<\/InstallExecuteSequence>/, remove_existing_products)
56
+ end
57
+
58
+ return wxs_text
59
+ end
60
+
61
+ def self.manage_msm_files(wxs_text)
62
+ indent_merge = ' '
63
+ indent_directory = ' '
64
+
65
+ merge_ids = ''
66
+ merge_refs = ''
67
+ remove_components = []
68
+
69
+ component = 0
70
+ id = 1
71
+ file = 2
72
+ wxs_text.scan(/(?<component><Component Id=\"(?<id>[^\"]+)\".+Source=\"(?<file>.+\.msm)\".+Component>)/m) { |match|
73
+ merge_id = match[id].gsub('cmp','merge')
74
+ merge_ids = "#{merge_ids}#{indent_merge}<Merge Id='#{merge_id}' Language='1033' SourceFile='#{match[file]}' DiskId='1' />\n"
75
+ merge_refs = "#{indent_merge}#{merge_refs}<MergeRef Id='#{merge_id}' />\n#{indent_merge}"
76
+
77
+ remove_components.insert(remove_components.length, match[component])
78
+ }
79
+
80
+ remove_components.each { |cmp| wxs_text = wxs_text.gsub(cmp, '') }
81
+
82
+ directory_element = "<Directory Id='TARGETDIR' Name='SourceDir'>\n#{merge_ids}#{indent_directory}</Directory>"
83
+ wxs_text = wxs_text.gsub('<Directory Id="TARGETDIR" Name="SourceDir" />', directory_element)
84
+
85
+ wxs_text = wxs_text.gsub(/\s+<\/Feature>/, "\n#{merge_refs} </Feature>")
86
+
87
+ return wxs_text
28
88
  end
89
+
90
+ def self.copy_install_files(directory, input)
91
+ files = input
92
+ files = input[:files] if(input.kind_of?(Hash))
93
+
94
+ files.each do |file|
95
+ if(File.file?(file))
96
+ install_path = file
97
+ if(input.kind_of?(Hash) && input.has_key?(:modify_file_paths))
98
+ input[:modify_file_paths].each { |regex, replacement_string| install_path = install_path.gsub(regex, replacement_string) }
99
+ end
29
100
 
30
- def self.create_installation_wixfile(output_wixfile, input)
31
- gem_dir = File.dirname(__FILE__)
32
- create_wix_file(output_wixfile, input, "#{gem_dir}/templates/mergemodule.wxs")
101
+ install_path = "#{directory}/#{install_path}"
102
+ FileUtils.mkpath(File.dirname(install_path)) unless(Dir.exists?(File.dirname(install_path)))
103
+ FileUtils.cp(file, install_path)
104
+ end
105
+ end
33
106
  end
34
107
 
35
- private
36
- def self.create_wix_file(wix_file, input, template)
37
- product_name = File.basename(wix_file, '.wxs')
38
- product_name = input[:product_name] if(input.kind_of?(Hash) && input.has_key?(:product_name))
39
- wxs_text = File.read(template)
108
+ def self.create_wxs_file(wxs_file, input, ext)
109
+ @debug = input[:debug] if(input.kind_of?(Hash) && input.has_key?(:debug))
40
110
 
41
- files = input
42
- files = input[:files] if(input.kind_of?(Hash))
111
+ template_option = "-template product"
112
+ template_option = "-template module" unless(ext == ".msi")
113
+
114
+ stdout = %x[\"#{install_path}/bin/heat.exe\" dir . #{template_option} -cg InstallionFiles -gg -nologo -srd -o \"#{wxs_file}\"]
115
+ raise "#{stdout}\nFailed to generate .wxs file" unless(File.exists?(wxs_file))
116
+
117
+ product_name = File.basename(wxs_file, '.wxs')
118
+ product_name = input[:product_name] if(input.kind_of?(Hash) && input.has_key?(:product_name))
119
+
120
+ manufacturer = 'Not Set'
121
+ manufacturer = input[:manufacturer] if(input.kind_of?(Hash) && input.has_key?(:manufacturer))
43
122
 
44
- wxs_text = manage_files(wxs_text, files)
123
+ product_version = ''
124
+ product_version = input[:version] if(input.kind_of?(Hash) && input.has_key?(:version))
45
125
 
46
- wxs_text = wxs_text.gsub(/PRODUCT_NAME/) { |s| s = product_name }
47
- wxs_text = wxs_text.gsub(/MODULE_NAME/) { |s| s = product_name }
48
-
49
- product_code = "{#{SecureRandom.uuid}}"
126
+ product_code = ''
50
127
  product_code = input[:product_code] if(input.kind_of?(Hash) && input.has_key?(:product_code))
51
- wxs_text = wxs_text.gsub(/PRODUCT_CODE/) { |s| s = product_code }
52
128
 
53
- upgrade_code = "{#{SecureRandom.uuid}}"
129
+ upgrade_code = ''
54
130
  upgrade_code = input[:upgrade_code] if(input.kind_of?(Hash) && input.has_key?(:upgrade_code))
55
- wxs_text = wxs_text.gsub(/UPGRADE_CODE/) { |s| s = upgrade_code }
56
131
 
57
- product_version = '0.0.0.0'
58
- product_version = input[:version] if(input.kind_of?(Hash) && input.has_key?(:version))
59
- wxs_text = wxs_text.gsub(/VERSION/) { |s| s = product_version }
132
+ wxs_text = File.read(wxs_file)
60
133
 
61
- manufacturer = ''
62
- manufacturer = input[:manufacturer] if(input.kind_of?(Hash) && input.has_key?(:manufacturer))
63
- dir_xml = "<Directory Id=\"INSTALLFOLDER\" Name=\"#{product_name}\" />"
64
- dir_xml = "<Directory Id=\"MANUFACTURERFOLDER\" Name=\"#{manufacturer}\">#{dir_xml}</Directory>" if(manufacturer.length > 0)
65
- wxs_text = wxs_text.gsub(/MANUFACTURER/) { |s| s = manufacturer } unless(manufacturer.empty?)
66
- wxs_text = wxs_text.gsub(/INSTALL_DIR/) { |s| s = dir_xml }
67
-
68
- #puts wxs_text
69
- File.open(wix_file, 'w') { |f| f.puts(wxs_text) }
70
- end
71
-
72
- def self.apply_wix_template(output, input, template)
73
- ext = File.extname(output)
74
- basename = File.basename(output, ext)
75
- FileUtils.rm(output) if(File.exists?(output))
134
+ wxs_text = wxs_text.gsub(/SourceDir\\/) { |s| s = '.\\' }
135
+ wxs_text = wxs_text.gsub(/PUT-PRODUCT-NAME-HERE/) { |s| s = product_name }
136
+ wxs_text = wxs_text.gsub(/PUT-MODULE-NAME-HERE/) { |s| s = product_name }
137
+ wxs_text = wxs_text.gsub(/PUT-COMPANY-NAME-HERE/) { |s| s = manufacturer }
138
+ wxs_text = wxs_text.gsub(/PUT-FEATURE-TITLE-HERE/) { |s| s = 'Files to Install' }
139
+
140
+ wxs_text = wxs_text.gsub(/Version=\"1.0.0.0\"/) { |s| s = "Version=\"#{product_version}\"" } unless(product_version.empty?)
141
+ wxs_text = wxs_text.gsub(/Product Id=\"[^\"]+\"/) { |s| s = "Product Id=\"#{product_code}\"" } unless(product_code.empty?)
142
+ wxs_text = wxs_text.gsub(/UpgradeCode=\"[^\"]+\"/) { |s| s = "UpgradeCode=\"#{upgrade_code}\"" } unless(upgrade_code.empty?)
76
143
 
77
- output_path = File.dirname(output)
78
- wix_file = "#{File.dirname(output)}/#{basename}.wxs"
79
- create_wix_file(wix_file, input, template)
144
+ install_path = '[ProgramFilesFolder][ProductName]'
145
+ install_path = "[ProgramFilesFolder][Manufacturer]\\[ProductName]" unless(manufacturer == 'Not Set')
80
146
 
81
- raise 'WIX path is not set!' if(install_path.nil?)
147
+ custom_action = "
148
+ <CustomAction Id='SetTARGETDIR' Property='TARGETDIR' Value='#{install_path}' Execute='firstSequence' />
82
149
 
83
- stdout = %x[\"#{install_path}\\bin\\candle.exe\" -out \"#{output_path}/#{basename}.wixobj\" \"#{wix_file}\"]
84
- raise "#{stdout}\nFailed to generate .wixobj file" unless(File.exists?("#{output_path}/#{basename}.wixobj"))
150
+ <InstallUISequence>
151
+ <!-- Set TARGETDIR if it wasn't set on the command line -->
152
+ <Custom Action='SetTARGETDIR' Before='CostFinalize'>TARGETDIR=\"\"</Custom>
153
+ </InstallUISequence>
85
154
 
86
- stdout = %x[\"#{install_path}\\bin\\light.exe\" -nologo -out \"#{output}\" \"#{output_path}/#{basename}.wixobj\"]
87
- raise "#{stdout}\nFailed to generate #{output} file" unless(File.exists?(output))
88
-
89
- Dir.glob("#{output_path}/#{basename}.{wxs,wixobj,wixpdb}") { |file| FileUtils.rm(file) }
90
- end
155
+ <InstallExecuteSequence>
156
+ <!-- Set TARGETDIR if it wasn't set on the command line -->
157
+ <Custom Action='SetTARGETDIR' Before='CostFinalize'>TARGETDIR=\"\"</Custom>
158
+ </InstallExecuteSequence>
159
+ </Product>"
160
+ wxs_text = wxs_text.gsub(/<\/Product>/) { |s| s = custom_action }
91
161
 
92
- def self.wix_id(file)
93
- id = "id_#{file}".gsub(/[^a-zA-Z0-9_\.]/) { |s| s = '_' }
94
- max_id_length = 72 - 2
95
- id = id.slice(id.length-max_id_length, max_id_length) unless(id.length <= max_id_length)
96
- id = "id#{id}"
97
- return id
98
- end
99
-
100
- def self.files_to_xml(files)
101
- xml = ''
102
- files.each do |file|
103
- if(File.extname(file) == ".msm")
104
- file_xml = "<Merge Id=\"#{wix_id(file)}\" Language=\"1033\" SourceFile=\"#{file}\" DiskId='1' />"
105
- else
106
- file_xml = "<Component Id=\"#{wix_id(file)}\" Guid=\"{#{SecureRandom.uuid}}\"><File Id=\"#{wix_id(file)}\" Source=\"#{file}\" /></Component>\n"
107
- end
108
- xml = "#{xml}#{file_xml}"
109
- end
110
- return xml
162
+ wxs_text = manage_upgrade(wxs_text,input)
163
+ wxs_text = manage_msm_files(wxs_text)
164
+
165
+ File.open(wxs_file, 'w') { |f| f.puts(wxs_text) }
111
166
  end
112
167
 
113
- def self.files_xml(dir_files_hash)
114
- xml = ''
115
- dir_files_hash.each do |directory, value|
116
- if(value.is_a?(Hash))
117
- xml = "#{xml}<Directory Id=\"#{wix_id(value[:full_path])}\" Name=\"#{directory}\">\n" unless(directory == '.')
118
- xml = "#{xml}#{files_to_xml(value[:files])}" if(value.has_key?(:files))
119
- xml = "#{xml}#{files_xml(value)}"
120
- xml = "#{xml}</Directory>\n" unless(directory == '.')
121
- end
122
- end
123
- return xml
124
- end
125
-
126
- def self.component_refs_xml(dir_files_hash)
127
- xml = ''
128
- dir_files_hash.each do |directory, value|
129
- if(value.is_a?(Hash))
130
- if(value.has_key?(:files))
131
- value[:files].each do |file|
132
- if(File.extname(file) == ".msm")
133
- xml = "#{xml}<MergeRef Id=\"#{wix_id(file)}\" />\n"
134
- else
135
- xml = "#{xml}<ComponentRef Id=\"#{wix_id(file)}\" />\n"
136
- end
137
- end
138
- end
139
- xml = "#{xml}#{component_refs_xml(value)}"
140
- end
141
- end
168
+ def self.create_output(wxs_file, output)
169
+ wixobj_file = "#{File.basename(wxs_file)}.wixobj"
142
170
 
143
- return xml
171
+ stdout = %x[\"#{install_path}\\bin\\candle.exe\" -out \"#{wixobj_file}\" \"#{wxs_file}\"]
172
+ raise "#{stdout}\nFailed to generate .wixobj file" unless(File.exists?(wixobj_file))
173
+
174
+ stdout = %x[\"#{install_path}\\bin\\light.exe\" -nologo -out \"#{output}\" \"#{wixobj_file}\"]
175
+ raise "#{stdout}\nFailed to generate #{output} file" unless(File.exists?(output))
144
176
  end
145
177
 
146
- def self.manage_files(wxs_text, files)
147
- dir_files = {}
148
- files.each do |file|
149
- if(File.file?(file))
150
- dir_path = File.dirname(file)
151
-
152
- dir_hash = dir_files
153
- dir_path.split('/').each do |d|
154
- if(!dir_hash.has_key?(d))
155
- dir_hash[d] = Hash.new unless(dir_hash.has_key?(d))
156
- if(dir_hash.has_key?(:full_path))
157
- dir_hash[d][:full_path] = "#{dir_hash[:full_path]}/#{d}"
158
- else
159
- dir_hash[d][:full_path] = d
160
- end
161
- end
162
- dir_hash = dir_hash[d]
163
- end
178
+ def self.apply_wix_template(output, input, template)
179
+ raise 'WIX path is not set!' if(install_path.nil?)
180
+
181
+ ext = File.extname(output)
182
+ basename = File.basename(output, ext)
183
+ FileUtils.rm(output) if(File.exists?(output))
184
+
185
+ output_absolute_path = File.absolute_path(output)
186
+
187
+ Dir.mktmpdir do |dir|
188
+ copy_install_files(dir, input)
164
189
 
165
- dir_hash[:files] = Array.new unless(dir_hash.has_key?(:files))
166
- dir_hash[:files].insert(dir_hash[:files].length, file)
190
+ wxs_file = "#{basename}.wxs"
191
+ Dir.chdir(dir) do |current_dir|
192
+ create_wxs_file(wxs_file, input, ext)
193
+ create_output(wxs_file, output_absolute_path)
167
194
  end
168
- end
169
-
170
- wxs_text = wxs_text.gsub(/COMPONENT_REFS/) { |s| s = component_refs_xml(dir_files) }
171
- wxs_text = wxs_text.gsub(/FILES/) { |s| s = files_xml(dir_files) }
172
- return wxs_text
195
+ FileUtils.cp(wxs_file, output_absolute_path.gsub(ext,'.wxs')) if(@debug)
196
+ end
197
+ pdb_file = output_absolute_path.gsub(ext,'.wixpdb')
198
+ FileUtils.rm(pdb_file) if(File.exists?(pdb_file))
173
199
  end
174
200
  end
metadata CHANGED
@@ -1,115 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wixgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Marshall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-05 00:00:00.000000000 Z
11
+ date: 2015-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: semver
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.1.0
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.0.1
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 0.1.0
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 1.0.1
33
13
  - !ruby/object:Gem::Dependency
34
14
  name: bundler
35
15
  requirement: !ruby/object:Gem::Requirement
36
16
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: 0.1.0
40
- - - ">="
17
+ - - ~>
41
18
  - !ruby/object:Gem::Version
42
- version: 1.5.1
19
+ version: '0'
43
20
  type: :development
44
21
  prerelease: false
45
22
  version_requirements: !ruby/object:Gem::Requirement
46
23
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: 0.1.0
50
- - - ">="
24
+ - - ~>
51
25
  - !ruby/object:Gem::Version
52
- version: 1.5.1
26
+ version: '0'
53
27
  - !ruby/object:Gem::Dependency
54
28
  name: rake
55
29
  requirement: !ruby/object:Gem::Requirement
56
30
  requirements:
57
- - - "~>"
31
+ - - ~>
58
32
  - !ruby/object:Gem::Version
59
- version: 0.1.0
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 0.9.6
33
+ version: '0'
63
34
  type: :development
64
35
  prerelease: false
65
36
  version_requirements: !ruby/object:Gem::Requirement
66
37
  requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: 0.1.0
70
- - - ">="
38
+ - - ~>
71
39
  - !ruby/object:Gem::Version
72
- version: 0.9.6
40
+ version: '0'
73
41
  - !ruby/object:Gem::Dependency
74
- name: dev
42
+ name: rspec
75
43
  requirement: !ruby/object:Gem::Requirement
76
44
  requirements:
77
- - - "~>"
45
+ - - ~>
78
46
  - !ruby/object:Gem::Version
79
- version: 0.1.0
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 1.0.214
47
+ version: '0'
83
48
  type: :development
84
49
  prerelease: false
85
50
  version_requirements: !ruby/object:Gem::Requirement
86
51
  requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.1.0
90
- - - ">="
52
+ - - ~>
91
53
  - !ruby/object:Gem::Version
92
- version: 1.0.214
54
+ version: '0'
93
55
  - !ruby/object:Gem::Dependency
94
- name: systemu
56
+ name: dev_tasks
95
57
  requirement: !ruby/object:Gem::Requirement
96
58
  requirements:
97
- - - "~>"
59
+ - - ~>
98
60
  - !ruby/object:Gem::Version
99
- version: 0.1.0
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: 2.5.2
61
+ version: '0'
103
62
  type: :development
104
63
  prerelease: false
105
64
  version_requirements: !ruby/object:Gem::Requirement
106
65
  requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: 0.1.0
110
- - - ">="
66
+ - - ~>
111
67
  - !ruby/object:Gem::Version
112
- version: 2.5.2
68
+ version: '0'
113
69
  description: 'Simple Ruby interface to facilitate creating and compiling windows installation
114
70
  files with the Wix Toolset.\n\nNote: This gem currently does not handle registration
115
71
  of COM objects or registry entries.'
@@ -120,8 +76,6 @@ extra_rdoc_files: []
120
76
  files:
121
77
  - LICENSE
122
78
  - README.md
123
- - lib/templates/Install.wxs
124
- - lib/templates/mergemodule.wxs
125
79
  - lib/wixgem.rb
126
80
  homepage: http://rubygems.org/gems/wixgem
127
81
  licenses:
@@ -133,17 +87,17 @@ require_paths:
133
87
  - lib
134
88
  required_ruby_version: !ruby/object:Gem::Requirement
135
89
  requirements:
136
- - - ">="
90
+ - - '>='
137
91
  - !ruby/object:Gem::Version
138
92
  version: 1.9.1
139
93
  required_rubygems_version: !ruby/object:Gem::Requirement
140
94
  requirements:
141
- - - ">="
95
+ - - '>='
142
96
  - !ruby/object:Gem::Version
143
97
  version: '0'
144
98
  requirements: []
145
99
  rubyforge_project:
146
- rubygems_version: 2.2.2
100
+ rubygems_version: 2.2.0
147
101
  signing_key:
148
102
  specification_version: 4
149
103
  summary: Simple Ruby interface to facilitate working with Wix Toolset
@@ -1,26 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
3
- <Product Id="PRODUCT_CODE" Name="PRODUCT_NAME" Language="1033" Version="VERSION" Manufacturer="MANUFACTURER" UpgradeCode="UPGRADE_CODE">
4
- <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5
-
6
- <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
7
- <Media Id="1" Cabinet="WixgemTest.cab" EmbedCab="yes" />
8
-
9
- <!-- Step 1: Define the directory structure -->
10
- <Directory Id="TARGETDIR" Name="SourceDir">
11
- <Directory Id="ProgramFilesFolder">
12
- INSTALL_DIR
13
- </Directory>
14
- </Directory>
15
-
16
- <!-- Step 2: Add files to installer package -->
17
- <DirectoryRef Id="INSTALLFOLDER">
18
- FILES
19
- </DirectoryRef>
20
-
21
- <!-- Step 3: Tell Wix to install the files-->
22
- <Feature Id="ProductFeature" Title="PRODUCT_NAME Installation" Level="1">
23
- COMPONENT_REFS
24
- </Feature>
25
- </Product>
26
- </Wix>
@@ -1,15 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
3
- <Module Id="MODULE_NAME" Language="1033" Version="VERSION">
4
- <Package Id="PRODUCT_CODE" InstallerVersion="200" Manufacturer="MANUFACTURER" />
5
- COMPONENT_REFS
6
- <Directory Id="TARGETDIR" Name="SourceDir">
7
- <Directory Id="MergeRedirectFolder" />
8
- </Directory>
9
- </Module>
10
- <Fragment>
11
- <DirectoryRef Id="MergeRedirectFolder">
12
- FILES
13
- </DirectoryRef>
14
- </Fragment>
15
- </Wix>