diff options
| author | Misty De Meo | 2013-10-06 16:59:39 -0700 | 
|---|---|---|
| committer | Misty De Meo | 2013-10-06 19:26:06 -0700 | 
| commit | 77b678cea95b762cbeda3f2d69b93c43a3848a15 (patch) | |
| tree | ec7057fa6c3791fcce12b5e1f8ef43d7c25c85ad | |
| parent | 52af93123a067aa50e6ba8c23d395875cdcc9871 (diff) | |
| download | homebrew-77b678cea95b762cbeda3f2d69b93c43a3848a15.tar.bz2 | |
CxxStdlib: allow for nil stdlibs
A nil stdlib value represents non-C++ code.
| -rw-r--r-- | Library/Homebrew/cxxstdlib.rb | 7 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_stdlib.rb | 5 | 
2 files changed, 10 insertions, 2 deletions
diff --git a/Library/Homebrew/cxxstdlib.rb b/Library/Homebrew/cxxstdlib.rb index 4e3bed22e..06668e991 100644 --- a/Library/Homebrew/cxxstdlib.rb +++ b/Library/Homebrew/cxxstdlib.rb @@ -2,11 +2,11 @@ class CxxStdlib    attr_accessor :type, :compiler    def initialize(type, compiler) -    if ![:libstdcxx, :libcxx].include? type +    if type && ![:libstdcxx, :libcxx].include?(type)        raise ArgumentError, "Invalid C++ stdlib type: #{type}"      end -    @type     = type.to_sym +    @type     = type.to_sym if type      @compiler = compiler.to_sym    end @@ -15,6 +15,9 @@ class CxxStdlib    end    def compatible_with?(other) +    # If either package doesn't use C++, all is well +    return true if type.nil? || other.type.nil? +      # libstdc++ and libc++ aren't ever intercompatible      return false unless type == other.type diff --git a/Library/Homebrew/test/test_stdlib.rb b/Library/Homebrew/test/test_stdlib.rb index a5e276746..79af446d7 100644 --- a/Library/Homebrew/test/test_stdlib.rb +++ b/Library/Homebrew/test/test_stdlib.rb @@ -13,6 +13,7 @@ class CxxStdlibTests < Test::Unit::TestCase      @gcc48 = CxxStdlib.new(:libstdcxx, 'gcc-4.8')      @gcc49 = CxxStdlib.new(:libstdcxx, 'gcc-4.9')      @lcxx  = CxxStdlib.new(:libcxx, :clang) +    @purec = CxxStdlib.new(nil, :clang)    end    def test_apple_libstdcxx_intercompatibility @@ -59,4 +60,8 @@ class CxxStdlibTests < Test::Unit::TestCase      assert_equal stdlib.compiler, :clang      assert_equal stdlib.type, :libstdcxx    end + +  def test_compatibility_for_non_cxx_software +    assert @purec.compatible_with?(@clang) +  end  end  | 
