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 +4 -4
- data/README.md +16 -0
- data/lib/wixgem.rb +157 -131
- metadata +23 -69
- data/lib/templates/Install.wxs +0 -26
- data/lib/templates/mergemodule.wxs +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5174286911b527edb1ecfe405dab9e3242eda68
|
4
|
+
data.tar.gz: 39fd107b670ed0f722cbf425cf331e2b74014c82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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=(
|
6
|
-
|
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
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
36
|
-
|
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
|
-
|
42
|
-
|
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
|
-
|
123
|
+
product_version = ''
|
124
|
+
product_version = input[:version] if(input.kind_of?(Hash) && input.has_key?(:version))
|
45
125
|
|
46
|
-
|
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 =
|
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
|
-
|
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
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
wxs_text = wxs_text.gsub(/
|
66
|
-
|
67
|
-
|
68
|
-
#
|
69
|
-
|
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
|
-
|
78
|
-
|
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
|
-
|
147
|
+
custom_action = "
|
148
|
+
<CustomAction Id='SetTARGETDIR' Property='TARGETDIR' Value='#{install_path}' Execute='firstSequence' />
|
82
149
|
|
83
|
-
|
84
|
-
|
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
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
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
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
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.
|
114
|
-
|
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
|
-
|
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.
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
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
|
-
|
166
|
-
|
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
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
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.
|
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-
|
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:
|
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:
|
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
|
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
|
40
|
+
version: '0'
|
73
41
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
42
|
+
name: rspec
|
75
43
|
requirement: !ruby/object:Gem::Requirement
|
76
44
|
requirements:
|
77
|
-
- -
|
45
|
+
- - ~>
|
78
46
|
- !ruby/object:Gem::Version
|
79
|
-
version: 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:
|
54
|
+
version: '0'
|
93
55
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
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
|
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:
|
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.
|
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
|
data/lib/templates/Install.wxs
DELETED
@@ -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>
|