summaryrefslogtreecommitdiff
path: root/rakelib/hhvm.rake
diff options
context:
space:
mode:
Diffstat (limited to 'rakelib/hhvm.rake')
-rw-r--r--rakelib/hhvm.rake104
1 files changed, 0 insertions, 104 deletions
diff --git a/rakelib/hhvm.rake b/rakelib/hhvm.rake
deleted file mode 100644
index b7660b3..0000000
--- a/rakelib/hhvm.rake
+++ /dev/null
@@ -1,104 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at https://mozilla.org/MPL/2.0/.
-
-# frozen_string_literal: true
-
-require 'pathname'
-
-namespace :hhvm do
- def filter_set_hhvm_third_party_source_args(tokens)
- args = tokens[0]
- allowed_arguments = tokens[1..].each_slice(2)
- .filter do |key, _value|
- !key.end_with?('_URL') && !key.end_with?('_HASH')
- end
-
- allowed_arguments
- .flatten
- .prepend(" #{args}")
- .join("\n ")
- end
-
- def split_set_hhvm_third_party_source_args(section_content)
- section_content
- .split("\n")
- .map do |line|
- hash_index = line.index '#'
- line = line[...hash_index] unless hash_index.nil?
-
- line.strip
- end
- end
-
- def rewrite_set_hhvm_third_party_source_args(contents)
- set_hhvm_start = contents.index 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('
- return nil if set_hhvm_start.nil?
-
- section_contents = contents[set_hhvm_start + 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('.length..]
- set_hhvm_end = section_contents.index ')'
-
- lines = split_set_hhvm_third_party_source_args section_contents[...set_hhvm_end]
- new_cmake_section = filter_set_hhvm_third_party_source_args lines.reject(&:blank?).join(' ').split
-
- contents[...set_hhvm_start] +
- "SET_HHVM_THIRD_PARTY_SOURCE_ARGS(\n#{new_cmake_section}\n)\n" +
- section_contents[set_hhvm_end..]
- end
-
- desc 'Generates diffs with removed download URLs'
- task :bundled_dependencies, [:version] do |_, arguments|
- run_on_source arguments[:version] do |third_party|
- c_make_lists = third_party + 'CMakeLists.txt'
- next unless c_make_lists.exist?
-
- contents = c_make_lists.read
- rewritten_cmake = rewrite_set_hhvm_third_party_source_args contents
- next if rewritten_cmake.nil?
-
- puts Open3.capture2('diff', '-Nur', c_make_lists.to_path, '-', stdin_data: rewritten_cmake).first
- end
- end
-
- desc 'Generated SlackBuild code to prepare bundled dependencies'
- task :bundled_code, [:version] do |_, arguments|
- run_on_source arguments[:version] do |third_party|
- c_make_lists = third_party + 'CMakeLists.txt'
- next unless c_make_lists.exist?
-
- contents = c_make_lists.read
- set_hhvm_start = contents.index 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('
- next if set_hhvm_start.nil?
-
- set_hhvm_end = contents.index ')', set_hhvm_start
- set_hhvm_start += 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('.length
- set_hhvm_end -= 1
- contents = contents[set_hhvm_start..set_hhvm_end].split[1..].map(&:strip)
-
- src = Pathname.new('third-party') +
- third_party.basename +
- "bundled_#{third_party.basename}-prefix" + 'src'
- bundled = src + "bundled_#{third_party.basename}"
- archive_name = contents[1][contents[1].rindex('/') + 1..-2]
-
- puts "mkdir -p #{bundled}"
- puts "install -m 0644 -D $CWD/#{archive_name} #{src + archive_name}"
- puts "tar -zxvf $CWD/#{archive_name} -C #{bundled}"
- puts
- end
- end
-end
-
-private
-
-def run_on_source(version, &block)
- package = Package.new 'development/hhvm',
- version: version,
- homepage: 'https://hhvm.com/',
- requires: %w[tbb glog libdwarf libmemcached dobule-conversion]
- repository = SlackBuilder.clone 'https://github.com/facebook/hhvm.git', package, 'HHVM-'
-
- (repository + 'third-party').each_child do |third_party|
- block.call third_party
- end
-end