mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-10 07:57:59 -05:00
adjust llvm and related packages (#2298)
* adjust llvm and related packages * Update llvm.rb
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Clang < Package
|
||||
description 'C language family frontend for LLVM.'
|
||||
homepage 'https://clang.llvm.org/'
|
||||
version '5.0.1'
|
||||
source_url 'https://releases.llvm.org/5.0.1/cfe-5.0.1.src.tar.xz'
|
||||
source_sha256 '135f6c9b0cd2da1aff2250e065946258eb699777888df39ca5a5b4fe5e23d0ff'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/clang-5.0.1-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/clang-5.0.1-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/clang-5.0.1-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/clang-5.0.1-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '10b6e17be70dbb7ffd235f8ba8202365b371928ffe48b36c1e3c4d38ff743e46',
|
||||
armv7l: '10b6e17be70dbb7ffd235f8ba8202365b371928ffe48b36c1e3c4d38ff743e46',
|
||||
i686: '800cc05762df8508cba1696e26f5f1b38f35c823dc77f5e9bb9eb3fd01902489',
|
||||
x86_64: '6512c4905caa1679ab201b31d2e978343f08eb56e0ca5b3006b8aed0c5dbe932',
|
||||
})
|
||||
|
||||
depends_on 'cmake' => :build
|
||||
depends_on 'llvm'
|
||||
depends_on 'clang_libcpp'
|
||||
depends_on 'clang_openmp'
|
||||
depends_on 'llvm_compiler_rt'
|
||||
depends_on 'llvm_polly'
|
||||
depends_on 'llvm_unwind'
|
||||
depends_on 'lld'
|
||||
|
||||
def self.build
|
||||
Dir.mkdir 'mybuilddir'
|
||||
Dir.chdir "mybuilddir" do
|
||||
system "cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release .."
|
||||
system "cmake --build . -- -j#{CREW_NPROC}"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir "mybuilddir" do
|
||||
system "cmake -DCMAKE_INSTALL_PREFIX=#{CREW_DEST_PREFIX} -P cmake_install.cmake"
|
||||
FileUtils.cd("#{CREW_DEST_PREFIX}/bin") do
|
||||
system "echo '#!/bin/bash' > clangppw"
|
||||
system "echo 'GCCVERSION=`gcc --version | grep ^gcc | sed '\\''s/^.* //g'\\''`' >> clangppw"
|
||||
system "echo 'TARGET=`gcc -dumpmachine`' >> clangppw"
|
||||
system "echo '#{CREW_PREFIX}/bin/clang++ -I#{CREW_PREFIX}/include/c++/v1 -B#{CREW_PREFIX}/lib/gcc/${TARGET}/${GCCVERSION} -lc++ $@' >> clangppw"
|
||||
system "chmod 755 clangppw"
|
||||
system "echo '#!/bin/bash' > clangw"
|
||||
system "echo 'GCCVERSION=`gcc --version | grep ^gcc | sed '\\''s/^.* //g'\\''`' >> clangw"
|
||||
system "echo 'TARGET=`gcc -dumpmachine`' >> clangw"
|
||||
system "echo '#{CREW_PREFIX}/bin/clang -B#{CREW_PREFIX}/lib/gcc/${TARGET}/${GCCVERSION} $@' >> clangw"
|
||||
system "chmod 755 clangw"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Clang_libcpp < Package
|
||||
description 'Standard library for Clang5.'
|
||||
homepage 'https://libcxx.llvm.org/'
|
||||
version '5.0.1'
|
||||
source_url 'https://releases.llvm.org/5.0.1/libcxx-5.0.1.src.tar.xz'
|
||||
source_sha256 'fa8f99dd2bde109daa3276d529851a3bce5718d46ce1c5d0806f46caa3e57c00'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/clang_libcpp-5.0.1-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/clang_libcpp-5.0.1-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/clang_libcpp-5.0.1-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/clang_libcpp-5.0.1-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '0e133108ae8098f5b4f7f7d8bade54e7ff3fabf237f5abcf43129b36051d4cff',
|
||||
armv7l: '0e133108ae8098f5b4f7f7d8bade54e7ff3fabf237f5abcf43129b36051d4cff',
|
||||
i686: '7d05985319135a390385059ddc4ef7067398518fa8daaf6a672a68a3f5a08433',
|
||||
x86_64: '3a3d97ee96bb2705e98bbac73905717e5ea257acc7ee20745f0644c7dc720eaa',
|
||||
})
|
||||
|
||||
depends_on 'cmake' => :build
|
||||
depends_on 'llvm'
|
||||
|
||||
def self.build
|
||||
Dir.mkdir 'mybuilddir'
|
||||
Dir.chdir "mybuilddir" do
|
||||
system "cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release .."
|
||||
system "cmake --build . -- -j#{CREW_NPROC}"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir "mybuilddir" do
|
||||
system "cmake -DCMAKE_INSTALL_PREFIX=#{CREW_DEST_PREFIX} -P cmake_install.cmake"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,38 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Clang_openmp < Package
|
||||
description 'The OpenMP subproject of LLVM contains the components required to build an executable OpenMP program that are outside the compiler itself.'
|
||||
homepage 'https://openmp.llvm.org/'
|
||||
version '5.0.1'
|
||||
source_url 'https://releases.llvm.org/5.0.1/openmp-5.0.1.src.tar.xz'
|
||||
source_sha256 'adb635cdd2f9f828351b1e13d892480c657fb12500e69c70e007bddf0fca2653'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/clang_openmp-5.0.1-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/clang_openmp-5.0.1-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/clang_openmp-5.0.1-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/clang_openmp-5.0.1-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: 'd9e49ff4e11df413cc68143cf951cd2e8261676ba8fcd8948e2947dc193a952c',
|
||||
armv7l: 'd9e49ff4e11df413cc68143cf951cd2e8261676ba8fcd8948e2947dc193a952c',
|
||||
i686: 'e462e46e77399edb8d59b11d45b1821ee759e59b289848014479e5fe8dfc7690',
|
||||
x86_64: '367eabe360b8bf396c9c733bd7e177ea10c775b8f96d5b14be7a317bb7992f5d',
|
||||
})
|
||||
|
||||
depends_on 'cmake' => :build
|
||||
|
||||
def self.build
|
||||
Dir.mkdir 'mybuilddir'
|
||||
Dir.chdir "mybuilddir" do
|
||||
system "cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release .."
|
||||
system "cmake --build . -- -j#{CREW_NPROC}"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir "mybuilddir" do
|
||||
system "cmake -DCMAKE_INSTALL_PREFIX=#{CREW_DEST_PREFIX} -P cmake_install.cmake"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,53 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Lld < Package
|
||||
description 'LLD is a linker from the LLVM project.'
|
||||
homepage 'https://lld.llvm.org/'
|
||||
version '6.0.0'
|
||||
source_url 'https://releases.llvm.org/6.0.0/lld-6.0.0.src.tar.xz'
|
||||
source_sha256 '6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/lld-6.0.0-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/lld-6.0.0-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/lld-6.0.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/lld-6.0.0-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '1be1bfd58802046614cd5a8edc5d665a042eeddfeae09e63b1f0e7993aab288f',
|
||||
armv7l: '1be1bfd58802046614cd5a8edc5d665a042eeddfeae09e63b1f0e7993aab288f',
|
||||
i686: '23154f25acc73cdddbacafe3b1a094d2d03a9e1500d8cb1c184793b58116893f',
|
||||
x86_64: '9e57137f1277f6216c1219460203d460344df61c37332a4129d0c97394bd4c25',
|
||||
})
|
||||
|
||||
depends_on 'icu4c'
|
||||
depends_on 'llvm'
|
||||
|
||||
def self.build
|
||||
system "mkdir -p builddir"
|
||||
Dir.chdir("builddir") do
|
||||
case ARCH
|
||||
when "x86_64"
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DLLVM_LIBDIR_SUFFIX=64",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
".."
|
||||
else
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
".."
|
||||
end
|
||||
system "make"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir("builddir") do
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
end
|
||||
end
|
||||
273
packages/llvm.rb
273
packages/llvm.rb
@@ -1,26 +1,251 @@
|
||||
require 'package'
|
||||
|
||||
class Llvm < Package
|
||||
description 'The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.'
|
||||
description 'The LLVM Project (version 6.0.0) is a collection of modular and reusable compiler and toolchain technologies. The optional packages including clang, lld, polly, compiler-rt, libcxx, libcxxabi and openmp are included.'
|
||||
homepage 'http://llvm.org/'
|
||||
version '6.0.0'
|
||||
source_url 'http://llvm.org/releases/6.0.0/llvm-6.0.0.src.tar.xz'
|
||||
version '6.0.0-1'
|
||||
source_url 'https://llvm.org/releases/6.0.0/llvm-6.0.0.src.tar.xz'
|
||||
source_sha256 '1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-chromeos-x86_64.tar.xz',
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-1-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-1-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-1-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm-6.0.0-1-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '9bfffb161e2e3c0642178175fe7ce2c18168c8ab71bce91e10ad4a15b80e3ea7',
|
||||
armv7l: '9bfffb161e2e3c0642178175fe7ce2c18168c8ab71bce91e10ad4a15b80e3ea7',
|
||||
i686: '4e3c4ee05546a808fadfbd7f388ce1f64e8daac72c1eaa7e396ed062c0c94328',
|
||||
x86_64: 'e24785612a16133605fb93fb9fd43d663b3a1e69e6cb69e5c518f23dab8321a3',
|
||||
aarch64: '4c770487aeaa3c86ae1b3154ca4155111454171b1f82416120f73beb8f0e4ded',
|
||||
armv7l: '4c770487aeaa3c86ae1b3154ca4155111454171b1f82416120f73beb8f0e4ded',
|
||||
i686: 'a2c64fd6d83c91e5ecfaebef5a95e54c6843f9370f4d2ba6b936ca61a3ec205a',
|
||||
x86_64: '99267bc8144bc6359eac2fc9810f0c8c814eadcad06e5d167a542d1639c7f9c0',
|
||||
})
|
||||
|
||||
depends_on 'cmake' => :build
|
||||
depends_on 'python27' => :build # for test suite
|
||||
depends_on 'icu4c' # fix uconv.h missing
|
||||
depends_on 'libtirpc'
|
||||
|
||||
|
||||
def self.preinstall
|
||||
|
||||
############################# Download clang (tools) ###########################################
|
||||
url_clang = 'https://llvm.org/releases/6.0.0/cfe-6.0.0.src.tar.xz'
|
||||
uri_clang = URI.parse url_clang
|
||||
filename_clang = File.basename(uri_clang.path)
|
||||
sha256sum_clang = 'e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32'
|
||||
|
||||
if File.exist?(filename_clang) && Digest::SHA256.hexdigest( File.read("./#{filename_clang}") ) == sha256sum_clang
|
||||
puts "Clang source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading clang".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_clang, '-o', filename_clang)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_clang}") ) == sha256sum_clang
|
||||
puts "Clang archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "cfe-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Clang source code unpacked".lightgreen
|
||||
system "rm -rf tools/clang" # remove possible existing folder
|
||||
system "mv -v tools/cfe-6.0.0.src tools/clang"
|
||||
|
||||
############################# Download lld (tools) ###########################################
|
||||
url_lld = 'https://releases.llvm.org/6.0.0/lld-6.0.0.src.tar.xz'
|
||||
uri_lld = URI.parse url_lld
|
||||
filename_lld = File.basename(uri_lld.path)
|
||||
sha256sum_lld = '6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b'
|
||||
|
||||
if File.exist?(filename_lld) && Digest::SHA256.hexdigest( File.read("./#{filename_lld}") ) == sha256sum_lld
|
||||
puts "Lld source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading lld".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_lld, '-o', filename_lld)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_lld}") ) == sha256sum_lld
|
||||
puts "Lld archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "lld-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Lld source code unpacked".lightgreen
|
||||
system "rm -rf tools/lld"
|
||||
system "mv -v tools/lld-6.0.0.src tools/lld"
|
||||
|
||||
############################# Download polly (tools) ###########################################
|
||||
url_polly = 'https://releases.llvm.org/6.0.0/polly-6.0.0.src.tar.xz'
|
||||
uri_polly = URI.parse url_polly
|
||||
filename_polly = File.basename(uri_polly.path)
|
||||
sha256sum_polly = '47e493a799dca35bc68ca2ceaeed27c5ca09b12241f87f7220b5f5882194f59c'
|
||||
|
||||
if File.exist?(filename_polly) && Digest::SHA256.hexdigest( File.read("./#{filename_polly}") ) == sha256sum_polly
|
||||
puts "Polly source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading polly".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_polly, '-o', filename_polly)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_polly}") ) == sha256sum_polly
|
||||
puts "Polly archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "polly-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Polly source code unpacked".lightgreen
|
||||
system "rm -rf tools/polly"
|
||||
system "mv -v tools/polly-6.0.0.src tools/polly"
|
||||
|
||||
# Due to compilation error, extra clang tools are not included.
|
||||
############################## Download extra clang tools (tools) ###########################################
|
||||
#url_extra_tools = 'https://releases.llvm.org/6.0.0/clang-tools-extra-6.0.0.src.tar.xz'
|
||||
#uri_extra_tools = URI.parse url_extra_tools
|
||||
#filename_extra_tools = File.basename(uri_extra_tools.path)
|
||||
#sha256sum_extra_tools = '053b424a4cd34c9335d8918734dd802a8da612d13a26bbb88fcdf524b2d989d2'
|
||||
|
||||
#if File.exist?(filename_extra_tools) && Digest::SHA256.hexdigest( File.read("./#{filename_extra_tools}") ) == sha256sum_extra_tools
|
||||
# puts "Extra_tools source code exists and perform unpacking".yellow
|
||||
# system "tar", "xf", "clang-tools-extra-6.0.0.src.tar.xz", "-C", "tools"
|
||||
# puts "Polly source code unpacked".lightgreen
|
||||
# system "rm -rf tools/extra"
|
||||
# system "mv -v tools/clang-tools-extra-6.0.0.src tools/extra"
|
||||
#else
|
||||
# puts "Downloading extra_tools".yellow
|
||||
# system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_extra_tools, '-o', filename_extra_tools)
|
||||
# abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
# Digest::SHA256.hexdigest( File.read("./#{filename_extra_tools}") ) == sha256sum_extra_tools
|
||||
# puts "Clang extra tools archive downloaded".lightgreen
|
||||
#
|
||||
# system "tar", "xf", "clang-tools-extra-6.0.0.src.tar.xz", "-C", "tools"
|
||||
# puts "Clang extra tools source code unpacked".lightgreen
|
||||
# system "mv -v tools/clang-tools-extra-6.0.0.src tools/extra"
|
||||
#end
|
||||
|
||||
############################# Download compiler-rt (projects) ####################################
|
||||
url_compiler_rt = 'https://releases.llvm.org/6.0.0/compiler-rt-6.0.0.src.tar.xz'
|
||||
uri_compiler_rt = URI.parse url_compiler_rt
|
||||
filename_compiler_rt = File.basename(uri_compiler_rt.path)
|
||||
sha256sum_compiler_rt = 'd0cc1342cf57e9a8d52f5498da47a3b28d24ac0d39cbc92308781b3ee0cea79a'
|
||||
|
||||
if File.exist?(filename_compiler_rt) && Digest::SHA256.hexdigest( File.read("./#{filename_compiler_rt}") ) == sha256sum_compiler_rt
|
||||
puts "Compiler-rt source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading compiler-rt".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_compiler_rt, '-o', filename_compiler_rt)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_compiler_rt}") ) == sha256sum_compiler_rt
|
||||
puts "Compiler-rt archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "compiler-rt-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Compiler-rt source code unpacked".lightgreen
|
||||
system "rm -rf projects/compiler-rt"
|
||||
system "mv -v projects/compiler-rt-6.0.0.src projects/compiler-rt"
|
||||
|
||||
############################# Download libcxx (procjects) ####################################
|
||||
url_libcxx = 'https://releases.llvm.org/6.0.0/libcxx-6.0.0.src.tar.xz'
|
||||
uri_libcxx = URI.parse url_libcxx
|
||||
filename_libcxx = File.basename(uri_libcxx.path)
|
||||
sha256sum_libcxx = '70931a87bde9d358af6cb7869e7535ec6b015f7e6df64def6d2ecdd954040dd9'
|
||||
|
||||
if File.exist?(filename_libcxx) && Digest::SHA256.hexdigest( File.read("./#{filename_libcxx}") ) == sha256sum_libcxx
|
||||
puts "Libcxx source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading libcxx".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_libcxx, '-o', filename_libcxx)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_libcxx}") ) == sha256sum_libcxx
|
||||
puts "Libcxx archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "libcxx-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libcxx source code unpacked".lightgreen
|
||||
system "rm -rf projects/libcxx"
|
||||
system "mv -v projects/libcxx-6.0.0.src projects/libcxx"
|
||||
|
||||
############################# Download libcxxabi (procjects) ####################################
|
||||
url_libcxxabi = 'https://releases.llvm.org/6.0.0/libcxxabi-6.0.0.src.tar.xz'
|
||||
uri_libcxxabi = URI.parse url_libcxxabi
|
||||
filename_libcxxabi = File.basename(uri_libcxxabi.path)
|
||||
sha256sum_libcxxabi = '91c6d9c5426306ce28d0627d6a4448e7d164d6a3f64b01cb1d196003b16d641b'
|
||||
|
||||
if File.exist?(filename_libcxxabi) && Digest::SHA256.hexdigest( File.read("./#{filename_libcxxabi}") ) == sha256sum_libcxxabi
|
||||
puts "Libcxxabi source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading libcxxabi".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_libcxxabi, '-o', filename_libcxxabi)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_libcxxabi}") ) == sha256sum_libcxxabi
|
||||
puts "Libcxxabi archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "libcxxabi-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libcxxabi source code unpacked".lightgreen
|
||||
system "rm -rf projects/libcxxabi"
|
||||
system "mv -v projects/libcxxabi-6.0.0.src projects/libcxxabi"
|
||||
|
||||
############################# Download libomp (procjects) ####################################
|
||||
url_openmp = 'https://releases.llvm.org/6.0.0/openmp-6.0.0.src.tar.xz'
|
||||
uri_openmp = URI.parse url_openmp
|
||||
filename_openmp = File.basename(uri_openmp.path)
|
||||
sha256sum_openmp = '7c0e050d5f7da3b057579fb3ea79ed7dc657c765011b402eb5bbe5663a7c38fc'
|
||||
|
||||
if File.exist?(filename_openmp) && Digest::SHA256.hexdigest( File.read("./#{filename_openmp}") ) == sha256sum_openmp
|
||||
puts "Openmp source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading openmp".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_openmp, '-o', filename_openmp)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_openmp}") ) == sha256sum_openmp
|
||||
puts "Openmp archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "openmp-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Openmp source code unpacked".lightgreen
|
||||
system "rm -rf projects/openmp"
|
||||
system "mv -v projects/openmp-6.0.0.src projects/openmp"
|
||||
|
||||
############################# Download libunwind (procjects) ####################################
|
||||
url_libunwind = 'https://releases.llvm.org/6.0.0/libunwind-6.0.0.src.tar.xz'
|
||||
uri_libunwind = URI.parse url_libunwind
|
||||
filename_libunwind = File.basename(uri_libunwind.path)
|
||||
sha256sum_libunwind = '256c4ed971191bde42208386c8d39e5143fa4afd098e03bd2c140c878c63f1d6'
|
||||
|
||||
if File.exist?(filename_libunwind) && Digest::SHA256.hexdigest( File.read("./#{filename_libunwind}") ) == sha256sum_libunwind
|
||||
puts "Libunwind source code exists and perform unpacking".yellow
|
||||
else
|
||||
puts "Downloading libunwind".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_libunwind, '-o', filename_libunwind)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_libunwind}") ) == sha256sum_libunwind
|
||||
puts "Libunwind archive downloaded".lightgreen
|
||||
end
|
||||
|
||||
system "tar", "xf", "libunwind-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libunwind source code unpacked".lightgreen
|
||||
system "rm -rf projects/libunwind"
|
||||
system "mv -v projects/libunwind-6.0.0.src projects/libunwind"
|
||||
|
||||
############################# Download test-suite (procjects) ####################################
|
||||
#url_testsuite = 'https://releases.llvm.org/6.0.0/test-suite-6.0.0.src.tar.xz'
|
||||
#uri_testsuite = URI.parse url_testsuite
|
||||
#filename_testsuite = File.basename(uri_testsuite.path)
|
||||
#sha256sum_testsuite = '74e0055efa27b2143415148ee93b817155e6333337d9cadd4cc5d468ad3c0edf'
|
||||
|
||||
#if File.exist?(filename_testsuite) && Digest::SHA256.hexdigest( File.read("./#{filename_testsuite}") ) == sha256sum_testsuite
|
||||
# puts "Test-suite source code exists and perform unpacking".yellow
|
||||
#else
|
||||
# puts "Downloading test suite".yellow
|
||||
# system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_testsuite, '-o', filename_testsuite)
|
||||
# abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
# Digest::SHA256.hexdigest( File.read("./#{filename_testsuite}") ) == sha256sum_testsuite
|
||||
# puts "Test-suite archive downloaded".lightgreen
|
||||
#end
|
||||
|
||||
# system "tar", "xf", "test-suite-6.0.0.src.tar.xz", "-C", "projects"
|
||||
# puts "Test-suite source code unpacked".lightgreen
|
||||
# system "rm -rf projects/test-suite"
|
||||
# system "mv -v projects/test-suite-6.0.0.src projects/test-suite"
|
||||
|
||||
############################################################
|
||||
puts "Optional packages are ready".lightgreen
|
||||
############################################################
|
||||
|
||||
end
|
||||
|
||||
def self.build
|
||||
system "mkdir -p builddir"
|
||||
@@ -32,25 +257,41 @@ class Llvm < Package
|
||||
"-DLLVM_LIBDIR_SUFFIX=64",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_TARGETS_TO_BUILD=host",
|
||||
"-DLLVM_TARGETS_TO_BUILD=host;AMDGPU",
|
||||
"-Wno-dev",
|
||||
".."
|
||||
else
|
||||
when "i686"
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_TARGETS_TO_BUILD=host;AMDGPU",
|
||||
"-Wno-dev",
|
||||
".."
|
||||
else # armv7l or aarch64
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_TARGETS_TO_BUILD=host",
|
||||
"-Wno-dev",
|
||||
".."
|
||||
end
|
||||
system "make"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
def self.install
|
||||
Dir.chdir("builddir") do
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
#def self.check
|
||||
# Dir.chdir("builddir") do
|
||||
# system "make -k -j#{CREW_NPROC} check-llvm"
|
||||
# system "make -k -j#{CREW_NPROC} check-clang"
|
||||
# system "make -k -j#{CREW_NPROC} check-lld"
|
||||
# end
|
||||
#end
|
||||
end
|
||||
|
||||
@@ -1,313 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Llvm6 < Package
|
||||
description 'The LLVM Project (version 6.0.0) is a collection of modular and reusable compiler and toolchain technologies. The optional packages including clang, lld, polly, compiler-rt, libcxx, libcxxabi and openmp are included.'
|
||||
homepage 'http://llvm.org/'
|
||||
version '6.0.0'
|
||||
source_url 'https://llvm.org/releases/6.0.0/llvm-6.0.0.src.tar.xz'
|
||||
source_sha256 '1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm6-6.0.0-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/llvm6-6.0.0-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/llvm6-6.0.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm6-6.0.0-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '32928186027577aee2618dc4826b09900de5842eac4d5dc82743a917f9fcaae1',
|
||||
armv7l: '32928186027577aee2618dc4826b09900de5842eac4d5dc82743a917f9fcaae1',
|
||||
i686: 'bbd3d9b82dfc1a98740eef4c784407caa9aa7c7f1d183374b11962ba5fdebcb6',
|
||||
x86_64: '664c18423806dbd1987e3e81c64b44cf6f447a671aae46eeb25cbcba597d714e',
|
||||
})
|
||||
|
||||
depends_on 'python27' => :build # for test suite
|
||||
depends_on 'icu4c' # fix uconv.h missing
|
||||
depends_on 'libtirpc'
|
||||
|
||||
def self.preinstall
|
||||
|
||||
############################# Download clang (tools) ###########################################
|
||||
url_clang = 'https://llvm.org/releases/6.0.0/cfe-6.0.0.src.tar.xz'
|
||||
uri_clang = URI.parse url_clang
|
||||
filename_clang = File.basename(uri_clang.path)
|
||||
sha256sum_clang = 'e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32'
|
||||
|
||||
if File.exist?(filename_clang) && Digest::SHA256.hexdigest( File.read("./#{filename_clang}") ) == sha256sum_clang
|
||||
puts "Clang source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "cfe-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Clang source code unpacked".lightgreen
|
||||
system "rm -rf tools/clang" # remove possible existing folder
|
||||
system "mv -v tools/cfe-6.0.0.src tools/clang"
|
||||
else
|
||||
puts "Downloading clang".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_clang, '-o', filename_clang)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_clang}") ) == sha256sum_clang
|
||||
puts "Clang archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "cfe-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Clang source code unpacked".lightgreen
|
||||
system "mv -v tools/cfe-6.0.0.src tools/clang"
|
||||
end
|
||||
|
||||
############################# Download lld (tools) ###########################################
|
||||
url_lld = 'https://releases.llvm.org/6.0.0/lld-6.0.0.src.tar.xz'
|
||||
uri_lld = URI.parse url_lld
|
||||
filename_lld = File.basename(uri_lld.path)
|
||||
sha256sum_lld = '6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b'
|
||||
|
||||
if File.exist?(filename_lld) && Digest::SHA256.hexdigest( File.read("./#{filename_lld}") ) == sha256sum_lld
|
||||
puts "Lld source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "lld-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Lld source code unpacked".lightgreen
|
||||
system "rm -rf tools/lld"
|
||||
system "mv -v tools/lld-6.0.0.src tools/lld"
|
||||
else
|
||||
puts "Downloading lld".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_lld, '-o', filename_lld)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_lld}") ) == sha256sum_lld
|
||||
puts "Lld archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "lld-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Lld source code unpacked".lightgreen
|
||||
system "mv -v tools/lld-6.0.0.src tools/lld"
|
||||
end
|
||||
|
||||
############################# Download polly (tools) ###########################################
|
||||
url_polly = 'https://releases.llvm.org/6.0.0/polly-6.0.0.src.tar.xz'
|
||||
uri_polly = URI.parse url_polly
|
||||
filename_polly = File.basename(uri_polly.path)
|
||||
sha256sum_polly = '47e493a799dca35bc68ca2ceaeed27c5ca09b12241f87f7220b5f5882194f59c'
|
||||
|
||||
if File.exist?(filename_polly) && Digest::SHA256.hexdigest( File.read("./#{filename_polly}") ) == sha256sum_polly
|
||||
puts "Polly source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "polly-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Polly source code unpacked".lightgreen
|
||||
system "rm -rf tools/polly"
|
||||
system "mv -v tools/polly-6.0.0.src tools/polly"
|
||||
else
|
||||
puts "Downloading polly".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_polly, '-o', filename_polly)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_polly}") ) == sha256sum_polly
|
||||
puts "Polly archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "polly-6.0.0.src.tar.xz", "-C", "tools"
|
||||
puts "Polly source code unpacked".lightgreen
|
||||
system "mv -v tools/polly-6.0.0.src tools/polly"
|
||||
end
|
||||
|
||||
# Due to compilation error, extra clang tools are not included.
|
||||
############################# Download extra clang tools (tools) ###########################################
|
||||
# url_extra_tools = 'https://releases.llvm.org/6.0.0/clang-tools-extra-6.0.0.src.tar.xz'
|
||||
# uri_extra_tools = URI.parse url_extra_tools
|
||||
# filename_extra_tools = File.basename(uri_extra_tools.path)
|
||||
# sha256sum_extra_tools = '053b424a4cd34c9335d8918734dd802a8da612d13a26bbb88fcdf524b2d989d2'
|
||||
|
||||
|
||||
# puts "Downloading extra_tools".yellow
|
||||
# system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_extra_tools, '-o', filename_extra_tools)
|
||||
# abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
# Digest::SHA256.hexdigest( File.read("./#{filename_extra_tools}") ) == sha256sum_extra_tools
|
||||
# puts "Clang extra tools archive downloaded".lightgreen
|
||||
#
|
||||
# system "tar", "xf", "clang-tools-extra-6.0.0.src.tar.xz", "-C", "tools"
|
||||
# puts "Clang extra tools source code unpacked".lightgreen
|
||||
# system "rsync -a tools/clang-tools-extra-6.0.0.src tools/extra "
|
||||
|
||||
|
||||
|
||||
############################# Download compiler-rt (projects) ####################################
|
||||
url_compiler_rt = 'https://releases.llvm.org/6.0.0/compiler-rt-6.0.0.src.tar.xz'
|
||||
uri_compiler_rt = URI.parse url_compiler_rt
|
||||
filename_compiler_rt = File.basename(uri_compiler_rt.path)
|
||||
sha256sum_compiler_rt = 'd0cc1342cf57e9a8d52f5498da47a3b28d24ac0d39cbc92308781b3ee0cea79a'
|
||||
|
||||
if File.exist?(filename_compiler_rt) && Digest::SHA256.hexdigest( File.read("./#{filename_compiler_rt}") ) == sha256sum_compiler_rt
|
||||
puts "Compiler-rt source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "compiler-rt-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Compiler-rt source code unpacked".lightgreen
|
||||
system "rm -rf projects/compiler-rt"
|
||||
system "mv -v projects/compiler-rt-6.0.0.src projects/compiler-rt"
|
||||
else
|
||||
puts "Downloading compiler-rt".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_compiler_rt, '-o', filename_compiler_rt)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_compiler_rt}") ) == sha256sum_compiler_rt
|
||||
puts "Compiler-rt archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "compiler-rt-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Compiler-rt source code unpacked".lightgreen
|
||||
system "mv -v projects/compiler-rt-6.0.0.src projects/compiler-rt"
|
||||
end
|
||||
|
||||
|
||||
|
||||
############################# Download libcxx (procjects) ####################################
|
||||
url_libcxx = 'https://releases.llvm.org/6.0.0/libcxx-6.0.0.src.tar.xz'
|
||||
uri_libcxx = URI.parse url_libcxx
|
||||
filename_libcxx = File.basename(uri_libcxx.path)
|
||||
sha256sum_libcxx = '70931a87bde9d358af6cb7869e7535ec6b015f7e6df64def6d2ecdd954040dd9'
|
||||
|
||||
if File.exist?(filename_libcxx) && Digest::SHA256.hexdigest( File.read("./#{filename_libcxx}") ) == sha256sum_libcxx
|
||||
puts "Libcxx source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "libcxx-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libcxx source code unpacked".lightgreen
|
||||
system "rm -rf projects/libcxx"
|
||||
system "mv -v projects/libcxx-6.0.0.src projects/libcxx"
|
||||
else
|
||||
puts "Downloading libcxx".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_libcxx, '-o', filename_libcxx)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_libcxx}") ) == sha256sum_libcxx
|
||||
puts "Libcxx archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "libcxx-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libcxx source code unpacked".lightgreen
|
||||
system "mv -v projects/libcxx-6.0.0.src projects/libcxx"
|
||||
end
|
||||
|
||||
|
||||
############################# Download libcxxabi (procjects) ####################################
|
||||
url_libcxxabi = 'https://releases.llvm.org/6.0.0/libcxxabi-6.0.0.src.tar.xz'
|
||||
uri_libcxxabi = URI.parse url_libcxxabi
|
||||
filename_libcxxabi = File.basename(uri_libcxxabi.path)
|
||||
sha256sum_libcxxabi = '91c6d9c5426306ce28d0627d6a4448e7d164d6a3f64b01cb1d196003b16d641b'
|
||||
|
||||
if File.exist?(filename_libcxxabi) && Digest::SHA256.hexdigest( File.read("./#{filename_libcxxabi}") ) == sha256sum_libcxxabi
|
||||
puts "Libcxxabi source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "libcxxabi-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libcxxabi source code unpacked".lightgreen
|
||||
system "rm -rf projects/libcxxabi"
|
||||
system "mv -v projects/libcxxabi-6.0.0.src projects/libcxxabi"
|
||||
else
|
||||
puts "Downloading libcxxabi".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_libcxxabi, '-o', filename_libcxxabi)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_libcxxabi}") ) == sha256sum_libcxxabi
|
||||
puts "Libcxxabi archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "libcxxabi-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libcxxabi source code unpacked".lightgreen
|
||||
system "mv -v projects/libcxxabi-6.0.0.src projects/libcxxabi"
|
||||
end
|
||||
|
||||
############################# Download libomp (procjects) ####################################
|
||||
url_openmp = 'https://releases.llvm.org/6.0.0/openmp-6.0.0.src.tar.xz'
|
||||
uri_openmp = URI.parse url_openmp
|
||||
filename_openmp = File.basename(uri_openmp.path)
|
||||
sha256sum_openmp = '7c0e050d5f7da3b057579fb3ea79ed7dc657c765011b402eb5bbe5663a7c38fc'
|
||||
|
||||
if File.exist?(filename_openmp) && Digest::SHA256.hexdigest( File.read("./#{filename_openmp}") ) == sha256sum_openmp
|
||||
puts "Openmp source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "openmp-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Openmp source code unpacked".lightgreen
|
||||
system "rm -rf projects/openmp"
|
||||
system "mv -v projects/openmp-6.0.0.src projects/openmp"
|
||||
else
|
||||
puts "Downloading openmp".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_openmp, '-o', filename_openmp)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_openmp}") ) == sha256sum_openmp
|
||||
puts "Openmp archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "openmp-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Openmp source code unpacked".lightgreen
|
||||
system "mv -v projects/openmp-6.0.0.src projects/openmp"
|
||||
end
|
||||
|
||||
############################# Download libunwind (procjects) ####################################
|
||||
url_libunwind = 'https://releases.llvm.org/6.0.0/libunwind-6.0.0.src.tar.xz'
|
||||
uri_libunwind = URI.parse url_libunwind
|
||||
filename_libunwind = File.basename(uri_libunwind.path)
|
||||
sha256sum_libunwind = '256c4ed971191bde42208386c8d39e5143fa4afd098e03bd2c140c878c63f1d6'
|
||||
|
||||
if File.exist?(filename_libunwind) && Digest::SHA256.hexdigest( File.read("./#{filename_libunwind}") ) == sha256sum_libunwind
|
||||
puts "Libunwind source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "libunwind-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libunwind source code unpacked".lightgreen
|
||||
system "rm -rf projects/libunwind"
|
||||
system "mv -v projects/libunwind-6.0.0.src projects/libunwind"
|
||||
else
|
||||
puts "Downloading libunwind".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_libunwind, '-o', filename_libunwind)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_libunwind}") ) == sha256sum_libunwind
|
||||
puts "Libunwind archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "libunwind-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Libunwind source code unpacked".lightgreen
|
||||
system "mv -v projects/libunwind-6.0.0.src projects/libunwind"
|
||||
end
|
||||
|
||||
|
||||
############################# Download test-suite (procjects) ####################################
|
||||
url_testsuite = 'https://releases.llvm.org/6.0.0/test-suite-6.0.0.src.tar.xz'
|
||||
uri_testsuite = URI.parse url_testsuite
|
||||
filename_testsuite = File.basename(uri_testsuite.path)
|
||||
sha256sum_testsuite = '74e0055efa27b2143415148ee93b817155e6333337d9cadd4cc5d468ad3c0edf'
|
||||
|
||||
if File.exist?(filename_testsuite) && Digest::SHA256.hexdigest( File.read("./#{filename_testsuite}") ) == sha256sum_testsuite
|
||||
puts "Test-suite source code exists and perform unpacking".yellow
|
||||
system "tar", "xf", "test-suite-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Test-suite source code unpacked".lightgreen
|
||||
system "rm -rf projects/test-suite"
|
||||
system "mv -v projects/test-suite-6.0.0.src projects/test-suite"
|
||||
else
|
||||
puts "Downloading test suite".yellow
|
||||
system('curl', '-s', '-C', '-', '--insecure', '-L', '-#', url_testsuite, '-o', filename_testsuite)
|
||||
abort 'Checksum mismatch. :/ Try again.'.lightred unless
|
||||
Digest::SHA256.hexdigest( File.read("./#{filename_testsuite}") ) == sha256sum_testsuite
|
||||
puts "Test-suite archive downloaded".lightgreen
|
||||
|
||||
system "tar", "xf", "test-suite-6.0.0.src.tar.xz", "-C", "projects"
|
||||
puts "Test-suite source code unpacked".lightgreen
|
||||
system "mv -v projects/test-suite-6.0.0.src projects/test-suite"
|
||||
end
|
||||
|
||||
############################################################
|
||||
puts "Optional packages are ready".lightgreen
|
||||
############################################################
|
||||
|
||||
end
|
||||
|
||||
def self.build
|
||||
system "mkdir -p builddir"
|
||||
Dir.chdir("builddir") do
|
||||
case ARCH
|
||||
when "x86_64"
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DLLVM_LIBDIR_SUFFIX=64",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_TARGETS_TO_BUILD=host",
|
||||
"-Wno-dev",
|
||||
".."
|
||||
else
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_TARGETS_TO_BUILD=host",
|
||||
"-Wno-dev",
|
||||
".."
|
||||
end
|
||||
system "make"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir("builddir") do
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
end
|
||||
|
||||
# def self.check
|
||||
# Dir.chdir("builddir") do
|
||||
# system "make -k check-llvm"
|
||||
# system "make -k check-clang"
|
||||
# end
|
||||
# end
|
||||
end
|
||||
@@ -1,43 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Llvm_compiler_rt < Package
|
||||
description 'Part of the LLVM project.'
|
||||
homepage 'https://compiler-rt.llvm.org/'
|
||||
version '6.0.0'
|
||||
source_url 'http://releases.llvm.org/6.0.0/compiler-rt-6.0.0.src.tar.xz'
|
||||
source_sha256 'd0cc1342cf57e9a8d52f5498da47a3b28d24ac0d39cbc92308781b3ee0cea79a'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_compiler_rt-6.0.0-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_compiler_rt-6.0.0-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_compiler_rt-6.0.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_compiler_rt-6.0.0-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '78d7bd2c47789d3e19e35d3a5f23cc7ff85509a9e86a6cca4fbed9c99fa1f52b',
|
||||
armv7l: '78d7bd2c47789d3e19e35d3a5f23cc7ff85509a9e86a6cca4fbed9c99fa1f52b',
|
||||
i686: 'c9bdb1c5819571139cced1615373a51694bf0829815143f0a1552708e4a53764',
|
||||
x86_64: '5ac574941affdeeedd11124b0c02504e74b0af59ee1661baf182acf267706328',
|
||||
})
|
||||
|
||||
depends_on 'llvm'
|
||||
|
||||
def self.build
|
||||
system "mkdir -p builddir"
|
||||
Dir.chdir("builddir") do
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
".."
|
||||
system "make"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install # the steps required to install the package
|
||||
Dir.chdir("builddir") do
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1,56 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Llvm_polly < Package
|
||||
description 'Polly is a high-level loop and data-locality optimizer and optimization infrastructure for LLVM.'
|
||||
homepage 'https://polly.llvm.org/'
|
||||
version '6.0.0'
|
||||
source_url 'https://releases.llvm.org/6.0.0/polly-6.0.0.src.tar.xz'
|
||||
source_sha256 '47e493a799dca35bc68ca2ceaeed27c5ca09b12241f87f7220b5f5882194f59c'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_polly-6.0.0-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_polly-6.0.0-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_polly-6.0.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_polly-6.0.0-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '6cbcf1f4b4be8436cb8777b4901415a3b4491245bd0cf1c91282f5a0fcbc4695',
|
||||
armv7l: '6cbcf1f4b4be8436cb8777b4901415a3b4491245bd0cf1c91282f5a0fcbc4695',
|
||||
i686: 'bc820d67a82ca545669b8c19abd689fce9013ae4a2d3ed906a2334c24ac31b63',
|
||||
x86_64: '2c871c0b3f35f4102f473c286c84d3ef8e2549749906dcdab8c6925ea1a6eb3a',
|
||||
})
|
||||
|
||||
depends_on 'llvm'
|
||||
|
||||
def self.build
|
||||
system "mkdir -p builddir"
|
||||
Dir.chdir("builddir") do
|
||||
case ARCH
|
||||
when "x86_64"
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DLLVM_LIBDIR_SUFFIX=64",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_FILECHECK=ON",
|
||||
"-DLLVM_NOT=ON",
|
||||
".."
|
||||
else
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_FILECHECK=ON",
|
||||
"-DLLVM_NOT=ON",
|
||||
".."
|
||||
end
|
||||
system "make"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir("builddir") do
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,52 +0,0 @@
|
||||
require 'package'
|
||||
|
||||
class Llvm_unwind < Package
|
||||
description 'Part of the LLVM project.'
|
||||
homepage 'https://github.com/llvm-mirror/libunwind'
|
||||
version '6.0.0'
|
||||
source_url 'https://releases.llvm.org/6.0.0/libunwind-6.0.0.src.tar.xz'
|
||||
source_sha256 '256c4ed971191bde42208386c8d39e5143fa4afd098e03bd2c140c878c63f1d6'
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_unwind-6.0.0-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_unwind-6.0.0-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_unwind-6.0.0-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/llvm_unwind-6.0.0-chromeos-x86_64.tar.xz',
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '3fa7a4015549fffef05586673ce27fdff912b82e559df299c4edc007bcc59b6b',
|
||||
armv7l: '3fa7a4015549fffef05586673ce27fdff912b82e559df299c4edc007bcc59b6b',
|
||||
i686: '0966f9d500bc0330f486f97e4203def62ce9f76cf3cff6b53eefb4d1b265fd2c',
|
||||
x86_64: '8f11eec662c83e7baaeb613e13ebfd1e62e54c5e3bb5cc81319ae3d2b5cd310e',
|
||||
})
|
||||
|
||||
depends_on 'llvm'
|
||||
|
||||
def self.build
|
||||
system "mkdir -p builddir"
|
||||
Dir.chdir("builddir") do
|
||||
case ARCH
|
||||
when "x86_64"
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DLLVM_LIBDIR_SUFFIX=64",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
".."
|
||||
else
|
||||
system "cmake",
|
||||
"-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX}",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
".."
|
||||
end
|
||||
system "make"
|
||||
end
|
||||
end
|
||||
|
||||
def self.install
|
||||
Dir.chdir("builddir") do
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user