[PATCH] Extended for Darwin OS, includeing osdep support via MacPorts
Matthias Goldhoorn
matthias.goldhoorn at dfki.de
Fri Sep 14 11:44:51 CEST 2012
---
lib/autoproj/default.osdeps | 21 +++++++++++++++++++--
lib/autoproj/osdeps.rb | 17 ++++++++++++++++-
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/lib/autoproj/default.osdeps b/lib/autoproj/default.osdeps
index 37398a4..92b0187 100644
--- a/lib/autoproj/default.osdeps
+++ b/lib/autoproj/default.osdeps
@@ -12,6 +12,9 @@ ruby18:
gentoo:
- dev-lang/ruby:1.8
- rake
+ darwin:
+ - ruby
+ - rb-rake
ruby19:
debian:
@@ -33,25 +36,31 @@ ruby19:
arch:
- ruby
- rake
+ darwin:
+ - ruby19
+ - rake
build-essential:
debian,ubuntu: build-essential
gentoo: ignore
arch: ignore
+ darwin: ignore
libxml2:
debian,ubuntu: libxml2-dev
gentoo: dev-libs/libxml2
arch: libxml2
+ darwin: libxml2
libxslt:
debian,ubuntu: libxslt1-dev
gentoo: dev-libs/libxslt
arch: libxslt
+ darwin: libxslt
zlib:
debian,ubuntu: zlib1g-dev
-
+ darwin: zlib
autobuild: gem
autoproj: gem
@@ -65,32 +74,40 @@ git:
ubuntu: git-core
gentoo: dev-vcs/git
arch: git
+ darwin: git-core
svn:
debian,ubuntu: subversion
gentoo: dev-util/subversion
arch: subversion
+ darwin: subversion
cmake:
debian,ubuntu: cmake
gentoo: dev-util/cmake
arch: cmake
+ darwin: cmake
autotools:
debian,ubuntu: ["automake1.9", autoconf]
gentoo: ["sys-devel/automake:1.9", sys-devel/autoconf]
arch: automake autoconf
+ darwin:
+ - automake
+ - autoconf
lsb_release:
debian,ubuntu: lsb-release
gentoo: sys-apps/lsb-release
arch: ignore
+ darwin: ignore
archive:
debian,ubuntu: [tar, unzip]
gentoo: [app-arch/tar, app-arch/unzip]
arch: [tar, unzip]
+ darwin: [gnutar, unzip]
cvs:
debian,ubuntu: cvs
-
+ darwin: cvs
# vim: expandtab
diff --git a/lib/autoproj/osdeps.rb b/lib/autoproj/osdeps.rb
index a0288bc..72bd9ad 100644
--- a/lib/autoproj/osdeps.rb
+++ b/lib/autoproj/osdeps.rb
@@ -167,6 +167,16 @@ def install(packages)
end
end
+ # Package manager interface for systems that use port (i.e. MacPorts/Darwin) as
+ # their package manager
+ class PortManager < ShellScriptManager
+ def initialize
+ super(['port'], true,
+ "port '%s'",
+ "port '%s'")
+ end
+ end
+
# Package manager interface for systems that use pacman (i.e. arch) as
# their package manager
class PacmanManager < ShellScriptManager
@@ -475,11 +485,13 @@ def self.load_default
PACKAGE_HANDLERS = [PackageManagers::AptDpkgManager,
PackageManagers::GemManager,
PackageManagers::EmergeManager,
- PackageManagers::PacmanManager]
+ PackageManagers::PacmanManager,
+ PackageManagers::PortManager]
OS_PACKAGE_HANDLERS = {
'debian' => 'apt-dpkg',
'gentoo' => 'emerge',
'arch' => 'pacman'
+ 'darwin' => 'port'
}
# The information contained in the OSdeps files, as a hash
@@ -692,6 +704,9 @@ def self.operating_system(options = Hash.new)
[['gentoo'], [version]]
elsif File.exists?('/etc/arch-release')
[['arch'], []]
+ elseif `uname`.chomp == "Darwin"
+ version=`sw_vers | head -2 | tail -1`.split(":")[1]
+ [['darwin'], [version.strip]]
end
end
--
1.7.10.4
--------------020000030508070909090903--
More information about the Rock-dev
mailing list