aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorsvidyuk <svidyuk@yandex-team.com>2023-07-21 07:15:37 +0300
committersvidyuk <svidyuk@yandex-team.com>2023-07-21 07:15:37 +0300
commit89f40072e93575b769621fe9baa8b0fe88c9f226 (patch)
tree2cc38ddfd81be1c71d8123a1266a589dcdf60652 /build
parenta66bf06ecf75e6e40f231df118da29ca31f85612 (diff)
downloadydb-89f40072e93575b769621fe9baa8b0fe88c9f226.tar.gz
Deduce swig paths in ymake.conf
Diffstat (limited to 'build')
-rw-r--r--build/conf/swig.conf41
-rwxr-xr-xbuild/ymake_conf.py32
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()