aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xconfigure14
-rw-r--r--tensorflow/BUILD6
-rw-r--r--tensorflow/g3doc/get_started/os_setup.md16
-rw-r--r--tensorflow/python/lib/io/file_io.i5
-rw-r--r--tensorflow/tensorflow.bzl55
-rw-r--r--tensorflow/tools/docker/Dockerfile.devel1
-rw-r--r--tensorflow/tools/docker/Dockerfile.devel-gpu1
-rwxr-xr-xtensorflow/tools/swig/swig.sh25
-rw-r--r--tensorflow/workspace.bzl16
-rw-r--r--third_party/BUILD1
-rw-r--r--third_party/pcre.BUILD80
-rw-r--r--third_party/swig.BUILD335
12 files changed, 471 insertions, 84 deletions
diff --git a/configure b/configure
index 8f0a77dcae..dcdbff23b5 100755
--- a/configure
+++ b/configure
@@ -107,20 +107,6 @@ else
perl -pi -e "s,WITH_HDFS_SUPPORT = (False|True),WITH_HDFS_SUPPORT = False,s" tensorflow/core/platform/default/build_config.bzl
fi
-## Find swig path
-if [ -z "$SWIG_PATH" ]; then
- SWIG_PATH=`type -p swig 2> /dev/null || true`
-fi
-if [[ ! -e "$SWIG_PATH" ]]; then
- echo "Can't find swig. Ensure swig is in \$PATH or set \$SWIG_PATH."
- exit 1
-fi
-# Convert swig path to Windows style before writing into swig_path
-if is_windows; then
- SWIG_PATH="$(cygpath -m "$SWIG_PATH")"
-fi
-echo "$SWIG_PATH" > tensorflow/tools/swig/swig_path
-
# Invoke python_config and set up symlinks to python includes
./util/python/python_config.sh --setup "$PYTHON_BIN_PATH"
diff --git a/tensorflow/BUILD b/tensorflow/BUILD
index 6a173d040b..7a2105201f 100644
--- a/tensorflow/BUILD
+++ b/tensorflow/BUILD
@@ -63,12 +63,6 @@ package_group(
packages = ["//tensorflow/..."],
)
-sh_binary(
- name = "swig",
- srcs = ["tools/swig/swig.sh"],
- data = glob(["tools/swig/**"]),
-)
-
filegroup(
name = "all_files",
srcs = glob(
diff --git a/tensorflow/g3doc/get_started/os_setup.md b/tensorflow/g3doc/get_started/os_setup.md
index a280b25c88..139e2257e7 100644
--- a/tensorflow/g3doc/get_started/os_setup.md
+++ b/tensorflow/g3doc/get_started/os_setup.md
@@ -568,9 +568,9 @@ binary path.
```bash
# For Python 2.7:
-$ sudo apt-get install python-numpy swig python-dev python-wheel
+$ sudo apt-get install python-numpy python-dev python-wheel
# For Python 3.x:
-$ sudo apt-get install python3-numpy swig python3-dev python3-wheel
+$ sudo apt-get install python3-numpy python3-dev python3-wheel
```
#### Optional: Install CUDA (GPUs on Linux)
@@ -617,20 +617,16 @@ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
### Prepare environment for Mac OS X
-We recommend using [homebrew](http://brew.sh) to install the bazel and SWIG
-dependencies, and installing python dependencies using easy_install or pip.
-
-Of course you can also install Swig from source without using homebrew. In that
-case, be sure to install its dependency [PCRE](http://www.pcre.org) and not
-PCRE2.
+We recommend using [homebrew](http://brew.sh) to install the bazel dependency,
+and installing python dependencies using easy_install or pip.
#### Dependencies
Follow instructions [here](http://bazel.io/docs/install.html) to install the
-dependencies for bazel. You can then use homebrew to install bazel and SWIG:
+dependencies for bazel. You can then use homebrew to install bazel:
```bash
-$ brew install bazel swig
+$ brew install bazel
```
You can install the python dependencies using easy_install or pip. Using
diff --git a/tensorflow/python/lib/io/file_io.i b/tensorflow/python/lib/io/file_io.i
index 9688a9e02a..d88e6b59b6 100644
--- a/tensorflow/python/lib/io/file_io.i
+++ b/tensorflow/python/lib/io/file_io.i
@@ -275,5 +275,8 @@ string ReadFromStream(tensorflow::io::BufferedInputStream* stream,
%unignoreall
%include "tensorflow/c/tf_status_helper.h"
+
+%ignore tensorflow::io::internal::JoinPathImpl;
%include "tensorflow/core/lib/io/path.h"
-%include "tensorflow/core/platform/file_statistics.h" \ No newline at end of file
+
+%include "tensorflow/core/platform/file_statistics.h"
diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl
index 7ac751c9b0..9543df3571 100644
--- a/tensorflow/tensorflow.bzl
+++ b/tensorflow/tensorflow.bzl
@@ -557,33 +557,30 @@ def _py_wrap_cc_impl(ctx):
if len(srcs) != 1:
fail("Exactly one SWIG source file label must be specified.", "srcs")
module_name = ctx.attr.module_name
- cc_out = ctx.outputs.cc_out
- py_out = ctx.outputs.py_out
src = ctx.files.srcs[0]
- args = ["-c++", "-python"]
- args += ["-module", module_name]
- args += ["-l" + f.path for f in ctx.files.swig_includes]
- cc_include_dirs = set()
- cc_includes = set()
+ inputs = set([src])
+ inputs += ctx.files.swig_includes
for dep in ctx.attr.deps:
- cc_include_dirs += [h.dirname for h in dep.cc.transitive_headers]
- cc_includes += dep.cc.transitive_headers
- args += ["-I" + x for x in cc_include_dirs]
- args += ["-I" + ctx.label.workspace_root]
- args += ["-o", cc_out.path]
- args += ["-outdir", py_out.dirname]
+ inputs += dep.cc.transitive_headers
+ inputs += ctx.files._swiglib
+ swig_include_dirs = set([f.root.path for f in inputs if f.root.path])
+ swig_include_dirs += sorted([f.dirname for f in ctx.files._swiglib])
+ args = ["-c++",
+ "-python",
+ "-module", module_name,
+ "-o", ctx.outputs.cc_out.path,
+ "-outdir", ctx.outputs.py_out.dirname]
+ args += ["-l" + f.path for f in ctx.files.swig_includes]
+ args += ["-I" + i for i in swig_include_dirs]
args += [src.path]
- outputs = [cc_out, py_out]
- # TODO(pcloudy): Move args to arguments after
- # https://github.com/bazelbuild/bazel/issues/1926 is fixed
- ctx.action(command=" ".join(["tensorflow/tools/swig/swig.sh"] + args),
- arguments=[],
- mnemonic="PythonSwig",
- inputs=sorted(set([src]) + cc_includes + ctx.files.swig_includes +
- ctx.attr.swig_deps.files),
+ outputs = [ctx.outputs.cc_out,
+ ctx.outputs.py_out]
+ ctx.action(executable=ctx.executable._swig,
+ arguments=args,
+ inputs=list(inputs),
outputs=outputs,
- use_default_shell_env=True,
- progress_message="SWIGing {input}".format(input=src.path))
+ mnemonic="PythonSwig",
+ progress_message="SWIGing " + src.path)
return struct(files=set(outputs))
_py_wrap_cc = rule(
@@ -600,11 +597,17 @@ _py_wrap_cc = rule(
allow_files = True,
providers = ["cc"],
),
- "swig_deps": attr.label(default = Label(
- "//tensorflow:swig", # swig_templates
- )),
"module_name": attr.string(mandatory = True),
"py_module_name": attr.string(mandatory = True),
+ "_swig": attr.label(
+ default = Label("@swig//:swig"),
+ executable = True,
+ cfg = "host",
+ ),
+ "_swiglib": attr.label(
+ default = Label("@swig//:templates"),
+ allow_files = True,
+ ),
},
outputs = {
"cc_out": "%{module_name}.cc",
diff --git a/tensorflow/tools/docker/Dockerfile.devel b/tensorflow/tools/docker/Dockerfile.devel
index 688b52e901..2110dc34f9 100644
--- a/tensorflow/tools/docker/Dockerfile.devel
+++ b/tensorflow/tools/docker/Dockerfile.devel
@@ -14,7 +14,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
python-dev \
rsync \
software-properties-common \
- swig \
unzip \
zip \
zlib1g-dev \
diff --git a/tensorflow/tools/docker/Dockerfile.devel-gpu b/tensorflow/tools/docker/Dockerfile.devel-gpu
index 8693059369..fe6da41a45 100644
--- a/tensorflow/tools/docker/Dockerfile.devel-gpu
+++ b/tensorflow/tools/docker/Dockerfile.devel-gpu
@@ -15,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
python-dev \
rsync \
software-properties-common \
- swig \
unzip \
zip \
zlib1g-dev \
diff --git a/tensorflow/tools/swig/swig.sh b/tensorflow/tools/swig/swig.sh
deleted file mode 100755
index 941c4b20e9..0000000000
--- a/tensorflow/tools/swig/swig.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ==============================================================================
-
-# If possible, read swig path out of "swig_path" generated by configure
-SWIG=swig
-SWIG_PATH=tensorflow/tools/swig/swig_path
-if [ -e $SWIG_PATH ]; then
- SWIG=`cat $SWIG_PATH`
-fi
-
-# If this line fails, rerun configure to set the path to swig correctly
-"$SWIG" "$@"
diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
index 4c199e75fc..0221adaf03 100644
--- a/tensorflow/workspace.bzl
+++ b/tensorflow/workspace.bzl
@@ -126,6 +126,22 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""):
actual = str(Label("//util/python:python_headers")),
)
+ native.new_http_archive(
+ name = "pcre",
+ sha256 = "ccdf7e788769838f8285b3ee672ed573358202305ee361cfec7a4a4fb005bbc7",
+ url = "http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.39.tar.gz",
+ strip_prefix = "pcre-8.39",
+ build_file = str(Label("//third_party:pcre.BUILD")),
+ )
+
+ native.new_http_archive(
+ name = "swig",
+ sha256 = "a2669657cabcedc371f63c0457407a183e0b6b2ef4e7e303c1ec9a3964cc7813",
+ url = "http://ufpr.dl.sourceforge.net/project/swig/swig/swig-3.0.2/swig-3.0.2.tar.gz",
+ strip_prefix = "swig-3.0.2",
+ build_file = str(Label("//third_party:swig.BUILD")),
+ )
+
# grpc expects //external:protobuf_clib and //external:protobuf_compiler
# to point to the protobuf's compiler library.
native.bind(
diff --git a/third_party/BUILD b/third_party/BUILD
new file mode 100644
index 0000000000..fe756e1be2
--- /dev/null
+++ b/third_party/BUILD
@@ -0,0 +1 @@
+licenses(["notice"]) # Apache 2.0
diff --git a/third_party/pcre.BUILD b/third_party/pcre.BUILD
new file mode 100644
index 0000000000..d9ef246672
--- /dev/null
+++ b/third_party/pcre.BUILD
@@ -0,0 +1,80 @@
+licenses(["notice"]) # BSD
+
+exports_files(["LICENSE"])
+
+cc_library(
+ name = "pcre",
+ srcs = [
+ "pcre_byte_order.c",
+ "pcre_chartables.c",
+ "pcre_compile.c",
+ "pcre_config.c",
+ "pcre_dfa_exec.c",
+ "pcre_exec.c",
+ "pcre_fullinfo.c",
+ "pcre_get.c",
+ "pcre_globals.c",
+ "pcre_internal.h",
+ "pcre_jit_compile.c",
+ "pcre_maketables.c",
+ "pcre_newline.c",
+ "pcre_ord2utf8.c",
+ "pcre_refcount.c",
+ "pcre_string_utils.c",
+ "pcre_study.c",
+ "pcre_tables.c",
+ "pcre_ucd.c",
+ "pcre_valid_utf8.c",
+ "pcre_version.c",
+ "pcre_xclass.c",
+ "ucp.h",
+ ],
+ hdrs = [
+ "pcre.h",
+ "pcreposix.h",
+ ],
+ copts = [
+ "-DHAVE_BCOPY=1",
+ "-DHAVE_INTTYPES_H=1",
+ "-DHAVE_MEMMOVE=1",
+ "-DHAVE_STDINT_H=1",
+ "-DHAVE_STRERROR=1",
+ "-DHAVE_SYS_STAT_H=1",
+ "-DHAVE_SYS_TYPES_H=1",
+ "-DHAVE_UNISTD_H=1",
+ "-DLINK_SIZE=2",
+ "-DMATCH_LIMIT=10000000",
+ "-DMATCH_LIMIT_RECURSION=1000",
+ "-DMAX_NAME_COUNT=10000",
+ "-DMAX_NAME_SIZE=32",
+ "-DNEWLINE=10",
+ "-DNO_RECURSE",
+ "-DPARENS_NEST_LIMIT=50",
+ "-DPCRE_STATIC=1",
+ "-DPOSIX_MALLOC_THRESHOLD=10",
+ "-DSTDC_HEADERS=1",
+ "-DSUPPORT_UCP",
+ "-DSUPPORT_UTF",
+ ],
+ includes = ["."],
+ visibility = ["@swig//:__pkg__"], # Please use RE2
+ alwayslink = 1,
+)
+
+genrule(
+ name = "pcre_h",
+ srcs = ["pcre.h.in"],
+ outs = ["pcre.h"],
+ cmd = "sed -e s/@PCRE_MAJOR@/8/" +
+ " -e s/@PCRE_MINOR@/39/" +
+ " -e s/@PCRE_PRERELEASE@//" +
+ " -e s/@PCRE_DATE@/redacted/" +
+ " $< >$@",
+)
+
+genrule(
+ name = "pcre_chartables_c",
+ srcs = ["pcre_chartables.c.dist"],
+ outs = ["pcre_chartables.c"],
+ cmd = "cp $< $@",
+)
diff --git a/third_party/swig.BUILD b/third_party/swig.BUILD
new file mode 100644
index 0000000000..0ec413a248
--- /dev/null
+++ b/third_party/swig.BUILD
@@ -0,0 +1,335 @@
+licenses(["restricted"]) # GPLv3
+
+exports_files(["LICENSE"])
+
+cc_binary(
+ name = "swig",
+ srcs = [
+ "Source/CParse/cparse.h",
+ "Source/CParse/cscanner.c",
+ "Source/CParse/parser.c",
+ "Source/CParse/parser.h",
+ "Source/CParse/templ.c",
+ "Source/CParse/util.c",
+ "Source/DOH/base.c",
+ "Source/DOH/doh.h",
+ "Source/DOH/dohint.h",
+ "Source/DOH/file.c",
+ "Source/DOH/fio.c",
+ "Source/DOH/hash.c",
+ "Source/DOH/list.c",
+ "Source/DOH/memory.c",
+ "Source/DOH/string.c",
+ "Source/DOH/void.c",
+ "Source/Include/swigconfig.h",
+ "Source/Include/swigwarn.h",
+ "Source/Modules/allocate.cxx",
+ "Source/Modules/browser.cxx",
+ "Source/Modules/contract.cxx",
+ "Source/Modules/directors.cxx",
+ "Source/Modules/emit.cxx",
+ "Source/Modules/lang.cxx",
+ "Source/Modules/main.cxx",
+ "Source/Modules/module.cxx",
+ "Source/Modules/nested.cxx",
+ "Source/Modules/overload.cxx",
+ "Source/Modules/python.cxx",
+ "Source/Modules/swigmain-lite.cxx",
+ "Source/Modules/swigmod.h",
+ "Source/Modules/typepass.cxx",
+ "Source/Modules/uffi.cxx",
+ "Source/Modules/utils.cxx",
+ "Source/Modules/xml.cxx",
+ "Source/Preprocessor/cpp.c",
+ "Source/Preprocessor/expr.c",
+ "Source/Preprocessor/preprocessor.h",
+ "Source/Swig/cwrap.c",
+ "Source/Swig/deprecate.c",
+ "Source/Swig/error.c",
+ "Source/Swig/extend.c",
+ "Source/Swig/fragment.c",
+ "Source/Swig/getopt.c",
+ "Source/Swig/include.c",
+ "Source/Swig/misc.c",
+ "Source/Swig/naming.c",
+ "Source/Swig/parms.c",
+ "Source/Swig/scanner.c",
+ "Source/Swig/stype.c",
+ "Source/Swig/swig.h",
+ "Source/Swig/swigfile.h",
+ "Source/Swig/swigopt.h",
+ "Source/Swig/swigparm.h",
+ "Source/Swig/swigscan.h",
+ "Source/Swig/swigtree.h",
+ "Source/Swig/swigwrap.h",
+ "Source/Swig/symbol.c",
+ "Source/Swig/tree.c",
+ "Source/Swig/typemap.c",
+ "Source/Swig/typeobj.c",
+ "Source/Swig/typesys.c",
+ "Source/Swig/wrapfunc.c",
+ ],
+ copts = ["$(STACK_FRAME_UNLIMITED)"] + select({
+ ":x64_windows_msvc": [],
+ "//conditions:default": [
+ "-Wno-parentheses",
+ "-Wno-unused-variable",
+ "-fexceptions",
+ ],
+ }),
+ data = [":templates"],
+ includes = [
+ "Source/CParse",
+ "Source/DOH",
+ "Source/Include",
+ "Source/Modules",
+ "Source/Preprocessor",
+ "Source/Swig",
+ ],
+ output_licenses = ["unencumbered"],
+ visibility = ["//visibility:public"],
+ deps = ["@pcre//:pcre"],
+)
+
+filegroup(
+ name = "templates",
+ srcs = [
+ "Lib/allkw.swg",
+ "Lib/attribute.i",
+ "Lib/carrays.i",
+ "Lib/cdata.i",
+ "Lib/cffi/cffi.swg",
+ "Lib/cmalloc.i",
+ "Lib/constraints.i",
+ "Lib/cpointer.i",
+ "Lib/cstring.i",
+ "Lib/cwstring.i",
+ "Lib/exception.i",
+ "Lib/intrusive_ptr.i",
+ "Lib/inttypes.i",
+ "Lib/linkruntime.c",
+ "Lib/math.i",
+ "Lib/pointer.i",
+ "Lib/python/argcargv.i",
+ "Lib/python/attribute.i",
+ "Lib/python/boost_shared_ptr.i",
+ "Lib/python/builtin.swg",
+ "Lib/python/carrays.i",
+ "Lib/python/ccomplex.i",
+ "Lib/python/cdata.i",
+ "Lib/python/cmalloc.i",
+ "Lib/python/cni.i",
+ "Lib/python/complex.i",
+ "Lib/python/cpointer.i",
+ "Lib/python/cstring.i",
+ "Lib/python/cwstring.i",
+ "Lib/python/defarg.swg",
+ "Lib/python/director.swg",
+ "Lib/python/embed.i",
+ "Lib/python/embed15.i",
+ "Lib/python/exception.i",
+ "Lib/python/factory.i",
+ "Lib/python/file.i",
+ "Lib/python/implicit.i",
+ "Lib/python/jstring.i",
+ "Lib/python/pyabc.i",
+ "Lib/python/pyapi.swg",
+ "Lib/python/pybackward.swg",
+ "Lib/python/pybuffer.i",
+ "Lib/python/pyclasses.swg",
+ "Lib/python/pycomplex.swg",
+ "Lib/python/pycontainer.swg",
+ "Lib/python/pydocs.swg",
+ "Lib/python/pyerrors.swg",
+ "Lib/python/pyfragments.swg",
+ "Lib/python/pyhead.swg",
+ "Lib/python/pyinit.swg",
+ "Lib/python/pyiterators.swg",
+ "Lib/python/pymacros.swg",
+ "Lib/python/pyname_compat.i",
+ "Lib/python/pyopers.swg",
+ "Lib/python/pyprimtypes.swg",
+ "Lib/python/pyrun.swg",
+ "Lib/python/pyruntime.swg",
+ "Lib/python/pystdcommon.swg",
+ "Lib/python/pystrings.swg",
+ "Lib/python/python.swg",
+ "Lib/python/pythonkw.swg",
+ "Lib/python/pythreads.swg",
+ "Lib/python/pytuplehlp.swg",
+ "Lib/python/pytypemaps.swg",
+ "Lib/python/pyuserdir.swg",
+ "Lib/python/pywstrings.swg",
+ "Lib/python/std_alloc.i",
+ "Lib/python/std_auto_ptr.i",
+ "Lib/python/std_basic_string.i",
+ "Lib/python/std_carray.i",
+ "Lib/python/std_char_traits.i",
+ "Lib/python/std_common.i",
+ "Lib/python/std_complex.i",
+ "Lib/python/std_container.i",
+ "Lib/python/std_deque.i",
+ "Lib/python/std_except.i",
+ "Lib/python/std_ios.i",
+ "Lib/python/std_iostream.i",
+ "Lib/python/std_list.i",
+ "Lib/python/std_map.i",
+ "Lib/python/std_multimap.i",
+ "Lib/python/std_multiset.i",
+ "Lib/python/std_pair.i",
+ "Lib/python/std_set.i",
+ "Lib/python/std_shared_ptr.i",
+ "Lib/python/std_sstream.i",
+ "Lib/python/std_streambuf.i",
+ "Lib/python/std_string.i",
+ "Lib/python/std_unordered_map.i",
+ "Lib/python/std_unordered_multimap.i",
+ "Lib/python/std_unordered_multiset.i",
+ "Lib/python/std_unordered_set.i",
+ "Lib/python/std_vector.i",
+ "Lib/python/std_vectora.i",
+ "Lib/python/std_wios.i",
+ "Lib/python/std_wiostream.i",
+ "Lib/python/std_wsstream.i",
+ "Lib/python/std_wstreambuf.i",
+ "Lib/python/std_wstring.i",
+ "Lib/python/stl.i",
+ "Lib/python/typemaps.i",
+ "Lib/python/wchar.i",
+ "Lib/runtime.swg",
+ "Lib/shared_ptr.i",
+ "Lib/std/_std_deque.i",
+ "Lib/std/std_alloc.i",
+ "Lib/std/std_basic_string.i",
+ "Lib/std/std_carray.swg",
+ "Lib/std/std_char_traits.i",
+ "Lib/std/std_common.i",
+ "Lib/std/std_container.i",
+ "Lib/std/std_deque.i",
+ "Lib/std/std_except.i",
+ "Lib/std/std_ios.i",
+ "Lib/std/std_iostream.i",
+ "Lib/std/std_list.i",
+ "Lib/std/std_map.i",
+ "Lib/std/std_multimap.i",
+ "Lib/std/std_multiset.i",
+ "Lib/std/std_pair.i",
+ "Lib/std/std_queue.i",
+ "Lib/std/std_set.i",
+ "Lib/std/std_sstream.i",
+ "Lib/std/std_stack.i",
+ "Lib/std/std_streambuf.i",
+ "Lib/std/std_string.i",
+ "Lib/std/std_unordered_map.i",
+ "Lib/std/std_unordered_multimap.i",
+ "Lib/std/std_unordered_multiset.i",
+ "Lib/std/std_unordered_set.i",
+ "Lib/std/std_vector.i",
+ "Lib/std/std_vectora.i",
+ "Lib/std/std_wios.i",
+ "Lib/std/std_wiostream.i",
+ "Lib/std/std_wsstream.i",
+ "Lib/std/std_wstreambuf.i",
+ "Lib/std/std_wstring.i",
+ "Lib/std_except.i",
+ "Lib/stdint.i",
+ "Lib/stl.i",
+ "Lib/swig.swg",
+ "Lib/swigarch.i",
+ "Lib/swigerrors.swg",
+ "Lib/swiginit.swg",
+ "Lib/swiglabels.swg",
+ "Lib/swigrun.i",
+ "Lib/swigrun.swg",
+ "Lib/swigwarn.swg",
+ "Lib/swigwarnings.swg",
+ "Lib/typemaps/attribute.swg",
+ "Lib/typemaps/carrays.swg",
+ "Lib/typemaps/cdata.swg",
+ "Lib/typemaps/cmalloc.swg",
+ "Lib/typemaps/cpointer.swg",
+ "Lib/typemaps/cstring.swg",
+ "Lib/typemaps/cstrings.swg",
+ "Lib/typemaps/cwstring.swg",
+ "Lib/typemaps/enumint.swg",
+ "Lib/typemaps/exception.swg",
+ "Lib/typemaps/factory.swg",
+ "Lib/typemaps/fragments.swg",
+ "Lib/typemaps/implicit.swg",
+ "Lib/typemaps/inoutlist.swg",
+ "Lib/typemaps/misctypes.swg",
+ "Lib/typemaps/primtypes.swg",
+ "Lib/typemaps/ptrtypes.swg",
+ "Lib/typemaps/std_except.swg",
+ "Lib/typemaps/std_string.swg",
+ "Lib/typemaps/std_strings.swg",
+ "Lib/typemaps/std_wstring.swg",
+ "Lib/typemaps/string.swg",
+ "Lib/typemaps/strings.swg",
+ "Lib/typemaps/swigmacros.swg",
+ "Lib/typemaps/swigobject.swg",
+ "Lib/typemaps/swigtype.swg",
+ "Lib/typemaps/swigtypemaps.swg",
+ "Lib/typemaps/traits.swg",
+ "Lib/typemaps/typemaps.swg",
+ "Lib/typemaps/valtypes.swg",
+ "Lib/typemaps/void.swg",
+ "Lib/typemaps/wstring.swg",
+ "Lib/wchar.i",
+ "Lib/windows.i",
+ ],
+ licenses = ["notice"], # simple notice license for Lib/
+ path = "Lib",
+ visibility = ["//visibility:public"],
+)
+
+genrule(
+ name = "swigconfig",
+ outs = ["Source/Include/swigconfig.h"],
+ cmd = "cat <<EOF >$@\n" +
+ "#define HAVE_BOOL\n" +
+ "#define HAVE_PCRE\n" +
+ "#define HAVE_POPEN\n" +
+ "#define PACKAGE_BUGREPORT \"http://www.swig.org\"\n" +
+ "#define PACKAGE_VERSION \"3.0.2\"\n" +
+ "#define STDC_HEADERS\n" +
+ "#define SWIG_CXX \"bazel4lyfe\"\n" +
+ "#define SWIG_LIB \"external/swig/Lib\"\n" +
+ "#define SWIG_LIB_WIN_UNIX \"\"\n" +
+ "#define SWIG_PLATFORM \"bazel4lyfe\"\n" +
+ "EOF",
+)
+
+genrule(
+ name = "get_rid_of_stuff_we_dont_need_yet",
+ srcs = ["Source/Modules/swigmain.cxx"],
+ outs = ["Source/Modules/swigmain-lite.cxx"],
+ cmd = "sed -e '/swig_allegrocl/d'" +
+ " -e '/swig_cffi/d'" +
+ " -e '/swig_chicken/d'" +
+ " -e '/swig_clisp/d'" +
+ " -e '/swig_csharp/d'" +
+ " -e '/swig_d/d'" +
+ " -e '/swig_go/d'" +
+ " -e '/swig_guile/d'" +
+ " -e '/swig_java/d'" +
+ " -e '/swig_lua/d'" +
+ " -e '/swig_modula3/d'" +
+ " -e '/swig_mzscheme/d'" +
+ " -e '/swig_ocaml/d'" +
+ " -e '/swig_octave/d'" +
+ " -e '/swig_perl/d'" +
+ " -e '/swig_php/d'" +
+ " -e '/swig_pike/d'" +
+ " -e '/swig_r/d'" +
+ " -e '/swig_ruby/d'" +
+ " -e '/swig_sexp/d'" +
+ " -e '/swig_tcl/d'" +
+ " -e '/swig_uffi/d'" +
+ " $< >$@",
+)
+
+config_setting(
+ name = "x64_windows_msvc",
+ values = {"cpu": "x64_windows_msvc"},
+)