diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-03-29 18:42:00 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-03-29 20:25:58 +0900 |
commit | f78e1dba89c74e981a672ad3cec58c055bae5b84 (patch) | |
tree | b022072338585d596b9c3cb5cfee60b8d930498c /ext | |
parent | c386ecb0c24eeb9693cc4ad3b1f263b2622c4f1e (diff) | |
download | psych-f78e1dba89c74e981a672ad3cec58c055bae5b84.tar.gz |
Try bundled libyaml source if pre-installed is unavailable
Diffstat (limited to 'ext')
-rw-r--r-- | ext/psych/extconf.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/ext/psych/extconf.rb b/ext/psych/extconf.rb index 17c0dee..78456b5 100644 --- a/ext/psych/extconf.rb +++ b/ext/psych/extconf.rb @@ -7,7 +7,16 @@ if $mswin or $mingw or $cygwin end yaml_source = with_config("libyaml-source-dir") || enable_config("bundled-libyaml", false) +unless yaml_source # default to pre-installed libyaml + pkg_config('yaml-0.1') + dir_config('libyaml') + unless find_header('yaml.h') && find_library('yaml', 'yaml_get_version') + yaml_source = true # fallback to the bundled source if exists + end +end + if yaml_source == true + # search the latest libyaml source under $srcdir yaml_source = Dir.glob("#{$srcdir}/yaml{,-*}/").max_by {|n| File.basename(n).scan(/\d+/).map(&:to_i)} unless yaml_source require_relative '../../tool/extlibs.rb' @@ -16,6 +25,7 @@ if yaml_source == true raise "failed to download libyaml source" end yaml_source, = Dir.glob("#{$srcdir}/yaml-*/") + raise "libyaml not found" unless yaml_source end elsif yaml_source yaml_source = yaml_source.gsub(/\$\((\w+)\)|\$\{(\w+)\}/) {ENV[$1||$2]} @@ -41,12 +51,6 @@ if yaml_source Logging.message("INCLFAG=#$INCLFAG\n") libyaml = "#{yaml}/src/.libs/libyaml.#$LIBEXT" $LOCAL_LIBS.prepend("$(LIBYAML) ") -else - pkg_config('yaml-0.1') - dir_config('libyaml') - unless find_header('yaml.h') && find_library('yaml', 'yaml_get_version') - raise "libyaml not found" - end end create_makefile 'psych' do |mk| |