autobuild 1.4.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,13 @@
1
+ == Version 1.4.2
2
+ * call subversion with the --non-interactive option, otherwise the build will
3
+ block indefinitely. Note that git "questions" are properly passed to the user.
4
+ * don't forcefully depend on orogen being available. This fixes bootstrapping
5
+ situations where both orogen and some orogen modules need to be built.
6
+ * workaround CMake heavy-caching behaviour. When a reconfiguration is needed,
7
+ delete the CMakeCache.txt file instead of recalling cmake on top of it. It
8
+ should fix most of the problems of CMake related to caching of pkg-config
9
+ files for instance.
10
+
1
11
  == Version 1.4.0
2
12
  * cmake package handler now displays progress value
3
13
  * added support for parallel builds
data/README.txt CHANGED
@@ -1,7 +1,8 @@
1
- Copyright (c) 2006-2008 Sylvain Joyeux <sylvain.joyeux@m4x.org>
1
+ Copyright (c) 2006-2009 Sylvain Joyeux <sylvain.joyeux@m4x.org>
2
2
 
3
- * http://www.rubyforge.org/projects/autobuild
4
- * http://autobuild.rubyforge.org/autobuild
3
+ * http://doudou.github.com/autobuild
4
+ * http://github.com/doudou/autobuild
5
+ * http://doudou.github.com/autoproj
5
6
 
6
7
  This work is licensed under the GPLv2 license. See License.txt for details
7
8
 
@@ -1,5 +1,5 @@
1
1
  module Autobuild
2
- VERSION = "1.4.1" unless defined? Autobuild::VERSION
2
+ VERSION = "1.4.2" unless defined? Autobuild::VERSION
3
3
  end
4
4
 
5
5
  require 'autobuild/config'
@@ -38,12 +38,12 @@ module Autobuild
38
38
  if source != @source
39
39
  raise ConfigException, "current checkout found at #{package.srcdir} is from #{source}, was expecting #{@source}"
40
40
  end
41
- Subprocess.run(package.name, :import, @program, 'up', *@options_up)
41
+ Subprocess.run(package.name, :import, @program, 'up', "--non-interactive", *@options_up)
42
42
  }
43
43
  end
44
44
 
45
45
  def checkout(package) # :nodoc:
46
- options = [ @program, 'co' ] + @options_co + [ @source, package.srcdir ]
46
+ options = [ @program, 'co', "--non-interactive" ] + @options_co + [ @source, package.srcdir ]
47
47
  Subprocess.run(package.name, :import, *options)
48
48
  end
49
49
  end
@@ -286,6 +286,10 @@ module Autobuild
286
286
  # if with_provides is true, includes the list
287
287
  # of package aliases
288
288
  def self.each(with_provides = false, &p)
289
+ if !p
290
+ return enum_for(:each, with_provides)
291
+ end
292
+
289
293
  @@packages.each(&p)
290
294
  @@provides.each(&p) if with_provides
291
295
  end
@@ -13,12 +13,36 @@ module Autobuild
13
13
  raise ConfigException, "builddir must be non-nil and non-empty" if (new.nil? || new.empty?)
14
14
  @builddir = new
15
15
  end
16
+
17
+ attr_writer :full_reconfigures
18
+ def full_reconfigures?
19
+ @full_reconfigures
20
+ end
16
21
  end
22
+ @full_reconfigures = true
17
23
 
18
24
  # a key => value association of defines for CMake
19
25
  attr_reader :defines
20
26
  # If true, always run cmake before make during the build
21
27
  attr_accessor :always_reconfigure
28
+ # If true, we always remove the CMake cache before reconfiguring.
29
+ #
30
+ # See #full_reconfigures? for more details
31
+ attr_writer :full_reconfigures
32
+
33
+ # If true, we always remove the CMake cache before reconfiguring. This
34
+ # is to workaround the aggressive caching behaviour of CMake, and is set
35
+ # to true by default.
36
+ #
37
+ # See CMake.full_reconfigures? and CMake.full_reconfigures= for a global
38
+ # setting
39
+ def full_reconfigures?
40
+ if @full_reconfigures.nil?
41
+ CMake.full_reconfigures?
42
+ else
43
+ @full_reconfigures
44
+ end
45
+ end
22
46
 
23
47
  def configurestamp; File.join(builddir, "CMakeCache.txt") end
24
48
 
@@ -126,6 +150,9 @@ module Autobuild
126
150
  command << srcdir
127
151
 
128
152
  Autobuild.progress "generating and configuring build system for #{name}"
153
+ if full_reconfigures?
154
+ FileUtils.rm_f configurestamp
155
+ end
129
156
  Subprocess.run(name, 'configure', *command)
130
157
  super
131
158
  end
@@ -208,13 +208,14 @@ module Autobuild
208
208
 
209
209
  # Find out where orogen is, and make sure the configurestamp depend
210
210
  # on it. Ignore if orogen is too old to have a --base-dir option
211
- orogen_root = `orogen --base-dir`.chomp
212
- if orogen_root.empty?
213
- raise ConfigException, "cannot find the orogen tool"
211
+ orogen_root = `orogen --base-dir 2>&1`
212
+ if !orogen_root.empty?
213
+ orogen_root = orogen_root.split[0].chomp
214
+ if File.directory?(orogen_root)
215
+ orogen_root = File.join(orogen_root, 'orogen')
216
+ file genstamp => Autobuild.source_tree(orogen_root)
217
+ end
214
218
  end
215
- orogen_root = File.join(orogen_root, 'orogen')
216
- file genstamp => Autobuild.source_tree(orogen_root)
217
-
218
219
  file configurestamp => genstamp
219
220
  file genstamp => File.join(srcdir, orogen_file) do
220
221
  regen
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autobuild
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Joyeux
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-25 01:00:00 +02:00
12
+ date: 2009-11-24 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -130,7 +130,7 @@ files:
130
130
  - test/test_subcommand.rb
131
131
  - test/tools.rb
132
132
  has_rdoc: true
133
- homepage: http://autobuild.rubyforge.org/autobuild
133
+ homepage: http://github.com/doudou/autobuild
134
134
  licenses: []
135
135
 
136
136
  post_install_message: