Skip to content

Commit 39b6d18

Browse files
committed
Support building on XCode 14 on macos
1 parent 4453bc1 commit 39b6d18

File tree

4 files changed

+58
-9
lines changed

4 files changed

+58
-9
lines changed

ext/gdk_pixbuf_cairo/extconf.rb

+28-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,33 @@
66
require 'English'
77
require 'rubygems'
88
gem 'glib2'
9-
require 'mkmf-gnome2'
9+
require 'mkmf-gnome'
10+
11+
def macos?
12+
!!(RUBY_PLATFORM =~ /darwin/)
13+
end
14+
15+
def clang?
16+
cc_version = `#{RbConfig.expand('$(CC) --version' + '')}`
17+
cc_version.match?(/clang/i)
18+
end
19+
20+
# XCode 14 warns if `-Wl,-undefined dynamic_lookup` is specified, and as
21+
# a result Ruby interpreters compiled under XCode 14 no longer specify
22+
# this flag by default in DLDFLAGS. Let's specify the list of dynamic symbols
23+
# here to avoid compilation failures.
24+
if clang? && macos?
25+
dynamic_symbols = %w[
26+
_rb_cairo_surface_from_ruby_object
27+
_rb_cairo_surface_to_ruby_object_with_destroy
28+
_rbgobj_instance_from_ruby_object
29+
_rbgobj_ruby_object_from_instance
30+
]
31+
dynamic_symbols.each do |sym|
32+
$DLDFLAGS << " -Wl,-U,#{sym.strip}"
33+
end
34+
end
35+
1036
%w[rbglib.h rbpango.h rcairo.h].each do |header|
1137
Gem.find_files(header).each do |f|
1238
$CFLAGS += " '-I#{File.dirname(f)}'"
@@ -33,7 +59,7 @@
3359
$CFLAGS += ' -I.'
3460
have_func('rb_errinfo')
3561
PKGConfig.have_package('gdk-pixbuf-2.0') or exit(-1)
36-
PKGConfig.have_package('gdk-2.0') or exit(-1)
62+
# PKGConfig.have_package('gdk-2.0') or exit(-1)
3763
PKGConfig.have_package('cairo') or exit(-1)
3864

3965
unless have_header('gdk-pixbuf/gdk-pixbuf.h')

ext/morandi_native/extconf.rb

+26-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,31 @@
66
require 'English'
77
require 'rubygems'
88
gem 'glib2'
9-
require 'mkmf-gnome2'
9+
require 'mkmf-gnome'
10+
11+
def macos?
12+
!!(RUBY_PLATFORM =~ /darwin/)
13+
end
14+
15+
def clang?
16+
cc_version = `#{RbConfig.expand('$(CC) --version' + '')}`
17+
cc_version.match?(/clang/i)
18+
end
19+
20+
# XCode 14 warns if `-Wl,-undefined dynamic_lookup` is specified, and as
21+
# a result Ruby interpreters compiled under XCode 14 no longer specify
22+
# this flag by default in DLDFLAGS. Let's specify the list of dynamic symbols
23+
# here to avoid compilation failures.
24+
if clang? && macos?
25+
dynamic_symbols = %w[
26+
_rbgobj_instance_from_ruby_object
27+
_rbgobj_ruby_object_from_instance
28+
]
29+
dynamic_symbols.each do |sym|
30+
$DLDFLAGS << " -Wl,-U,#{sym.strip}"
31+
end
32+
end
33+
1034
%w[rbglib.h rbpango.h].each do |header|
1135
Gem.find_files(header).each do |f|
1236
$CFLAGS += " '-I#{File.dirname(f)}'"
@@ -33,7 +57,7 @@
3357
$CFLAGS += ' -I.'
3458
have_func('rb_errinfo')
3559
PKGConfig.have_package('gdk-pixbuf-2.0') or exit(-1)
36-
PKGConfig.have_package('gdk-2.0') or exit(-1)
60+
# PKGConfig.have_package('gdk-2.0') or exit(-1)
3761

3862
unless have_header('gdk-pixbuf/gdk-pixbuf.h')
3963
paths = Gem.find_files('gdk-pixbuf/gdk-pixbuf.h')

lib/morandi/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Morandi
4-
VERSION = '0.99.01'
4+
VERSION = '0.99.03'
55
end

morandi.gemspec

+3-4
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,15 @@ Gem::Specification.new do |spec|
1717
spec.required_ruby_version = '>= 2.0'
1818
spec.files = `git ls-files -z`.split("\x0")
1919
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
2120
spec.require_paths = ['lib']
2221

2322
spec.extensions = %w[ext/morandi_native/extconf.rb ext/gdk_pixbuf_cairo/extconf.rb]
2423

25-
spec.add_dependency 'atk'
24+
spec.add_dependency 'atk', '> 4.0.0'
2625
spec.add_dependency 'cairo'
2726
spec.add_dependency 'colorscore'
28-
spec.add_dependency 'gdk_pixbuf2', '> 3.4.0'
29-
spec.add_dependency 'pango'
27+
spec.add_dependency 'gdk_pixbuf2', '> 4.0.0'
28+
spec.add_dependency 'pango', '> 4.0.0'
3029
spec.add_dependency 'rake-compiler'
3130

3231
spec.add_development_dependency 'guard'

0 commit comments

Comments
 (0)