pkgforge 0.0.8 → 0.0.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba97469eb9557bba0397186050b38efbaedb7128
4
- data.tar.gz: 42e2bda14d8590f5dde4c376c860fa3baaccc7e3
3
+ metadata.gz: 0b34c7a3460db065b8c5e94e081a834c9a041880
4
+ data.tar.gz: 3c0cedc6cdc960c04ec54f69687c31a8299d95a2
5
5
  SHA512:
6
- metadata.gz: e27d93da301f01552748751a2c289039fe88bfe4c9a132b7b501406af2f3da86234d0e28fb45b66b114f10422e4b9ab30a1079575dd5031ece2f80f473b5b7cc
7
- data.tar.gz: 3ff03d25d3e0b5ab08aa5ce409902d7ab0d57dbb5c2244eecb2cb0f5c405394d86d29cf039d3eea47d635b40529a4adbac439a6d0621ccf2069fd43ee452d960
6
+ metadata.gz: 63328dcf32afb5fb5eba434129d52068c2ada3922de743ed41d27242cd739c9e0d108997d2569a75157be9378a297ae785db84482eaf788ea382d5bd06b6045f
7
+ data.tar.gz: 0b403664b317fd60cbb08ddcc416143c6ca8e5d646e1fae85a68648513ed5809ebabfa911f690943b6f4a29b3dc9a1894796c130363962493655056acc70c77f
data/lib/pkgforge.rb CHANGED
@@ -8,6 +8,7 @@ require 'pkgforge/forge'
8
8
  require 'pkgforge/forgedsl'
9
9
  require 'pkgforge/builddsl'
10
10
  require 'pkgforge/testdsl'
11
+ require 'pkgforge/versiondsl'
11
12
 
12
13
  ##
13
14
  # DSL engine for compiling Arch packages
@@ -22,9 +22,13 @@ module PkgForge
22
22
 
23
23
  Contract None => nil
24
24
  def configure
25
- flag_strings = @forge.flags.map { |k, v| "--#{k}=#{v}" }
25
+ flag_strings = @forge.configure_flags.map do |flag, value|
26
+ "--#{flag}#{'=' if value}#{value}"
27
+ end
26
28
  env = {
27
- 'CC' => 'musl-gcc'
29
+ 'CC' => 'musl-gcc',
30
+ 'CFLAGS' => @forge.cflags,
31
+ 'LIBS' => @forge.libs
28
32
  }
29
33
  run ['./configure'] + flag_strings, env
30
34
  end
@@ -15,8 +15,9 @@ module PkgForge
15
15
  include PkgForge::Prepare
16
16
  include PkgForge::Push
17
17
 
18
- attr_accessor :name, :org, :deps, :flags, :version_block, :patches,
19
- :build_block, :test_block, :license
18
+ attr_accessor :name, :org, :deps, :configure_flags, :version_block,
19
+ :patches, :build_block, :test_block, :license, :cflags,
20
+ :libs
20
21
 
21
22
  Contract Maybe[HashOf[Symbol => Any]] => nil
22
23
  def initialize(params = {})
@@ -25,8 +26,8 @@ module PkgForge
25
26
  @deps = {}
26
27
  @flags = {}
27
28
  @patches = []
28
- @build_block = proc { fail('No build block provided') }
29
- @test_block = proc { fail('No test block provided') }
29
+ @build_block = proc { raise('No build block provided') }
30
+ @test_block = proc { raise('No test block provided') }
30
31
  nil
31
32
  end
32
33
 
@@ -33,12 +33,12 @@ module PkgForge
33
33
  end
34
34
 
35
35
  Contract HashOf[Symbol => String] => nil
36
- def flags(value)
37
- @forge.flags = value
36
+ def configure_flags(value)
37
+ @forge.configure_flags = value
38
38
  nil
39
39
  end
40
40
 
41
- Contract Func[None => String] => nil
41
+ Contract Func[None => Maybe[String]] => nil
42
42
  def version(&block)
43
43
  @forge.version_block = block
44
44
  nil
@@ -73,5 +73,19 @@ module PkgForge
73
73
  def dep(dep_name)
74
74
  @forge.dep(dep_name)
75
75
  end
76
+
77
+ Contract Maybe[String] => nil
78
+ def cflags(value = nil)
79
+ default = '-I%{dep}/usr/include -L%{dep}/usr/lib'
80
+ value ||= @forge.deps.map { |x, _| default % { dep: dep(x) } }.join(' ')
81
+ @forge.cflags = value
82
+ nil
83
+ end
84
+
85
+ Contract Maybe[String] => nil
86
+ def libs(value = nil)
87
+ value ||= @forge.deps.map { |x, _| '-l' + x }.join(' ')
88
+ @forge.libs = value
89
+ end
76
90
  end
77
91
  end
@@ -55,7 +55,9 @@ module PkgForge
55
55
 
56
56
  Contract None => String
57
57
  def version
58
- @version ||= Dir.chdir(tmpdir(:build)) { version_block.call }
58
+ @version ||= Dir.chdir(tmpdir(:build)) do
59
+ VersionDSL.new(self).instance_eval(&version_block)
60
+ end
59
61
  end
60
62
 
61
63
  Contract None => Num
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # Declare version number
3
3
  module PkgForge
4
- VERSION = '0.0.8'.freeze
4
+ VERSION = '0.0.9'.freeze
5
5
  end
@@ -0,0 +1,23 @@
1
+ module PkgForge
2
+ ##
3
+ # Version engine
4
+ class VersionDSL
5
+ include Contracts::Core
6
+ include Contracts::Builtin
7
+
8
+ Contract PkgForge::Forge => nil
9
+ def initialize(forge)
10
+ @forge = forge
11
+ nil
12
+ end
13
+
14
+ private
15
+
16
+ Contract Maybe[Regexp], Maybe[String] => String
17
+ def git_tag(regex = nil, replace = '\1')
18
+ tag = `git describe --tags`.rstrip
19
+ tag.gsub!(regex, replace) if regex
20
+ tag
21
+ end
22
+ end
23
+ end
data/pkgforge.gemspec CHANGED
@@ -24,5 +24,5 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency 'rake', '~> 11.2.0'
25
25
  s.add_development_dependency 'codecov', '~> 0.1.1'
26
26
  s.add_development_dependency 'rspec', '~> 3.5.0'
27
- s.add_development_dependency 'fuubar', '~> 2.1.0'
27
+ s.add_development_dependency 'fuubar', '~> 2.2.0'
28
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkgforge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Les Aker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-22 00:00:00.000000000 Z
11
+ date: 2016-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mercenary
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 2.1.0
103
+ version: 2.2.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 2.1.0
110
+ version: 2.2.0
111
111
  description: DSL engine for building Arch packages
112
112
  email: me@lesaker.org
113
113
  executables:
@@ -135,6 +135,7 @@ files:
135
135
  - lib/pkgforge/push.rb
136
136
  - lib/pkgforge/testdsl.rb
137
137
  - lib/pkgforge/version.rb
138
+ - lib/pkgforge/versiondsl.rb
138
139
  - pkgforge.gemspec
139
140
  - spec/pkgforge_spec.rb
140
141
  - spec/spec_helper.rb