delphivm 0.7.7 → 0.8.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/Gemfile +1 -1
- data/Gemfile.lock +4 -19
- data/bin/delphivm +1 -1
- data/lib/delphivm.rb +9 -36
- data/lib/delphivm/dsl.rb +7 -14
- data/lib/delphivm/ide_services.rb +10 -10
- data/lib/delphivm/runner.rb +25 -0
- data/lib/delphivm/version.rb +1 -1
- data/lib/dvm/project.thor +5 -9
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffd80d6a4e910ba6228a8d7f2101eb982d039ba8
|
4
|
+
data.tar.gz: e6b73cff009b43f837757fca00c3e233013325c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ef751a83859061335a15cf5eeea484b728fd039e97847fa68fc0e4110e744cf26e5934a04836349d8433f0faac440c3784d47e7384ad2b5e0a988bfcc272f40
|
7
|
+
data.tar.gz: fd41c76496a2f477846a299cc286ddf90c3c8985a7dff742d00c9e54b7caac997a3adede2b932e4479a237c7ab01db6e562ee1b52d97f69a619fa5fa7093dfda
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,34 +1,19 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
coveralls (0.6.3)
|
6
|
-
colorize
|
7
|
-
multi_json (~> 1.3)
|
8
|
-
rest-client
|
9
|
-
simplecov (>= 0.7)
|
10
|
-
thor
|
11
|
-
mime-types (1.21)
|
12
|
-
multi_json (1.7.2)
|
13
|
-
nokogiri (1.5.9)
|
4
|
+
dnote (1.7.1)
|
14
5
|
nokogiri (1.5.9-x86-mingw32)
|
15
|
-
ocra (1.3.
|
16
|
-
rest-client (1.6.7)
|
17
|
-
mime-types (>= 1.16)
|
6
|
+
ocra (1.3.1)
|
18
7
|
ruby-progressbar (1.0.2)
|
19
8
|
rubyzip (0.9.9)
|
20
|
-
|
21
|
-
multi_json (~> 1.0)
|
22
|
-
simplecov-html (~> 0.7.1)
|
23
|
-
simplecov-html (0.7.1)
|
24
|
-
thor (0.18.0)
|
9
|
+
thor (0.18.1)
|
25
10
|
version_info (1.7.6)
|
26
11
|
|
27
12
|
PLATFORMS
|
28
13
|
x86-mingw32
|
29
14
|
|
30
15
|
DEPENDENCIES
|
31
|
-
|
16
|
+
dnote
|
32
17
|
nokogiri
|
33
18
|
ocra
|
34
19
|
ruby-progressbar
|
data/bin/delphivm
CHANGED
data/lib/delphivm.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# encoding: UTF-8
|
3
2
|
|
4
3
|
require 'thor'
|
5
4
|
require 'pathname'
|
@@ -26,7 +25,7 @@ require 'delphivm/version'
|
|
26
25
|
require 'delphivm/ide_services'
|
27
26
|
require 'delphivm/dsl'
|
28
27
|
|
29
|
-
require '
|
28
|
+
require 'delphivm/runner'
|
30
29
|
|
31
30
|
if Delphivm::ROOT == Pathname(__FILE__).dirname.parent
|
32
31
|
TARGET = Object.const_get('Delphivm')
|
@@ -116,17 +115,15 @@ protected
|
|
116
115
|
def self.publish
|
117
116
|
[:clean, :make, :build].each do |mth|
|
118
117
|
desc "#{mth}", "#{mth} #{self.namespace} products"
|
119
|
-
method_option :
|
118
|
+
method_option :params, type: :hash, aliases: '-p', default: {:Config => 'Debug'}, desc: "more MSBuild params. See MSBuild help"
|
120
119
|
define_method mth do
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
send("do_#{mth}", idetag, cfg)
|
129
|
-
end
|
120
|
+
msbuild_params = options[:params]
|
121
|
+
IDEServices.ideused.each do |idetag|
|
122
|
+
self.idetag = idetag
|
123
|
+
self.config = msbuild_params
|
124
|
+
self.clear_products
|
125
|
+
self.class.depends.each { |task| self.invoke "#{task}:#{mth}" }
|
126
|
+
send("do_#{mth}", idetag, msbuild_params)
|
130
127
|
end
|
131
128
|
end
|
132
129
|
end
|
@@ -138,27 +135,3 @@ protected
|
|
138
135
|
end
|
139
136
|
|
140
137
|
end
|
141
|
-
|
142
|
-
class Delphivm
|
143
|
-
EXE_NAME = File.basename($0, '.rb')
|
144
|
-
|
145
|
-
PATH_TO_VENDOR = ROOT + 'vendor'
|
146
|
-
PATH_TO_VENDOR_CACHE = PATH_TO_VENDOR + 'cache'
|
147
|
-
PATH_TO_VENDOR_IMPORTS = PATH_TO_VENDOR + 'imports'
|
148
|
-
DVM_IMPORTS_FILE = PATH_TO_VENDOR + 'imports.dvm'
|
149
|
-
|
150
|
-
class Runner
|
151
|
-
# remove some tasks not needed
|
152
|
-
remove_task :install, :installed, :uninstall, :update
|
153
|
-
|
154
|
-
# default version and banner outputs THOR, so redefine it
|
155
|
-
def self.banner(task, all = false, subcommand = false)
|
156
|
-
"#{Delphivm::EXE_NAME} " + task.formatted_usage(self, all, subcommand)
|
157
|
-
end
|
158
|
-
|
159
|
-
desc "version", "Show #{Delphivm::EXE_NAME} version"
|
160
|
-
def version
|
161
|
-
say "#{Delphivm::VERSION}"
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
data/lib/delphivm/dsl.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
|
2
2
|
class Delphivm
|
3
3
|
|
4
4
|
module DSL
|
@@ -42,19 +42,15 @@ class Delphivm
|
|
42
42
|
full_url = source_uri + '/' + file_name
|
43
43
|
to_here = dowonlad_root_path + file_name
|
44
44
|
pb = nil
|
45
|
-
puts "
|
45
|
+
puts "\nDownloading: #{full_url}"
|
46
46
|
start = lambda do |length, hint=''|
|
47
|
-
pb = ProgressBar.
|
48
|
-
pb.instance_variable_set "@title_width", file_name.length + 2
|
49
|
-
pb.format = "\s\s%-s #{hint} %3d%% %s %s"
|
50
|
-
pb.clear
|
51
|
-
pb.send :show
|
47
|
+
pb = ProgressBar.create(:title => "#{hint}", :format => "%t %E %w");
|
52
48
|
end
|
53
49
|
|
54
|
-
progress = lambda {|s| pb.
|
50
|
+
progress = lambda {|s| pb.progress = s; pb.refresh}
|
55
51
|
|
56
52
|
if Pathname(to_here).exist?
|
57
|
-
start.call(0, "(cached)")
|
53
|
+
start.call(0, "(cached) ")
|
58
54
|
else
|
59
55
|
begin
|
60
56
|
content = open(full_url, "rb", content_length_proc: start, progress_proc: progress).read
|
@@ -74,15 +70,12 @@ class Delphivm
|
|
74
70
|
|
75
71
|
def unzip(file, destination)
|
76
72
|
Zip::ZipFile.open(file) do |zip_file|
|
77
|
-
pb = ProgressBar.
|
78
|
-
pb.format = "\s\s\s\sextracting: %3d%% %s file: %-34s"
|
79
|
-
pb.format_arguments = [:percentage, :bar, :title]
|
73
|
+
pb = ProgressBar.create(:total => zip_file.size, :format => "extracting %c/%C %B %t")
|
80
74
|
zip_file.each do |f|
|
81
75
|
f_path = destination + f.name
|
82
76
|
next if Pathname(f_path).directory?
|
83
77
|
f_path.dirname.mkpath
|
84
|
-
pb.
|
85
|
-
pb.inc
|
78
|
+
pb.title = "#{f_path.basename}"
|
86
79
|
Pathname(f_path).delete if File.exist?(f_path)
|
87
80
|
zip_file.extract(f, f_path)
|
88
81
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
1
|
require 'fiddle'
|
4
2
|
require 'fiddle/import'
|
5
3
|
|
@@ -69,8 +67,8 @@ class Delphivm
|
|
69
67
|
|
70
68
|
def start
|
71
69
|
set_env
|
72
|
-
Process.detach(spawn "#{self['App']}", "-
|
73
|
-
say "started bds -
|
70
|
+
Process.detach(spawn "#{self['App']}", "-rDelphiVM\\#{prj_slug}")
|
71
|
+
say "started bds -rDelphiVM\\#{prj_slug}"
|
74
72
|
end
|
75
73
|
|
76
74
|
def prj_slug
|
@@ -82,18 +80,20 @@ class Delphivm
|
|
82
80
|
ide_number > 140
|
83
81
|
end
|
84
82
|
|
85
|
-
def msbuild(
|
83
|
+
def msbuild(target, config)
|
86
84
|
set_env
|
87
|
-
self.class.winshell(out_filter: ->(line){line
|
88
|
-
|
85
|
+
self.class.winshell(out_filter: ->(line){line =~/\b(warning|error)\b/i}) do |i|
|
86
|
+
Pathname.glob(workdir + "{src,samples,test}/#{idever}**/*.{#{GROUP_FILE_EXT.join(',')}}") do |f|
|
89
87
|
f_to_show = f.relative_path_from(workdir)
|
90
|
-
say "#{target} (#{config}) #{f_to_show.win} ...."
|
91
88
|
# paths can contains spaces so we need use quotes
|
92
89
|
if supports_msbuild?(idever)
|
90
|
+
msbuild_prms = config.inject([]) {|prms, item| prms << '/p:' + item.join('=')}.join(' ')
|
91
|
+
say "[#{idever}] msbuild /t:#{target} #{msbuild_prms} #{f_to_show.win} ...."
|
93
92
|
i.puts %Q["#{self['RootDir'] + 'bin\rsvars.bat'}"]
|
94
|
-
i.puts %Q[msbuild /nologo /t:#{target}
|
93
|
+
i.puts %Q[msbuild /nologo /consoleloggerparameters:v=quiet /filelogger /flp:v=detailed /t:#{target} #{msbuild_prms} "#{f.win}"]
|
95
94
|
else
|
96
|
-
|
95
|
+
say "[#{idever}] bds -b #{f_to_show.win} ...."
|
96
|
+
i.puts %Q[bds -b "#{f.win}"]
|
97
97
|
end
|
98
98
|
end
|
99
99
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'thor/runner'
|
2
|
+
|
3
|
+
class Delphivm
|
4
|
+
EXE_NAME = File.basename($0, '.rb')
|
5
|
+
|
6
|
+
PATH_TO_VENDOR = ROOT + 'vendor'
|
7
|
+
PATH_TO_VENDOR_CACHE = PATH_TO_VENDOR + 'cache'
|
8
|
+
PATH_TO_VENDOR_IMPORTS = PATH_TO_VENDOR + 'imports'
|
9
|
+
DVM_IMPORTS_FILE = PATH_TO_VENDOR + 'imports.dvm'
|
10
|
+
|
11
|
+
class Runner
|
12
|
+
# remove some tasks not needed
|
13
|
+
remove_task :install, :installed, :uninstall, :update
|
14
|
+
|
15
|
+
# default version and banner outputs THOR, so redefine it
|
16
|
+
def self.banner(task, all = false, subcommand = false)
|
17
|
+
"#{Delphivm::EXE_NAME} " + task.formatted_usage(self, all, subcommand)
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "version", "Show #{Delphivm::EXE_NAME} version"
|
21
|
+
def version
|
22
|
+
say "#{Delphivm::VERSION}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/delphivm/version.rb
CHANGED
data/lib/dvm/project.thor
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
|
4
2
|
class Project < BuildTarget
|
5
3
|
|
6
4
|
SHIP_FILE = "#{TARGET}-#{TARGET.VERSION.tag}"
|
7
5
|
|
8
6
|
desc "clean", "clean #{SHIP_FILE} products", :for => :clean
|
9
|
-
|
10
7
|
desc "make", "make #{SHIP_FILE} products", :for => :make
|
11
8
|
desc "build", "build #{SHIP_FILE} products", :for => :build
|
12
9
|
|
@@ -14,7 +11,6 @@ class Project < BuildTarget
|
|
14
11
|
method_option :config, type: :array, aliases: '-c', default: '', desc: "use IDE config(s): Debug, Release, etc"
|
15
12
|
def ship
|
16
13
|
get_idevers.each do |idever|
|
17
|
-
#ide = IDEServices.new(idever, ROOT)
|
18
14
|
configs = [options[:config]].flatten
|
19
15
|
configs.each do |cfg|
|
20
16
|
build_ship(idever, cfg)
|
@@ -26,17 +22,17 @@ protected
|
|
26
22
|
|
27
23
|
def do_clean(idetag, cfg)
|
28
24
|
ide = IDEServices.new(idetag, ROOT)
|
29
|
-
ide.msbuild(
|
25
|
+
ide.msbuild('Clean', cfg)
|
30
26
|
end
|
31
27
|
|
32
28
|
def do_make(idetag, cfg)
|
33
29
|
ide = IDEServices.new(idetag, ROOT)
|
34
|
-
ide.msbuild(
|
30
|
+
ide.msbuild('Make', cfg)
|
35
31
|
end
|
36
32
|
|
37
33
|
def do_build(idetag, cfg)
|
38
34
|
ide = IDEServices.new(idetag, ROOT)
|
39
|
-
ide.msbuild(
|
35
|
+
ide.msbuild('Build', cfg)
|
40
36
|
end
|
41
37
|
|
42
38
|
private
|
@@ -56,7 +52,7 @@ private
|
|
56
52
|
groups = [
|
57
53
|
["output", ROOT + 'out' + idever + config, Pathname('.')],
|
58
54
|
["source", ROOT + 'src', Pathname('src') + SHIP_FILE],
|
59
|
-
["
|
55
|
+
["samples", ROOT + 'samples', Pathname('samples') + SHIP_FILE],
|
60
56
|
["documentation", ROOT + 'doc', Pathname('doc') + SHIP_FILE]
|
61
57
|
]
|
62
58
|
puts "Ship file " + zip_fname.to_s
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delphivm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jorge L. Cangas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- lib/delphivm.rb
|
97
97
|
- lib/delphivm/dsl.rb
|
98
98
|
- lib/delphivm/ide_services.rb
|
99
|
+
- lib/delphivm/runner.rb
|
99
100
|
- lib/delphivm/version.rb
|
100
101
|
- lib/dvm/ide.thor
|
101
102
|
- lib/dvm/project.thor
|