autobuild 1.4.1 → 1.4.2

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.
@@ -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: