diff options
author | svidyuk <svidyuk@yandex-team.com> | 2023-07-21 07:15:37 +0300 |
---|---|---|
committer | svidyuk <svidyuk@yandex-team.com> | 2023-07-21 07:15:37 +0300 |
commit | 89f40072e93575b769621fe9baa8b0fe88c9f226 (patch) | |
tree | 2cc38ddfd81be1c71d8123a1266a589dcdf60652 /build | |
parent | a66bf06ecf75e6e40f231df118da29ca31f85612 (diff) | |
download | ydb-89f40072e93575b769621fe9baa8b0fe88c9f226.tar.gz |
Deduce swig paths in ymake.conf
Diffstat (limited to 'build')
-rw-r--r-- | build/conf/swig.conf | 41 | ||||
-rwxr-xr-x | build/ymake_conf.py | 32 |
2 files changed, 29 insertions, 44 deletions
diff --git a/build/conf/swig.conf b/build/conf/swig.conf index fdf90c3c58..7bd42ebf53 100644 --- a/build/conf/swig.conf +++ b/build/conf/swig.conf @@ -1,14 +1,36 @@ USE_LOCAL_SWIG=no +SWIG_TOOL=no +SWIG_LIBRARY=no +_SWIG_PYTHON_ADDINCLS= +_SWIG_PERL_ADDINCLS= +_SWIG_JNI_ADDINCLS= when ($USE_LOCAL_SWIG == "no") { _SWIG_TOOL=${tool:"contrib/tools/swig"} - _SWIG_LIBRARY=contrib/tools/swig/Lib _SWIG_LIBRARY_ABS=$ARCADIA_ROOT/$_SWIG_LIBRARY + + _SWIG_LIBRARY=contrib/tools/swig/Lib + _SWIG_PYTHON_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/python FOR swig ${_SWIG_LIBRARY} + _SWIG_PERL_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/perl5 FOR swig ${_SWIG_LIBRARY} + _SWIG_JNI_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/java FOR swig $_SWIG_LIBRARY } otherwise { - _SWIG_TOOL=$SWIG_TOOL - _SWIG_LIBRARY=$SWIG_LIBRARY - _SWIG_LIBRARY_ABS=$SWIG_LIBRARY + when ($SWIG_TOOL != "no") { + _SWIG_TOOL=$SWIG_TOOL + } + otherwise { + _SWIG_TOOL=${USE_LOCAL_SWIG}/bin/swig + } + + when ($SWIG_LIBRARY != "no") { + _SWIG_LIBRARY_ABS=$SWIG_LIBRARY + } + elsewhen ($OS_WINDOWS == "yes") { + _SWIG_LIBRARY_ABS=${USE_LOCAL_SWIG}/bin/Lib + } + otherwise { + _SWIG_LIBRARY_ABS=${USE_LOCAL_SWIG}/share/swig + } } SWIG_IMPLICIT_INCLUDES = swig.swg go.swg java.swg perl5.swg python.swg @@ -18,25 +40,18 @@ _SWIG_PEERDIR=$_SWIG_PYTHON_PEERDIR _SWIG_SEM_TO_MODULE_LINK=${output;hide;suf=.o:SRC} _SWIG_PYTHON_CMD=${_SWIG_TOOL} -module ${REALPRJNAME} -cpperraswarn -c++ -python -interface ${MODULE_PREFIX}${REALPRJNAME} -o ${output;noext;main;suf=_wrap.swg.cpp:SRC} ${output;noauto;add_to_outs;hide;tobindir;suf=.py:REALPRJNAME} -outdir ${BINDIR} ${pre=-I:_SWIG__INCLUDE} ${input:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_PYTHON_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/python FOR swig ${_SWIG_LIBRARY} _SWIG_PYTHON_PEERDIR= _SWIG_PERL_CMD=${_SWIG_TOOL} -c++ -cpperraswarn -module ${REALPRJNAME} -shadow -perl -o ${output;noext;main;suf=_wrap.swg.cpp:SRC} ${output;noauto;add_to_outs;hide;tobindir;suf=.pm:REALPRJNAME} -outdir ${ARCADIA_BUILD_ROOT}/${MODDIR} ${pre=-I:_SWIG__INCLUDE} ${input:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_PERL_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/perl5 FOR swig ${_SWIG_LIBRARY} _SWIG_PERL_PEERDIR=build/platform/perl _SWIG_JNI_CPP_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/jni_swig.py"} --swig ${_SWIG_TOOL} --default-module ${nopath;noext:SRC} --src ${input:SRC} --out-header ${output;main;noext;suf=_wrap.swg.h:SRC} --package-by-file ru/yandex/${input;rootrel:SRC} -- ${pre=-I:_SWIG__INCLUDE} -o ${output;noext;suf=_wrap.swg.cpp:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} _SWIG_JNI_JAVA_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/jni_swig.py"} --swig ${_SWIG_TOOL} --default-module ${nopath;noext:SRC} --src ${input:SRC} --package-by-file ru/yandex/${input;rootrel:SRC} --jsrc ${output;main;suf=.jsrc:SRC} -- ${pre=-I:_SWIG__INCLUDE} -o ${BINDIR}/unused.cpp ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} _SWIG_JNI_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/jni_swig.py"} --swig ${_SWIG_TOOL} --default-module ${nopath;noext:SRC} --src ${input:SRC} --out-header ${output;main;noext;suf=_wrap.swg.h:SRC} --package-by-file ru/yandex/${input;rootrel:SRC} --jsrc ${output;suf=.jsrc:SRC} -- ${pre=-I:_SWIG__INCLUDE} -o ${output;noext;suf=_wrap.swg.cpp:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_JNI_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/java FOR swig $_SWIG_LIBRARY _SWIG_JNI_PEERDIR=contrib/libs/jdk REAL_SWIG_DLL_JAR_CMD=$GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/build_dll_and_java.py"} $JAVA_SWIG_DELIM $REAL_LINK_DYN_LIB $JAVA_SWIG_DELIM $COMPILE_JAVA $JAVA_SWIG_DELIM $AUTO_INPUT $JAVA_SWIG_DELIM $TARGET $JAVA_SWIG_DELIM ${output;suf=.jar:REALPRJNAME} $JAVA_SWIG_DELIM ${output;suf=-sources.jar:REALPRJNAME} $JAVA_SWIG_DELIM $ARCADIA_BUILD_ROOT $ARCADIA_ROOT - -when ($USE_LOCAL_SWIG != "no") { - _SWIG_JNI_ADDINCLS= -} when ($USE_SYSTEM_JDK == "yes" || $OS_ANDROID == "yes") { _SWIG_JNI_PEERDIR= } @@ -48,7 +63,7 @@ when ($USE_SYSTEM_JDK == "yes" || $OS_ANDROID == "yes") { ### provides DstSubPrefix_swg python module. macro _SWIG_PYTHON_CPP(Src, DstSubPrefix) { .CMD=$_SWIG_TOOL -I$ARCADIA_BUILD_ROOT -I$ARCADIA_ROOT -I$_SWIG_LIBRARY_ABS/python -I$_SWIG_LIBRARY_ABS -c++ -python -module ${nopath:DstSubPrefix} -interface ${nopath;suf=_swg:DstSubPrefix} -o ${output;suf=.swg.cpp:DstSubPrefix} ${input:Src} ${output;noauto;hide;suf=.py:DstSubPrefix} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} - ADDINCL(FOR swig $_SWIG_LIBRARY/python FOR swig $_SWIG_LIBRARY) + .ADDINCL=$_SWIG_PYTHON_ADDINCLS } # tag:python-processing tag:internal @@ -57,7 +72,7 @@ macro _SWIG_PYTHON_CPP(Src, DstSubPrefix) { ### Like _SWIG_PYTHON_CPP but generate DstSubPrefix_swg.c. macro _SWIG_PYTHON_C(Src, DstSubPrefix) { .CMD=$_SWIG_TOOL -I$ARCADIA_BUILD_ROOT -I$ARCADIA_ROOT -I$_SWIG_LIBRARY_ABS/python -I$_SWIG_LIBRARY_ABS -python -module ${nopath:DstSubPrefix} -interface ${nopath;suf=_swg:DstSubPrefix} -o ${output;suf=.swg.c:DstSubPrefix} ${input:Src} ${output;noauto;hide;suf=.py:DstSubPrefix} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} - ADDINCL(FOR swig $_SWIG_LIBRARY/python FOR swig $_SWIG_LIBRARY) + .ADDINCL=$_SWIG_PYTHON_ADDINCLS } _EXPLICIT_SWIG_JAVA_SOURCES= diff --git a/build/ymake_conf.py b/build/ymake_conf.py index f68fcd10c8..d3e5f2fecd 100755 --- a/build/ymake_conf.py +++ b/build/ymake_conf.py @@ -466,7 +466,7 @@ class Options(object): self.toolchain_params = self.options.toolchain_params self.presets = parse_presets(self.options.presets) - userify_presets(self.presets, ('CFLAGS', 'CXXFLAGS', 'CONLYFLAGS', 'LDFLAGS', 'GO_COMPILE_FLAGS', 'GO_LINK_FLAGS', 'USE_LOCAL_SWIG', 'SWIG_TOOL', 'SWIG_LIBRARY')) + userify_presets(self.presets, ('CFLAGS', 'CXXFLAGS', 'CONLYFLAGS', 'LDFLAGS', 'GO_COMPILE_FLAGS', 'GO_LINK_FLAGS')) Instance = None @@ -698,8 +698,6 @@ class Build(object): cuda.print_() CuDNN(cuda).print_() - print_swig_config() - if self.ignore_local_files or host.is_windows or is_positive('NO_SVN_DEPENDS'): emit_with_ignore_comment('SVN_DEPENDS') emit_with_ignore_comment('SVN_DEPENDS_CACHE__NO_UID__') @@ -2526,34 +2524,6 @@ class CuDNN(object): self.cudnn_version.emit() -def print_swig_config(): - def get_swig_tool(): - tool = preset('USER_SWIG_TOOL') - if not tool: - tool = which('swig') - if not tool: - raise ConfigureError('SWIG_TOOL is not specified and "swig" is not found in PATH') - return os.path.abspath(tool) - - def get_swig_library(tool): - library = preset('USER_SWIG_LIBRARY') - if not library: - library, code = get_stdout_and_code((tool, '-swiglib')) - if code != 0: - raise ConfigureError('SWIG_LIBRARY is not specified and "{} -swiglib" failed'.format(tool)) - library = library.split('\n')[0] - return os.path.abspath(library) - - use_local_swig = to_bool(preset('USER_USE_LOCAL_SWIG'), False) or bool(preset('USER_SWIG_TOOL')) - if use_local_swig: - tool = get_swig_tool() - library = get_swig_library(tool) - - emit('USE_LOCAL_SWIG', True) - emit('SWIG_TOOL', tool) - emit('SWIG_LIBRARY', library) - - def main(): options = opts() |