emplace 0.1.2 → 0.1.4
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 +5 -3
- data/lib/emplace.rb +58 -24
- data/test/emplace-test.rb +38 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65d254de88cfa79c37429e9ed5265604ae0c13f0
|
4
|
+
data.tar.gz: dfd2d00dcbcc61ceefff90a47122ffff0e485251
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cace8085c721261221cc229027048048061c52c2a1de5cb758ae08ba2f547006772d67a296af1bc384781aa99854d0e71f6d060f62ba883f938b70132d3a4a0
|
7
|
+
data.tar.gz: 63002826a5a33275b78ef9c4ad6461bb3fd04b561dc5bc639033b266b3e8d6e9c6204deff837d0ee530b7398769d033e5dbedab9f8fbac0355dab1fa9cbefc13
|
data/README.md
CHANGED
@@ -21,9 +21,11 @@ Or install it yourself as:
|
|
21
21
|
## Usage
|
22
22
|
|
23
23
|
require 'emplace'
|
24
|
-
Emplace.
|
25
|
-
|
26
|
-
|
24
|
+
project = Emplace.new 'project-name'
|
25
|
+
project.cmake!
|
26
|
+
project.build!
|
27
|
+
project.test!
|
28
|
+
project.package!
|
27
29
|
|
28
30
|
## Contributing
|
29
31
|
|
data/lib/emplace.rb
CHANGED
@@ -1,14 +1,56 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
1
3
|
module Emplace
|
2
4
|
|
5
|
+
class Project
|
6
|
+
def initialize(name, impl = Emplace.load_env)
|
7
|
+
@name = name
|
8
|
+
@impl = impl
|
9
|
+
end
|
10
|
+
def clean!
|
11
|
+
@impl.clean
|
12
|
+
end
|
13
|
+
def cmake!
|
14
|
+
@impl.cmake @name
|
15
|
+
end
|
16
|
+
def build!
|
17
|
+
@impl.build
|
18
|
+
end
|
19
|
+
def test!
|
20
|
+
@impl.test
|
21
|
+
end
|
22
|
+
def package!
|
23
|
+
@impl.package @name
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
3
27
|
class CmakeBuild
|
4
|
-
def
|
5
|
-
|
28
|
+
def build_dir
|
29
|
+
'build'
|
30
|
+
end
|
31
|
+
def dist_dir
|
32
|
+
'dist'
|
33
|
+
end
|
34
|
+
def install_dir(name)
|
35
|
+
"#{dist_dir}/#{name}"
|
36
|
+
end
|
37
|
+
def cmake(name)
|
38
|
+
sh "cmake . -B#{build_dir} -DCMAKE_INSTALL_PREFIX=#{install_dir(name)} -G \"#{cmake_generator}\""
|
6
39
|
end
|
7
40
|
def build
|
8
|
-
sh "cmake --build
|
41
|
+
sh "cmake --build #{build_dir} --target install"
|
42
|
+
end
|
43
|
+
def test
|
44
|
+
sh "ctest --verbose", build_dir
|
9
45
|
end
|
10
|
-
def
|
11
|
-
|
46
|
+
def clean
|
47
|
+
FileUtils.rm_rf build_dir
|
48
|
+
FileUtils.rm_rf dist_dir
|
49
|
+
end
|
50
|
+
def sh(cmd, dir = '.')
|
51
|
+
Dir.chdir(dir) {
|
52
|
+
raise $? unless system cmd
|
53
|
+
}
|
12
54
|
end
|
13
55
|
end
|
14
56
|
|
@@ -23,7 +65,7 @@ module Emplace
|
|
23
65
|
"#{name}-#{system_name}.tgz"
|
24
66
|
end
|
25
67
|
def package(name)
|
26
|
-
sh "tar czf #{package_name(name)} #{name}"
|
68
|
+
sh "tar czf #{package_name(name)} #{name}", dist_dir
|
27
69
|
end
|
28
70
|
end
|
29
71
|
|
@@ -84,19 +126,18 @@ module Emplace
|
|
84
126
|
end
|
85
127
|
def build
|
86
128
|
if cfg = ENV['CONFIGURATION']
|
87
|
-
sh "cmake --build
|
129
|
+
sh "cmake --build #{build_dir} --target install --config #{cfg}"
|
88
130
|
else
|
89
131
|
super
|
90
132
|
end
|
91
133
|
end
|
92
134
|
def package(name)
|
93
|
-
sh "7z a #{package_name(name)} #{name}"
|
135
|
+
sh "7z a #{package_name(name)} #{name}", dist_dir
|
94
136
|
end
|
95
137
|
end
|
96
138
|
|
97
|
-
private
|
98
139
|
def self.load_env
|
99
|
-
|
140
|
+
case RUBY_PLATFORM
|
100
141
|
when /mswin|mingw/
|
101
142
|
Windows
|
102
143
|
when /darwin/
|
@@ -105,21 +146,14 @@ module Emplace
|
|
105
146
|
Linux
|
106
147
|
else
|
107
148
|
Unix
|
108
|
-
end
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
platform.new.tap {|impl|
|
117
|
-
(impl.methods - Object.methods).each {|m|
|
118
|
-
define_singleton_method(m) {|*args,&block| impl.method(m).call(*args, &block) }
|
119
|
-
}
|
120
|
-
}
|
149
|
+
end.tap {|platform|
|
150
|
+
if ENV['TRAVIS']
|
151
|
+
platform.send(:include, Travis)
|
152
|
+
elsif ENV['APPVEYOR']
|
153
|
+
platform.send(:include, AppVeyor)
|
154
|
+
end
|
155
|
+
}.new
|
121
156
|
end
|
122
157
|
|
123
|
-
IMPL = load_env
|
124
158
|
end
|
125
159
|
|
data/test/emplace-test.rb
CHANGED
@@ -22,18 +22,56 @@ class TestEmplace < Test::Unit::TestCase
|
|
22
22
|
assert_equal 'Visual Studio 14 Win64', AppVeyor.new.cmake_generator
|
23
23
|
end
|
24
24
|
|
25
|
+
def testProjectTravis
|
26
|
+
travis = Travis.new
|
27
|
+
project = Emplace::Project.new 'foo', travis
|
28
|
+
project.cmake!
|
29
|
+
project.build!
|
30
|
+
project.test!
|
31
|
+
project.package!
|
32
|
+
assert_equal [
|
33
|
+
'cmake . -Bbuild -DCMAKE_INSTALL_PREFIX=dist/foo -G "Unix Makefiles"',
|
34
|
+
'cmake --build build --target install',
|
35
|
+
'ctest --verbose',
|
36
|
+
'tar czf foo-linux-x86_64-cc.tgz foo'
|
37
|
+
], travis.commands
|
38
|
+
end
|
39
|
+
|
40
|
+
def testProjectAppVeyor
|
41
|
+
appveyor = AppVeyor.new
|
42
|
+
project = Emplace::Project.new 'foo', appveyor
|
43
|
+
project.cmake!
|
44
|
+
project.build!
|
45
|
+
project.test!
|
46
|
+
project.package!
|
47
|
+
assert_equal [
|
48
|
+
'cmake . -Bbuild -DCMAKE_INSTALL_PREFIX=dist/foo -G "Visual Studio 14 Win64"',
|
49
|
+
'cmake --build build --target install --config CFG',
|
50
|
+
'ctest --verbose',
|
51
|
+
'7z a foo-win-x64-msvc-cfg.zip foo'
|
52
|
+
], appveyor.commands
|
53
|
+
end
|
54
|
+
|
25
55
|
class Travis < Emplace::Linux
|
56
|
+
attr_reader :commands
|
26
57
|
include Emplace::Travis
|
27
58
|
def arch
|
28
59
|
'x86_64'
|
29
60
|
end
|
61
|
+
def sh(cmd, dir='')
|
62
|
+
(@commands ||= []) << cmd
|
63
|
+
end
|
30
64
|
end
|
31
65
|
|
32
66
|
class AppVeyor < Emplace::Windows
|
67
|
+
attr_reader :commands
|
33
68
|
include Emplace::AppVeyor
|
34
69
|
def arch
|
35
70
|
'x64'
|
36
71
|
end
|
72
|
+
def sh(cmd, dir='')
|
73
|
+
(@commands ||= []) << cmd
|
74
|
+
end
|
37
75
|
end
|
38
76
|
|
39
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emplace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Calhoun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Keeps settings for running cmake builds on Travis-CI and AppVeyor.
|
14
14
|
email:
|