gear 0.0.3 → 0.0.4

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: 445603b1e01a4640e1961abf51b9fee905cda6a3
4
- data.tar.gz: bbdc3d2eecbf4a8d572646bf500c96b4d870ad0c
3
+ metadata.gz: 34a0f33ba31dc188dbed79ba6fe362d2160a7102
4
+ data.tar.gz: 2d1c2b6dced79059cec1dc13b0fbd97f8047a5ea
5
5
  SHA512:
6
- metadata.gz: 2811ae13eafa601a8891ce094275b5d9c24582a86026ed8d5a50127b52864b84c7f00196048145bba8b4a075bca15dd4d2af8cb136ceb63dcea54a21c1ad3a71
7
- data.tar.gz: 363bc374f3b826c76cd3c0ab416d6c1fc8e3c29e44a8927f76b4e6d0df1057d46b6ffcaaf393c642a6adf67a8d393d79314a439bf477bb825f77c5b6634975cd
6
+ metadata.gz: 36c41d48bf7007acdc105c7ceb58413584644a99c2a41fe50f485d6f585ea255fd8e78fc9bb7c06e3ee953d980bed7d33205562ba353a1af26cbe58f4e0192a7
7
+ data.tar.gz: 779b3ae98314e59cd1fb28cf5702945325980b222702f37eb03b7d5634247630d1cbefdf87077457ba1188a118995c773184e89679982346f9a53c18c4e33fcf
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'gear'
3
- s.version = '0.0.3'
3
+ s.version = '0.0.4'
4
4
  s.license = 'GPL-3'
5
5
  s.summary = 'modular dependency build system for native extensions'
6
6
  s.description = 'gear provides a modular framework to encapsulate build tasks for native ' +
@@ -46,8 +46,9 @@ class Gear
46
46
 
47
47
  def initialize()
48
48
  @obtained = @built = @installed = @checked = false
49
- @build_path = _root_dir() + "/build/#{name()}"
49
+ @build_path = _root_path() + "/build/#{name()}"
50
50
  _setup_paths()
51
+ Dir.chdir(_root_path() + "/build")
51
52
 
52
53
  @@initialized = true
53
54
  end
@@ -85,6 +86,7 @@ class Gear
85
86
  end
86
87
 
87
88
  def remove()
89
+ Dir.chdir(_root_path + '/build')
88
90
  FileUtils.rm_rf("#{@build_path}")
89
91
  @obtained = false
90
92
  return true
@@ -103,6 +105,7 @@ class Gear
103
105
 
104
106
  #======== obtain helpers ========#
105
107
  def git_obtain(repository, branch)
108
+ Dir.chdir(_root_path + '/build')
106
109
  begin
107
110
  if Dir.exist? build_path
108
111
  @git = Git.open(build_path)
@@ -139,6 +142,7 @@ class Gear
139
142
  end
140
143
 
141
144
  def std_make_install()
145
+ Dir.chdir(@build_path)
142
146
  `make install`
143
147
  @installed = true
144
148
  return true
@@ -149,8 +153,12 @@ class Gear
149
153
  `LD_LIBRARY_PATH=#{@@install_path}/lib:$LD_LIBRARY_PATH C_INCLUDE_PATH=#{@@install_path}/include:$C_INCLUDE_PATH PATH=#{@@install_path}/bin:$PATH #{command}`
150
154
  end
151
155
 
156
+ def gear_exec_mac()
157
+ `mdfind -onlyin #{@@install_path} -name #{name} -count`.chomp.to_i
158
+ end
159
+
152
160
  private
153
- def _root_dir()
161
+ def _root_path()
154
162
  File.expand_path('../..', __FILE__)
155
163
  end
156
164
 
@@ -158,6 +166,8 @@ class Gear
158
166
  def _setup_paths()
159
167
  #puts "⚙Preparing directory structure in #{@@install_path}"
160
168
  return if @@initialized
169
+
170
+ FileUtils.mkdir_p("#{_root_path}/build")
161
171
  FileUtils.mkdir_p("#{@@install_path}/bin")
162
172
  FileUtils.mkdir_p("#{@@install_path}/include")
163
173
  FileUtils.mkdir_p("#{@@install_path}/lib")
@@ -8,37 +8,48 @@ module Gears
8
8
  @gear_name = "APNGAsm"
9
9
 
10
10
  def check()
11
- gear_exec 'ldconfig -p | grep libapngasm'
12
- if $?.exitstatus == 0
13
- @checked = true
14
- return true
11
+ puts 'Checking for APNGAsm libraries'
12
+ if RUBY_PLATFORM.match(/darwin/)
13
+ @checked = gear_exec_mac > 0 ? true : false
14
+ else
15
+ gear_exec 'ldconfig -p | grep libapngasm'
16
+ @checked = $?.exitstatus == 0 ? true : false
15
17
  end
16
- @checked = false
17
- return false
18
+ @checked
18
19
  end
19
20
 
20
21
  def obtain()
22
+ puts 'Obtaining APNGAsm sources'
21
23
  github_obtain('apngasm', 'apngasm')
