# Adapted from Arch Linux mold PKGBUILD at: # https://github.com/archlinux/svntogit-community/raw/packages/mold/trunk/PKGBUILD require 'buildsystems/cmake' class Mold < CMake description 'A Modern Linker' homepage 'https://github.com/rui314/mold' version '2.40.4' license 'MIT' compatibility 'all' source_url 'https://github.com/rui314/mold.git' git_hashtag "v#{version}" binary_compression 'tar.zst' binary_sha256({ aarch64: '4a5f55f801de04d8339258b6d8af6a9b73b9714c8ed68722ea33b750271bf318', armv7l: '4a5f55f801de04d8339258b6d8af6a9b73b9714c8ed68722ea33b750271bf318', i686: '2716eee84ed34d89bedd5e6e2ade684afb1062ae11730305503a9b21a79a4920', x86_64: '242683345b0f34efca645d37989bc903db613029082b8a70fc145ff79adfcf6f' }) depends_on 'gcc_lib' # R depends_on 'glibc' # R depends_on 'xxhash' => :build depends_on 'zlib' # R depends_on 'zstd' # R no_env_options print_source_bashrc cmake_options "-DBUILD_TESTING=OFF \ -DMOLD_LTO=ON \ -DMOLD_USE_MOLD=ON \ -DTBB_WARNING_LEVEL='-Wno-error=stringop-overflow'" def self.install system "DESTDIR=#{CREW_DEST_DIR} #{CREW_NINJA} -C builddir install" File.write 'moldenv', <<~MOLD_ENV_EOF # See https://github.com/rui314/mold/commit/36fc0655489eb96e1be15b03b3f5e227cd97a22e if [[ $(free | head -n 2 | tail -n 1 | awk '{print $4}') -gt '4096000' ]]; then unset MOLD_JOBS else MOLD_JOBS=1 fi MOLD_ENV_EOF FileUtils.install 'moldenv', "#{CREW_DEST_PREFIX}/etc/env.d/mold", mode: 0o644 end end