mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-08 23:18:10 -05:00
51 lines
2.5 KiB
Ruby
51 lines
2.5 KiB
Ruby
require 'package'
|
|
|
|
class Fpc < Package
|
|
description 'Free Pascal is a 32, 64 and 16 bit professional Pascal compiler.'
|
|
homepage 'https://www.freepascal.org/'
|
|
version '3.2.3'
|
|
license 'GPL-2 and LGPL-2.1-with-linking-exception'
|
|
compatibility 'all'
|
|
source_url 'https://gitlab.com/freepascal.org/fpc/source.git'
|
|
git_hashtag version
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
aarch64: '59e1525374c44782be0bc0cdaa41620b0f6317403640e9530e4524be7ba25817',
|
|
armv7l: '59e1525374c44782be0bc0cdaa41620b0f6317403640e9530e4524be7ba25817',
|
|
i686: 'dd54485d5db294e4cd713debc7e09b3f00150b46574dfd7bf16b21e781428729',
|
|
x86_64: '90ba51e07916559f4cfbdc41ce3f57bd8498f5b35138b8822ea7338d7cd9d256'
|
|
})
|
|
|
|
print_source_bashrc
|
|
|
|
def self.build
|
|
# https://gitlab.com/freepascal.org/fpc/source/-/issues/40841
|
|
# fpc isn't fooled by our docker emulation, and thus disables reading from the config because it thinks we're cross-compiling.
|
|
# See https://gitlab.com/freepascal.org/fpc/source/-/commit/898a4debcab843b2f6f5c29b795a517485582dfb
|
|
# Because we don't read from the config, we don't get the correct library paths.
|
|
# The correct thing to do here would be to find the fault in our docker setup that reveals we're running under emulation, and fix it.
|
|
# In the meantime, though, just pass the correct library path manually.
|
|
# Chromebrew messes things up if we don't pass this in one string, adding single quotes around OPT which break things.
|
|
system "make OVERRIDEVERSIONCHECK=1 OPT='#{"-Fl#{CREW_LIB_PREFIX}" unless ARCH.eql?('x86_64')} -k-L#{CREW_LIB_PREFIX}' all"
|
|
end
|
|
|
|
def self.install
|
|
system 'make', "PREFIX=#{CREW_DEST_PREFIX}", 'install'
|
|
compiler = { aarch64: 'ppcarm', armv7l: 'ppcarm', i686: 'ppc386', x86_64: 'ppcx64' }
|
|
FileUtils.ln_sf "#{CREW_PREFIX}/lib/fpc/#{version}/#{compiler[ARCH.to_sym]}", "#{CREW_DEST_PREFIX}/bin/#{compiler[ARCH.to_sym]}"
|
|
# Set up the default fpc config file.
|
|
system "#{CREW_DEST_PREFIX}/lib/fpc/#{version}/samplecfg #{CREW_DEST_PREFIX}/lib/fpc/#{version} #{CREW_DEST_PREFIX}/etc"
|
|
system "sed -i '/# searchpath for libraries/a\-Fl#{CREW_LIB_PREFIX}' #{CREW_DEST_PREFIX}/etc/fpc.cfg"
|
|
File.write 'fpcenv', <<~FPC_ENV_EOF
|
|
# Set PPC_CONFIG_PATH so that fpc finds fpc.cfg
|
|
export PPC_CONFIG_PATH=#{CREW_PREFIX}/etc
|
|
FPC_ENV_EOF
|
|
FileUtils.install 'fpcenv', "#{CREW_DEST_PREFIX}/etc/env.d/fpc", mode: 0o644
|
|
end
|
|
|
|
def self.postinstall
|
|
ExitMessage.add "Type 'fp' to start.".lightblue
|
|
end
|
|
end
|