22
24
  end
23
25
 
24
26
  def build()
25
- # prerequisites
27
+ puts 'Engaging APNGAsm dependencies'
26
28
  cm = Gears::CMake.new
27
- cm.engage
29
+ cm_run = Thread.new { cm.engage }
28
30
  boost = Gears::Boost.new
29
- boost.engage
31
+ boost_run = Thread.new { boost.engage }
32
+ cm_run.join
33
+ boost_run.join
30
34
 
35
+ puts "Building APNGAsm in #{@build_path}"
31
36
  Dir.chdir(@build_path)
37
+ `git checkout swig_interfaces`
32
38
  FileUtils.mkdir_p('build') # `mkdir build`
33
39
  Dir.chdir('build') # `cd build`
34
- gear_exec 'cmake -DCMAKE_INSTALL_PREFIX:PATH=#{@@install_path} ..'
35
- gear_exec 'make'
40
+ puts "cmake -DCMAKE_INSTALL_PREFIX=#{@@install_path} .."
41
+ `cmake -DCMAKE_INSTALL_PREFIX=#{@@install_path} ..`
42
+ `make`
36
43
  @built = true
37
- return true
44
+ true
38
45
  end
39
46
 
40
47
  def install()
41
- std_make_install
48
+ puts "Installing APNGAsm to #{@@install_path}"
49
+ Dir.chdir(@build_path + '/build')
50
+ `make install`
51
+ @installed = true
52
+ true
42
53
  end
43
54
 
44
55
  #TODO uninstall
@@ -5,35 +5,55 @@ module Gears
5
5
  @gear_name = "Boost"
6
6
 
7
7
  def check()
8
- gear_exec 'ldconfig -p | grep libboost'
9
- if $?.exitstatus == 0
10
- @checked = true
11
- return true
8
+ puts 'Checking for Boost'
9
+ if RUBY_PLATFORM.match(/darwin/)
10
+ @checked = gear_exec_mac > 0 ? true : false
11
+ else
12
+ gear_exec 'ldconfig -p | grep libboost'
13
+ @checked = $?.exitstatus == 0 ? true : false
12
14
  end
13
- @checked = false
14
- return false
15
+ @checked
15
16
  end
16
17
 
17
18
  def obtain()
18
- github_obtain('boostorg', 'boost')
19
+ puts 'Obtaining Boost'
20
+ # github_obtain('boostorg', 'boost')
21
+ Dir.chdir(_root_path + '/build')
22
+ return true if Dir.exist? 'Boost'
23
+
24
+ `wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.zip`
25
+ `unzip boost_1_59_0.zip`
26
+ `mv boost_1_59_0 Boost`
27
+ FileUtils.rm('boost_1_59_0.zip')
28
+ true
19
29
  end
20
30
 
21
31
  def build()
32
+ puts "Building Boost in #{@build_path}"
22
33
  Dir.chdir(@build_path)
34
+ puts '...boostrapping'
23
35
  `./bootstrap.sh --without-libraries=python --prefix=#{@@install_path}`
36
+ puts '...compiling headers'
24
37
  `./b2 headers`
38
+ puts '...building'
25
39
  `./b2`
26
- `./b2 install --prefix=#{@@install_path}`
27
40
  @built = true
28
41
  return true
29
42
  end
30
43
 
31
44
  def install()
32
- std_make_install
45
+ puts "Installing Boost to #{@@install_path}"
46
+ Dir.chdir(@build_path)
47
+ `./b2 install --prefix=#{@@install_path}`
48
+ @installed = true
49
+ true
33
50
  end
34
51
 
35
52
  def uninstall()
36
- #TODO
53
+ FileUtils.rm_f(Dir.glob("#{@@install_path}/lib/libboost.*"))
54
+ FileUtils.rm_rf("#{@@install_path}/include/boost")
55
+ @installed = false
56
+ true
37
57
  end
38
58
  end
39
59
  end
@@ -7,35 +7,41 @@ module Gears
7
7
  @gear_name = "CMake"
8
8
 
9
9
  def check()
10
- gear_exec 'cmake --version'
11
- if $?.exitstatus == 0
12
- @checked = true
13
- return true
10
+ puts 'Checking for CMake'
11
+ if RUBY_PLATFORM.match(/darwin/)
12
+ @checked = gear_exec_mac > 0 ? true : false
13
+ else
14
+ gear_exec 'cmake --version'
15
+ @checked = $?.exitstatus == 0 ? true : false
14
16
  end
15
- @checked = false
16
- return false
17
+ return @checked
17
18
  end
18
19
 
19
20
  def obtain()
21
+ puts 'Obtaining CMake'
20
22
  github_obtain('Kitware', 'CMake')
21
23
  end
22
24
 
23
25
  def build()
26
+ puts 'Engaging CMake dependencies'
24
27
  la = Gears::LibArchive.new
25
28
  la.engage
26
29
 
30
+ puts "Building CMake in #{@build_path}"
27
31
  Dir.chdir(@build_path)
