wixgem 0.12.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
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>