diff --git a/.gitignore b/.gitignore index feb18620..c7bac795 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ lib/libv8/VERSION /release/**/.scaleway /vendor/.gclient /vendor/.gclient_entries +/vendor/.cipd /vendor/v8/ diff --git a/.travis.yml b/.travis.yml index 42a4f668..727b14eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,12 @@ rvm: - 2.5 matrix: include: - - rvm: 2.6 - os: osx - osx_image: xcode9.4.1 - fast_finish: true + - os: osx + osx_image: xcode12 + - os: osx + osx_image: xcode11.3 + - os: osx + osx_image: xcode10.1 addons: apt: packages: @@ -26,18 +28,22 @@ before_install: script: - git submodule update --init - bundle exec rake spec binary --trace +before_deploy: + - bundle exec rake osx_varients --trace deploy: provider: releases - file: $(git ls-files -o pkg | head -1) + file_glob: true + file: pkg/*.gem api_key: secure: OMCBceg89uRnU+FIPAPbeOK2pISvV4Cz62r9iTRIGXQCOOXX8M40i77/3DmtkMtc9FEuNyAu1+CH886PL2WtZZPK4CmEU3HuqXz1a5VsCI+zcAZL1tevKvblXOVQ3MG+B/SZRC3rEzGwjk4027WtzCCGoGCLUu4TFJP05+/8XN4= skip_cleanup: true on: tags: true - # condition: $TRAVIS_OS_NAME = osx + rvm: '2.7' # Only deploy 1 of each platform cache: bundler: true notifications: recipients: - cowboyd@thefrontside.net - bordjukov@gmail.com + - nightpool@cybre.space diff --git a/CHANGELOG.md b/CHANGELOG.md index 81597410..b5c43c03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### v8.4.255.0 - 2020-07-15 + +* Update upstream v8 version to 8.4.255.0 + ### v7.3.495.0 - 2020-04-14 * Update upstream v8 version to 7.3.495.0 diff --git a/README.md b/README.md index 308622bd..32e7eac4 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,6 @@ platforms. * x86_64-darwin-19 * x86_64-darwin-18 * x86_64-darwin-17 -* x86_64-darwin-16 -* x86_64-darwin-15 -* x86_64-darwin-14 * x86_64-linux * x86-linux diff --git a/Rakefile b/Rakefile index 44c6b408..a58bceab 100644 --- a/Rakefile +++ b/Rakefile @@ -1,6 +1,7 @@ require 'bundler/setup' require 'rspec/core/rake_task' require 'tmpdir' +require 'rubygems/package' Bundler::GemHelper.install_tasks RSpec::Core::RakeTask.new :spec @@ -20,9 +21,20 @@ DISTRIBUTIONS = [ module Helpers module_function def binary_gemspec(platform = Gem::Platform.local) - gemspec = eval(File.read 'libv8.gemspec') - gemspec.platform = platform - gemspec + eval(File.read 'libv8.gemspec').tap do |gemspec| + gemspec.platform = platform + gemspec.extensions.clear + + # We don't need most things for the binary + gemspec.files = [] + gemspec.files += ['lib/libv8.rb', 'lib/libv8/version.rb'] + gemspec.files += ['ext/libv8/location.rb', 'ext/libv8/paths.rb'] + gemspec.files += ['ext/libv8/.location.yml'] + + # V8 + gemspec.files += Dir['vendor/v8/include/**/*.h'] + gemspec.files += Dir['vendor/v8/out.gn/**/*.a'] + end end def binary_gem_name(platform = Gem::Platform.local) @@ -38,28 +50,11 @@ end desc "build a binary gem #{Helpers.binary_gem_name}" task :binary => :compile do gemspec = Helpers.binary_gemspec - gemspec.extensions.clear - - # We don't need most things for the binary - gemspec.files = [] - gemspec.files += ['lib/libv8.rb', 'lib/libv8/version.rb'] - gemspec.files += ['ext/libv8/location.rb', 'ext/libv8/paths.rb'] - gemspec.files += ['ext/libv8/.location.yml'] - - # V8 - gemspec.files += Dir['vendor/v8/include/**/*.h'] - gemspec.files += Dir['vendor/v8/out.gn/**/*.a'] FileUtils.chmod 0644, gemspec.files FileUtils.mkdir_p 'pkg' - package = if Gem::VERSION < '2.0.0' - Gem::Builder.new(gemspec).build - else - require 'rubygems/package' - Gem::Package.build gemspec - end - + package = Gem::Package.build gemspec FileUtils.mv package, 'pkg' end @@ -110,22 +105,19 @@ end task :default => [:compile, :spec] task :build => [:clean] -task :repack, [:gemfile, :new_arch] do |t, args| - dir = Dir::mktmpdir - - begin - sh "gem unpack #{args[:gemfile]} --target=#{dir}" - sh "gem spec #{args[:gemfile]} --ruby > #{dir}/repack.gemspec" - Dir.chdir(dir) do - sh "sed -iorig 's/^ s.platform = .*$/ s.platform = \"#{args[:new_arch]}\".freeze/' repack.gemspec" - Dir.chdir(Dir.glob("libv8-*/").first) do - sh 'mv ../repack.gemspec ./' - sh 'gem build repack.gemspec' - end - end +desc 'Generate OSX varient platform names. Requires `compile` to already have been run.' +task :osx_varients do + gemspec = Helpers.binary_gemspec + next unless gemspec.platform.os == 'osx' + + %w(x86_64 universal).each do |cpu| + platform = gemspec.platform.dup + next unless platform.cpu != cpu + + platform.cpu = cpu + gemspec.platform = platform - sh "mv #{dir}/*/*.gem ./pkg/" - ensure - FileUtils.remove_entry_secure dir + package = Gem::Package.build gemspec + FileUtils.mv package, 'pkg' end end diff --git a/ext/libv8/builder.rb b/ext/libv8/builder.rb index 88716d55..7836f5e5 100644 --- a/ext/libv8/builder.rb +++ b/ext/libv8/builder.rb @@ -23,7 +23,8 @@ def gn_args v8_use_external_startup_data=false target_cpu="#{libv8_arch}" v8_target_cpu="#{libv8_arch}" - treat_warnings_as_errors=false).join(' ') + treat_warnings_as_errors=false + icu_use_data_file=false).join(' ') end def generate_gn_args diff --git a/lib/libv8/version.rb b/lib/libv8/version.rb index 54025723..62cee7b5 100644 --- a/lib/libv8/version.rb +++ b/lib/libv8/version.rb @@ -1,3 +1,3 @@ module Libv8 - VERSION = "7.3.495.0" + VERSION = "8.4.255.0" end diff --git a/vendor/depot_tools b/vendor/depot_tools index 9c062012..9d9199a5 160000 --- a/vendor/depot_tools +++ b/vendor/depot_tools @@ -1 +1 @@ -Subproject commit 9c0620120980e4c247ff8325ee8bbdcd4d9576e0 +Subproject commit 9d9199a509bf792d7d24ac91d92ed0d111f8d9fb