28
- `sh bootstrap --prefix=#{@@install_path}`
32
+ `./configure --prefix=#{@@install_path}`
29
33
  `make`
30
34
  @built = true
31
35
  return true
32
36
  end
33
37
 
34
38
  def install()
39
+ puts "Installing CMake to #{@@install_path}"
35
40
  std_make_install
36
41
  end
37
42
 
38
43
  def uninstall()
44
+ puts 'Uninstalling CMake'
39
45
  FileUtils.rm_f("#{@@install_path}/bin/ccmake")
40
46
  FileUtils.rm_f("#{@@install_path}/bin/cmake")
41
47
  FileUtils.rm_f("#{@@install_path}/bin/cmakexbuild")
@@ -5,26 +5,38 @@ module Gears
5
5
  @gear_name = "libarchive"
6
6
 
7
7
  def check()
8
- gear_exec 'ldconfig -p | grep libarchive'
9
- if $?.exitstatus == 0
10
- @checked = true
11
- return true
8
+ puts 'Checking for libarchive'
9
+ if RUBY_PLATFORM.match(/darwin/)
10
+ @checked = gear_exec_mac > 0 ? true : false
11
+ else
12
+ gear_exec 'ldconfig -p | grep libarchive'
13
+ @checked = $?.exitstatus == 0 ? true : false
12
14
  end
13
- @checked = false
14
- return false
15
+ @checked
15
16
  end
16
17
 
17
18
  def obtain()
18
- github_obtain('libarchive', 'libarchive')
19
+ puts 'Obtaining libarchive'
20
+ # github_obtain('libarchive', 'libarchive', 'release')
21
+ return true if File.exist? 'libarchive'
22
+ Dir.chdir(_root_path + '/build')
23
+ `wget http://www.libarchive.org/downloads/libarchive-3.1.2.zip`
24
+ `unzip libarchive-3.1.2.zip`
25
+ `mv libarchive-3.1.2 libarchive`
19
26
  end
20
27
 
21
28
  def build()
29
+ puts "Building libarchive in #{@build_path}"
30
+ # TODO: fix build error
22
31
  Dir.chdir(@build_path)
23
- `sh build/autogen.sh`
24
- `./configure --prefix=#{@@install_path}`
32
+ # `git checkout release`
33
+ # `sh build/autogen.sh`
34
+ puts '...configuring'
35
+ `./configure --prefix=#{@@install_path} --without-lzo2 --without-nettle --without-xml2`
36
+ puts '...making'
25
37
  `make`
26
38
  @built = true
27
- return true
39
+ true
28
40
  end
29
41
 
30
42
  def install()
@@ -45,7 +57,7 @@ module Gears
45
57
  FileUtils.rm_rf("#{@@install_path}/share/man/man3")
46
58
  FileUtils.rm_rf("#{@@install_path}/share/man/man5")
47
59
  @installed = false
48
- return true
60
+ true
49
61
  end
50
62
  end
51
- end
63
+ end
@@ -5,39 +5,48 @@ module Gears
5
5
  @gear_name = "SWIG"
6
6
 
7
7
  def check()
8
- gear_exec 'swig -version'
9
- if $?.exitstatus == 0
10
- @checked = true
11
- return true
8
+ puts 'Checking for SWIG'
9
+ if RUBY_PLATFORM.match(/darwin/)
10
+ @checked = gear_exec_mac > 0 ? true : false
11
+ else
12
+ gear_exec 'swig -version'
13
+ @checked = $?.exitstatus == 0 ? true : false
12
14
  end
13
- @checked = false
14
- return false
15
+ @checked
15
16
  end
16
17
 
17
18
  def obtain()
19
+ puts 'Obtaining SWIG'
18
20
  github_obtain('swig', 'swig')
19
21
  end
20
22
 
21
23
  def build()
24
+ puts "Building SWIG in #{@build_path}"
22
25
  Dir.chdir(@build_path)
23
- `sh autogen.sh`
24
- `sh configure --prefix=#{@@install_path}`
26
+ `./autogen.sh`
27
+ `./configure --prefix=#{@@install_path}`
25
28
  `make`
26
29
  @built = true
27
- return true
30
+ true
28
31
  end
29
32
 
30
33
  def install()
31
- std_make_install
34
+ puts "Installing SWIG to #{@@install_path}"
35
+ Dir.chdir(@build_path)
36
+ `make install-main`
37
+ `make install-lib`
38
+ @installed = true
39
+ true
32
40
  end
33
41
 
34
42
  def uninstall()
43
+ puts 'Uninstalling SWIG'
35
44
  FileUtils.rm_f("#{@@install_path}/bin/swig")
36
45
  FileUtils.rm_f("#{@@install_path}/bin/ccache-swig")
37
46
  FileUtils.rm_rf("#{@@install_path}/share/swig")
38
47
  FileUtils.rm_f("#{@@install_path}/share/man/man1/ccache-swig.1")
39
48
  @installed = false
40
- return true
49
+ true
41
50
  end
42
51
  end
43
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gear
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rei Kagetsuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-19 00:00:00.000000000 Z
11
+ date: 2015-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: git