1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-12-26 23:36:08 +03:00
vimr/third-party/deps/pcre.py
2020-09-06 11:28:00 +02:00

70 lines
1.8 KiB
Python

from string import Template
from config import Target
from builder import Builder
from utils.shell import shell
# language=bash
download_command = Template(
"""
curl -L -s -o pcre.tar.bz2 "https://ftp.pcre.org/pub/pcre/pcre-${version}.tar.bz2"
"""
)
# language=bash
extract_command = Template(
"""
rm -rf "pcre-${target}"
tar xf pcre.tar.bz2
mv "pcre-${version}" "pcre-${target}"
"""
)
# language=bash
make_command = Template(
"""
pushd pcre-${target} >/dev/null
./configure \
CFLAGS="${cflags}" \
CXXFLAGS="${cflags}" \
MACOSX_DEPLOYMENT_TARGET="${deployment_target}" \
--disable-dependency-tracking \
--enable-utf8 \
--enable-pcre8 \
--enable-pcre16 \
--enable-pcre32 \
--enable-unicode-properties \
--enable-pcregrep-libz \
--enable-pcregrep-libbz2 \
--enable-jit \
--disable-shared \
--host="${host}" \
--prefix="${install_path}"
make MACOSX_DEPLOYMENT_TARGET="${deployment_target}" install
popd >/dev/null
"""
)
# language=bash
build_universal_and_install_command = Template(
"""
lipo -create -output "${install_lib_path}/libpcre.a" "${arm64_lib_path}/libpcre.a" "${x86_64_lib_path}/libpcre.a"
cp -r "${arm64_include_path}"/* "${install_include_path}"
"""
)
class PcreBuilder(Builder):
def make(self, target: Target):
cmd = self.make_command.substitute(
dict(
target=target.value,
cflags=self.config.target_specific_full_cflags(target),
deployment_target=self.config.target_specific_deployment_target(target),
install_path=self.config.target_specific_install_path(target),
host=self.config.target_specific_host(target),
)
)
print(cmd)
shell(cmd, cwd=self.config.working_directory)