daedalus-core 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/.gitignore +1 -0
- data/LICENSE +22 -19
- data/daedalus-core.gemspec +8 -2
- data/lib/daedalus.rb +17 -17
- data/lib/daedalus/version.rb +1 -1
- metadata +22 -18
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZDI2OGRkNTIxZGI1ZmExOGNhOTVmYjY5NzRlZjM2ZDdmZTk0NjFkZTUyZWVi
|
10
|
-
ZjgyNmE3YjAzOTc0YzUwNzRmYjgwNzkwYTZiZmI3ZTYxNGJjYjBjOWM5YmEx
|
11
|
-
N2MxM2VlMTc1YTliMTViMTNkMGE2NzY1NDMzNjJlMTU2NTY1MjQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MjdkYzU2NGQxNWQ4NDcxYjQzMjZmMWY2NTU2ZjI5ZDc4NDZiZWI0OWE1MDkx
|
14
|
-
NjNkZjgyMjkxNGIyY2FmNTcwYjk5NDA5MWM0ZGE4OTM2MmZjOTc5Mzk5MmZj
|
15
|
-
N2Q4OTc2NmFhYWU5YjViNDRhNmRjMTk1YzA0ODViZThiZjc1MTg=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5ceab94baa6293fd163c39bf26ff28cf1bee5817
|
4
|
+
data.tar.gz: 1332e7d94769834b5cc82b6841f556edfa772761
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1a53464f28c9e26fc046877e22c434f616dbbfbe69b93630c7c8791348624b5278bc148b2e7c9b90811b6a976754b6672310624f798e740a88a3aab77a4eb5e7
|
7
|
+
data.tar.gz: 45b3fc6462344aeb054dcb19923451bed5f0f1bcbf95dfee7c8bafa2894c84f4a49223e5eabdee6612dc4dbf6d086bcffdbeaf9a6b85cc511b26766cd5dc806c
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.gem
|
data/LICENSE
CHANGED
@@ -1,22 +1,25 @@
|
|
1
|
-
Copyright (c) 2013 Brian Shirai
|
1
|
+
Copyright (c) 2013, Brian Shirai
|
2
|
+
All rights reserved.
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
files (the "Software"), to deal in the Software without
|
6
|
-
restriction, including without limitation the rights to use,
|
7
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
copies of the Software, and to permit persons to whom the
|
9
|
-
Software is furnished to do so, subject to the following
|
10
|
-
conditions:
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
11
6
|
|
12
|
-
|
13
|
-
|
7
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
8
|
+
list of conditions and the following disclaimer.
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
11
|
+
and/or other materials provided with the distribution.
|
12
|
+
3. Neither the name of the library nor the names of its contributors may be
|
13
|
+
used to endorse or promote products derived from this software without
|
14
|
+
specific prior written permission.
|
14
15
|
|
15
|
-
|
16
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
17
|
-
OF MERCHANTABILITY
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
17
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT,
|
20
|
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
21
|
+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
23
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
24
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
25
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/daedalus-core.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
require 'daedalus/version'
|
2
|
+
require './lib/daedalus/version'
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.name = "daedalus-core"
|
@@ -7,14 +7,20 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.authors = ["Brian Shirai"]
|
8
8
|
gem.email = ["brixen@gmail.com"]
|
9
9
|
gem.homepage = "https://github.com/rubinius/daedalus-core"
|
10
|
+
gem.license = "BSD"
|
10
11
|
|
11
12
|
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) unless File.extname(f) == ".bat" }.compact
|
12
13
|
gem.files = `git ls-files`.split("\n")
|
13
14
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
15
|
gem.require_paths = ["lib"]
|
15
16
|
gem.summary = <<-EOS
|
16
|
-
Daedalus is a build system extracted from Rubinius.
|
17
|
+
Daedalus is a build system extracted from Rubinius. Almost no functionality has been implemented. This is very alpha.
|
17
18
|
EOS
|
19
|
+
gem.description = <<-EOD
|
20
|
+
Daedalus is a build system based on years of attempting to build Rubinus with a collection of Rake tasks. Rubinius is a complex system. It has dependencies on external C libraries (some of which are vendored), internal C/C++ libraries, Ruby C-extensions, and compiled Ruby code. The Rubinius bytecode compiler is written in Ruby, so we have to bootstrap compiling it.
|
21
|
+
|
22
|
+
Rake fails at this task because there is no way to manage multiple, independent dependency trees without subprocessing another Rake process. This results in unreasonable and unmanagable complexity.
|
23
|
+
EOD
|
18
24
|
gem.has_rdoc = true
|
19
25
|
gem.extra_rdoc_files = %w[ README.md LICENSE ]
|
20
26
|
gem.rubygems_version = %q{1.3.5}
|
data/lib/daedalus.rb
CHANGED
@@ -151,12 +151,12 @@ module Daedalus
|
|
151
151
|
@blueprint = blueprint
|
152
152
|
|
153
153
|
@mod_times = Hash.new do |h,k|
|
154
|
-
h[k] = (File.
|
154
|
+
h[k] = (File.exist?(k) ? File.mtime(k) : Time.at(0))
|
155
155
|
end
|
156
156
|
|
157
157
|
@sha1_mtimes = {}
|
158
158
|
@sha1s = Hash.new do |h,k|
|
159
|
-
if File.
|
159
|
+
if File.exist?(k)
|
160
160
|
@log.verbose "computing SHA1: #{k}"
|
161
161
|
@sha1_mtimes[k] = File.mtime(k)
|
162
162
|
h[k] = Digest::SHA1.file(k).hexdigest
|
@@ -274,7 +274,7 @@ module Daedalus
|
|
274
274
|
def initialize(path)
|
275
275
|
@path = path
|
276
276
|
|
277
|
-
if File.
|
277
|
+
if File.exist?(data_path)
|
278
278
|
begin
|
279
279
|
File.open data_path, "rb" do |f|
|
280
280
|
@data = Marshal.load(f.read)
|
@@ -383,12 +383,12 @@ module Daedalus
|
|
383
383
|
end
|
384
384
|
|
385
385
|
def out_of_date?(ctx)
|
386
|
-
unless File.
|
386
|
+
unless File.exist?(@path)
|
387
387
|
return true if @autogen_builder
|
388
388
|
raise Errno::ENOENT, "Missing #{@path}"
|
389
389
|
end
|
390
390
|
|
391
|
-
return true unless File.
|
391
|
+
return true unless File.exist?(object_path)
|
392
392
|
|
393
393
|
return true if ctx.mtime_only and ctx.mtime(@path) > ctx.mtime(object_path)
|
394
394
|
|
@@ -414,14 +414,14 @@ module Daedalus
|
|
414
414
|
end
|
415
415
|
|
416
416
|
def clean
|
417
|
-
File.unlink object_path if File.
|
418
|
-
File.unlink data_path if File.
|
417
|
+
File.unlink object_path if File.exist?(object_path)
|
418
|
+
File.unlink data_path if File.exist?(data_path)
|
419
419
|
|
420
420
|
Dir.rmdir artifacts_path if Dir.entries(artifacts_path).empty?
|
421
421
|
end
|
422
422
|
|
423
423
|
def describe(ctx)
|
424
|
-
if !File.
|
424
|
+
if !File.exist?(object_path)
|
425
425
|
puts "#{@path}: unbuilt"
|
426
426
|
else
|
427
427
|
if @data[:sha1] != sha1(ctx)
|
@@ -472,7 +472,7 @@ module Daedalus
|
|
472
472
|
|
473
473
|
@data_file = "#{@build_dir}.data"
|
474
474
|
|
475
|
-
if File.
|
475
|
+
if File.exist?(@data_file)
|
476
476
|
begin
|
477
477
|
File.open @data_file, "rb" do |f|
|
478
478
|
@data = Marshal.load(f.read)
|
@@ -508,7 +508,7 @@ module Daedalus
|
|
508
508
|
def have_objects
|
509
509
|
return true unless @objects
|
510
510
|
@objects.each do |o|
|
511
|
-
return false unless File.
|
511
|
+
return false unless File.exist?(o)
|
512
512
|
end
|
513
513
|
|
514
514
|
return true
|
@@ -587,9 +587,9 @@ module Daedalus
|
|
587
587
|
|
588
588
|
def out_of_date?(compiler)
|
589
589
|
Dir.chdir @base do
|
590
|
-
return true unless File.
|
590
|
+
return true unless File.exist? name
|
591
591
|
@sources.each do |s|
|
592
|
-
return true unless File.
|
592
|
+
return true unless File.exist? s.object_path
|
593
593
|
return true if File.mtime(s.object_path) > File.mtime(name)
|
594
594
|
end
|
595
595
|
@sources.any? { |s| s.out_of_date? compiler }
|
@@ -603,7 +603,7 @@ module Daedalus
|
|
603
603
|
def clean
|
604
604
|
Dir.chdir @base do
|
605
605
|
@sources.each { |s| s.clean }
|
606
|
-
File.delete name if File.
|
606
|
+
File.delete name if File.exist? name
|
607
607
|
end
|
608
608
|
end
|
609
609
|
end
|
@@ -666,7 +666,7 @@ module Daedalus
|
|
666
666
|
|
667
667
|
def depends_on(file, command)
|
668
668
|
# TODO: HACK, the agony, this should be implicit
|
669
|
-
unless File.
|
669
|
+
unless File.exist? File.join(@base, file)
|
670
670
|
raise "library group #{@base} depends on #{file}, please run #{command}"
|
671
671
|
end
|
672
672
|
end
|
@@ -744,7 +744,7 @@ module Daedalus
|
|
744
744
|
|
745
745
|
def consider(ctx, tasks)
|
746
746
|
@files.each { |x| x.consider(ctx, tasks) }
|
747
|
-
tasks.post << self unless tasks.empty? and File.
|
747
|
+
tasks.post << self unless tasks.empty? and File.exist?(@path)
|
748
748
|
end
|
749
749
|
|
750
750
|
def build(ctx)
|
@@ -757,8 +757,8 @@ module Daedalus
|
|
757
757
|
f.clean if f.respond_to? :clean
|
758
758
|
end
|
759
759
|
|
760
|
-
File.unlink @path if File.
|
761
|
-
File.unlink data_path if File.
|
760
|
+
File.unlink @path if File.exist?(@path)
|
761
|
+
File.unlink data_path if File.exist?(data_path)
|
762
762
|
Dir.rmdir artifacts_path if Dir.entries(artifacts_path).empty?
|
763
763
|
end
|
764
764
|
|
data/lib/daedalus/version.rb
CHANGED
metadata
CHANGED
@@ -1,44 +1,47 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daedalus-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
type: :development
|
15
14
|
name: rake
|
16
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
17
|
- - ~>
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: '0.9'
|
20
|
+
type: :development
|
21
21
|
prerelease: false
|
22
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
type: :development
|
29
28
|
name: rspec
|
30
|
-
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
31
|
- - ~>
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: '2.8'
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.8'
|
41
|
-
description:
|
41
|
+
description: |
|
42
|
+
Daedalus is a build system based on years of attempting to build Rubinus with a collection of Rake tasks. Rubinius is a complex system. It has dependencies on external C libraries (some of which are vendored), internal C/C++ libraries, Ruby C-extensions, and compiled Ruby code. The Rubinius bytecode compiler is written in Ruby, so we have to bootstrap compiling it.
|
43
|
+
|
44
|
+
Rake fails at this task because there is no way to manage multiple, independent dependency trees without subprocessing another Rake process. This results in unreasonable and unmanagable complexity.
|
42
45
|
email:
|
43
46
|
- brixen@gmail.com
|
44
47
|
executables: []
|
@@ -47,6 +50,7 @@ extra_rdoc_files:
|
|
47
50
|
- README.md
|
48
51
|
- LICENSE
|
49
52
|
files:
|
53
|
+
- .gitignore
|
50
54
|
- LICENSE
|
51
55
|
- README.md
|
52
56
|
- daedalus-core.gemspec
|
@@ -54,7 +58,8 @@ files:
|
|
54
58
|
- lib/daedalus/dependency_grapher.rb
|
55
59
|
- lib/daedalus/version.rb
|
56
60
|
homepage: https://github.com/rubinius/daedalus-core
|
57
|
-
licenses:
|
61
|
+
licenses:
|
62
|
+
- BSD
|
58
63
|
metadata: {}
|
59
64
|
post_install_message:
|
60
65
|
rdoc_options:
|
@@ -67,20 +72,19 @@ require_paths:
|
|
67
72
|
- lib
|
68
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
74
|
requirements:
|
70
|
-
- -
|
75
|
+
- - '>='
|
71
76
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
73
|
-
MA==
|
77
|
+
version: '0'
|
74
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
79
|
requirements:
|
76
|
-
- -
|
80
|
+
- - '>='
|
77
81
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
79
|
-
MA==
|
82
|
+
version: '0'
|
80
83
|
requirements: []
|
81
84
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.0.
|
85
|
+
rubygems_version: 2.0.7
|
83
86
|
signing_key:
|
84
87
|
specification_version: 4
|
85
|
-
summary: Daedalus is a build system extracted from Rubinius.
|
88
|
+
summary: Daedalus is a build system extracted from Rubinius. Almost no functionality
|
89
|
+
has been implemented. This is very alpha.
|
86
90
|
test_files: []
|