require 'package' Package.load_package("#{__dir__}/llvm21_build.rb") class Llvm21_dev < Package description 'LLVM: Everything except libLLVM & llvm-strip' homepage Llvm21_build.homepage version '21.1.7' # When upgrading llvm*_build, be sure to upgrade llvm_lib*, llvm_dev*, libclc, and openmp in tandem. puts "#{self} version differs from llvm version #{Llvm21_build.version}".orange if version != Llvm21_build.version license Llvm21_build.license compatibility 'all' source_url 'SKIP' binary_compression 'tar.zst' binary_sha256({ aarch64: '1494f195f28c88b6e3448fb570294dc5f0d587357f09028a4c50993f92d2008b', armv7l: '1494f195f28c88b6e3448fb570294dc5f0d587357f09028a4c50993f92d2008b', i686: 'bfeb6f9c467976ec7395469ccf4593e39333078be90f4009593211ef10e758d2', x86_64: '68c493c0f8de9e85050751995211d3446a035d1830e448359b92d0ab5d5ccd88' }) depends_on 'gcc_lib' # R depends_on 'glibc' # R depends_on 'libedit' # R depends_on 'libxml2' # R depends_on 'llvm21_build' => :build depends_on 'llvm_lib' # R depends_on 'xzutils' # R depends_on 'zlib' # R depends_on 'zstd' # R conflicts_ok no_shrink no_source_build no_strip def self.preflight abort "Update #{CREW_LLVM_VER}_build first.".lightred if Gem::Version.new(version.split('-').first) < Gem::Version.new(Llvm21_build.version.split('-').first) llvm_lib_obj = Package.load_package("#{__dir__}/#{CREW_LLVM_VER}_dev.rb") abort "Update #{CREW_LLVM_VER}_lib first.".lightred if Gem::Version.new(version.split('-').first) > Gem::Version.new(llvm_lib_obj.version.split('-').first) end def self.install puts 'Installing llvm21_build to pull files for build...'.lightblue @filelist_path = File.join(CREW_META_PATH, 'llvm21_build.filelist') abort 'File list for llvm21_build does not exist!'.lightred unless File.file?(@filelist_path) @filelist = File.readlines(@filelist_path, chomp: true).grep(/^(?!#)/) @filelist.each do |filename| next if filename.include?('.so') && filename.include?('libLLVM') next if filename.include?('llvm-strip') @destpath = File.join(CREW_DEST_DIR, filename) @filename_target = File.realpath(filename) FileUtils.install @filename_target, @destpath end end end