Skip to content

Commit 9c9d92f

Browse files
author
pg
committed
Add ability to postprocess static libraries during the build.
commit_hash:792b08e2ac7c31269c1d0f21ab6ec2e062d67643
1 parent 0403e4c commit 9c9d92f

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

build/conf/linkers/ld.conf

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,15 +345,22 @@ LINK_EXEC_DYN_LIB=\
345345
$DWARF_COMMAND && \
346346
$LINK_ADDITIONAL_SECTIONS_COMMAND
347347

348+
_LD_ARCHIVER_KV_PLUGIN=
349+
when ($_AR_PLUGIN != "") {
350+
_LD_ARCHIVER_KV_PLUGIN=--plugin ${input:_AR_PLUGIN}
351+
}
352+
348353
_LD_LINK_LIB_EXTRA_INPUT=
349354
_LD_TAIL_LINK_LIB=$AUTO_INPUT $_LD_LINK_LIB_EXTRA_INPUT ${hide;kv:"p AR"} $TOOLCHAIN_ENV ${hide;kv:"pc light-red"} ${hide;kv:"show_out"}
350-
_LD_ARCHIVER=$YMAKE_PYTHON ${input:"build/scripts/link_lib.py"} ${quo:AR_TOOL} $AR_TYPE $_LD_LLVM_AR_FORMAT $ARCADIA_BUILD_ROOT $_LD_AR_PLUGIN
355+
_LD_ARCHIVER=$YMAKE_PYTHON ${input:"build/scripts/link_lib.py"} ${quo:AR_TOOL} $AR_TYPE $_LD_LLVM_AR_FORMAT $ARCADIA_BUILD_ROOT $_LD_AR_PLUGIN -- $_LD_ARCHIVER_KV_PLUGIN --
356+
351357
when ($MAPSMOBI_BUILD_TARGET == "yes") {
352358
_LD_ARCHIVER+= "no-openssl3"
353-
}
359+
}
354360
otherwise {
355361
_LD_ARCHIVER+= "enable-openssl3"
356362
}
363+
357364
_LD_LIB_GENERATE_MF=$GENERATE_MF &&
358365
when ($TIDY == "yes") {
359366
_LD_ARCHIVER=$YMAKE_PYTHON ${input:"build/scripts/clang_tidy_arch.py"} --source-root $ARCADIA_ROOT --build-root $ARCADIA_BUILD_ROOT --output-file

build/scripts/link_lib.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
1+
from __future__ import print_function
2+
13
import sys
24
import subprocess
35
import tempfile
46
import os
57
import shutil
8+
import argparse
69

710

811
class Opts(object):
912
def __init__(self, args):
13+
kvs = args.index('--')
14+
kve = args.index('--', kvs + 1)
15+
kv = args[kvs + 1:kve]
16+
args = args[:kvs] + args[kve + 1:]
17+
18+
parser = argparse.ArgumentParser()
19+
parser.add_argument('--plugin')
20+
kvargs = parser.parse_args(kv)
21+
22+
self.ar_plugin = kvargs.plugin
1023
self.archiver = args[0]
1124
self.arch_type = args[1]
1225
self.llvm_ar_format = args[2]
@@ -165,3 +178,6 @@ def call():
165178

166179
if opts.enable_openssl3 != 'no-openssl3' and os.path.basename(opts.output) in ['libcontrib-libs-openssl.a', 'liblibs-openssl-crypto.a']:
167180
rename_syms(os.path.dirname(opts.archiver) + '/', opts.output)
181+
182+
if opts.ar_plugin:
183+
subprocess.check_call([sys.executable, opts.ar_plugin, opts.output, '--'] + sys.argv[1:])

build/ymake.core.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3136,6 +3136,10 @@ macro _SRC_f_old(SRC, SRCFLAGS...) {
31363136
.CMD=$YMAKE_PYTHON ${input:"build/scripts/f2c.py"} -t ${tool:"contrib/tools/f2c"} -c ${input:SRC} -o ${output:SRC.c} ${hide;output_include:"f2c.h"} ${hide;kv:"p FT"} ${hide;kv:"pc light-green"}
31373137
}
31383138

3139+
macro AR_PLUGIN(name) {
3140+
SET(_AR_PLUGIN $name.pyplugin)
3141+
}
3142+
31393143
macro LD_PLUGIN(name) {
31403144
SRCS(GLOBAL $name.pyplugin)
31413145
}

0 commit comments

Comments
 (0)