Add a Bazel build for cartographer (#834)

This does not include cartographer_grpc, nor any of the binaries
(*_main.cc). It has been tested with Bazel 0.9.0 on Ubuntu 14.04 with
the latest (at time of writing) dazel/dazel container, by running:

```
bazel build //...
bazel test //...
```

While this is a large CL, the files under third_party are not new - they have been through internal review, and this is their open-source release. The other files come to 212 lines of code.
master
Rodrigo Queiro 2018-01-22 16:47:07 +01:00 committed by Wally B. Feed
parent 67850d25a0
commit 0c227097e7
26 changed files with 3072 additions and 0 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
build
bazel-*

28
BUILD.bazel Normal file
View File

@ -0,0 +1,28 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Cartographer is a system that provides real-time simultaneous localization
# and mapping (SLAM) in 2D and 3D across multiple platforms and sensor
# configurations.
package(default_visibility = ["//visibility:public"])
exports_files(["LICENSE"])
filegroup(
name = "configuration_files",
srcs = glob([
"configuration_files/*.lua",
]),
)

25
WORKSPACE Normal file
View File

@ -0,0 +1,25 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
workspace(name = "com_github_googlecartographer_cartographer")
load("//:bazel/repositories.bzl", "cartographer_repositories")
cartographer_repositories()
# This can't be inside cartographer_repositories() because of:
# https://github.com/bazelbuild/bazel/issues/1550
load("@com_github_nelhage_boost//:boost/boost.bzl", "boost_deps")
boost_deps()

213
bazel/repositories.bzl Normal file
View File

@ -0,0 +1,213 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
"""External dependencies for Cartographer."""
def cartographer_repositories():
_maybe(native.http_archive,
name = "com_github_nelhage_boost",
sha256 = "5c88fc077f6b8111e997fec5146e5f9940ae9a2016eb9949447fcb4b482bcdb3",
strip_prefix = "rules_boost-7289bb1d8f938fdf98078297768c122ee9e11c9e",
urls = [
"https://mirror.bazel.build/github.com/nelhage/rules_boost/archive/7289bb1d8f938fdf98078297768c122ee9e11c9e.tar.gz",
"https://github.com/nelhage/rules_boost/archive/7289bb1d8f938fdf98078297768c122ee9e11c9e.tar.gz",
],
)
_maybe(native.http_archive,
name = "com_github_antonovvk_bazel_rules",
sha256 = "ba75b07d3fd297375a6688e9a16583eb616e7a74b3d5e8791e7a222cf36ab26e",
strip_prefix = "bazel_rules-98ddd7e4f7c63ea0868f08bcc228463dac2f9f12",
urls = [
"https://mirror.bazel.build/github.com/antonovvk/bazel_rules/archive/98ddd7e4f7c63ea0868f08bcc228463dac2f9f12.tar.gz",
"https://github.com/antonovvk/bazel_rules/archive/98ddd7e4f7c63ea0868f08bcc228463dac2f9f12.tar.gz",
],
)
_maybe(native.http_archive,
name = "com_github_gflags_gflags",
sha256 = "6e16c8bc91b1310a44f3965e616383dbda48f83e8c1eaa2370a215057b00cabe",
strip_prefix = "gflags-77592648e3f3be87d6c7123eb81cbad75f9aef5a",
urls = [
"https://mirror.bazel.build/github.com/gflags/gflags/archive/77592648e3f3be87d6c7123eb81cbad75f9aef5a.tar.gz",
"https://github.com/gflags/gflags/archive/77592648e3f3be87d6c7123eb81cbad75f9aef5a.tar.gz",
],
)
_maybe(native.http_archive,
name = "com_google_glog",
sha256 = "1ee310e5d0a19b9d584a855000434bb724aa744745d5b8ab1855c85bff8a8e21",
strip_prefix = "glog-028d37889a1e80e8a07da1b8945ac706259e5fd8",
urls = [
"https://mirror.bazel.build/github.com/google/glog/archive/028d37889a1e80e8a07da1b8945ac706259e5fd8.tar.gz",
"https://github.com/google/glog/archive/028d37889a1e80e8a07da1b8945ac706259e5fd8.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "net_zlib_zlib",
build_file = "//bazel/third_party:zlib.BUILD",
sha256 = "6d4d6640ca3121620995ee255945161821218752b551a1a180f4215f7d124d45",
strip_prefix = "zlib-cacf7f1d4e3d44d871b605da3b647f07d718623f",
urls = [
"https://mirror.bazel.build/github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz",
"https://github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_cairographics_pixman",
build_file = "//bazel/third_party/pixman:pixman.BUILD",
sha256 = "21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e",
strip_prefix = "pixman-0.34.0",
urls = [
"https://mirror.bazel.build/www.cairographics.org/releases/pixman-0.34.0.tar.gz",
"https://www.cairographics.org/releases/pixman-0.34.0.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_cairographics_cairo",
build_file = "//bazel/third_party/cairo:cairo.BUILD",
sha256 = "7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09",
strip_prefix = "cairo-1.14.10",
urls = [
"https://mirror.bazel.build/www.cairographics.org/releases/cairo-1.14.10.tar.xz",
"https://www.cairographics.org/releases/cairo-1.14.10.tar.xz",
],
)
_maybe(native.new_http_archive,
name = "org_freetype_freetype2",
build_file = "//bazel/third_party:freetype2.BUILD",
sha256 = "33a28fabac471891d0523033e99c0005b95e5618dc8ffa7fa47f9dadcacb1c9b",
strip_prefix = "freetype-2.8",
urls = [
"https://mirror.bazel.build/download.savannah.gnu.org/releases/freetype/freetype-2.8.tar.gz",
"http://download.savannah.gnu.org/releases/freetype/freetype-2.8.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_libgd_libgd",
build_file = "//bazel/third_party:gd.BUILD",
sha256 = "a66111c9b4a04e818e9e2a37d7ae8d4aae0939a100a36b0ffb52c706a09074b5",
strip_prefix = "libgd-2.2.5",
urls = [
"https://mirror.bazel.build/github.com/libgd/libgd/releases/download/gd-2.2.5/libgd-2.2.5.tar.gz",
"https://github.com/libgd/libgd/releases/download/gd-2.2.5/libgd-2.2.5.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_freedesktop_fontconfig",
build_file = "//bazel/third_party/fontconfig:fontconfig.BUILD",
sha256 = "fd5a6a663f4c4a00e196523902626654dd0c4a78686cbc6e472f338e50fdf806",
strip_prefix = "fontconfig-2.12.4",
urls = [
"https://mirror.bazel.build/www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.4.tar.gz",
"https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.4.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_ceres_solver_ceres_solver",
build_file = "//bazel/third_party:ceres.BUILD",
sha256 = "cb69d1ca4900bc9c4703116a9facba00413eafd893430659fab63246f5320288",
strip_prefix = "ceres-solver-f58eacf082ddf198b2bf982e3cdb57ed3b5ea025",
urls = [
"https://mirror.bazel.build/github.com/ceres-solver/ceres-solver/archive/f58eacf082ddf198b2bf982e3cdb57ed3b5ea025.tar.gz",
"https://github.com/ceres-solver/ceres-solver/archive/f58eacf082ddf198b2bf982e3cdb57ed3b5ea025.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_tuxfamily_eigen",
build_file = "//bazel/third_party:eigen.BUILD",
sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4",
strip_prefix = "eigen-eigen-f3a22f35b044",
urls = [
"http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
"https://bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "com_github_libexpat_libexpat",
build_file = "//bazel/third_party:expat.BUILD",
sha256 = "b5dcb503e40f615a0296a18acc6d975f2f1a3d01c7b3a4b3bb69de27bc9475c3",
strip_prefix = "libexpat-R_2_2_4/expat",
urls = [
"https://mirror.bazel.build/github.com/libexpat/libexpat/archive/R_2_2_4.tar.gz",
"https://github.com/libexpat/libexpat/archive/R_2_2_4.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "libjpeg",
build_file = "//bazel/third_party:libjpeg.BUILD",
sha256 = "240fd398da741669bf3c90366f58452ea59041cacc741a489b99f2f6a0bad052",
strip_prefix = "jpeg-9b",
urls = [
"https://mirror.bazel.build/www.ijg.org/files/jpegsrc.v9b.tar.gz",
"http://www.ijg.org/files/jpegsrc.v9b.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_libpng_libpng",
build_file = "//bazel/third_party:libpng.BUILD",
sha256 = "7f415186d38ca71c23058386d7cf5135c8beda821ee1beecdc2a7a26c0356615",
strip_prefix = "libpng-1.2.57",
urls = [
"https://mirror.bazel.build/github.com/glennrp/libpng/archive/v1.2.57.tar.gz",
"https://github.com/glennrp/libpng/archive/v1.2.57.tar.gz",
],
)
_maybe(native.http_archive,
name = "com_google_googletest",
sha256 = "c18f281fd6621bb264570b99860a0241939b4a251c9b1af709b811d33bc63af8",
strip_prefix = "googletest-e3bd4cbeaeef3cee65a68a8bd3c535cb779e9b6d",
urls = [
"https://mirror.bazel.build/github.com/google/googletest/archive/e3bd4cbeaeef3cee65a68a8bd3c535cb779e9b6d.tar.gz",
"https://github.com/google/googletest/archive/e3bd4cbeaeef3cee65a68a8bd3c535cb779e9b6d.tar.gz",
],
)
_maybe(native.http_archive,
name = "com_google_protobuf",
sha256 = "0cc6607e2daa675101e9b7398a436f09167dffb8ca0489b0307ff7260498c13c",
strip_prefix = "protobuf-3.5.0",
urls = [
"https://mirror.bazel.build/github.com/google/protobuf/archive/v3.5.0.tar.gz",
"https://github.com/google/protobuf/archive/v3.5.0.tar.gz",
],
)
_maybe(native.new_http_archive,
name = "org_lua_lua",
build_file = "//bazel/third_party:lua.BUILD",
sha256 = "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b",
strip_prefix = "lua-5.2.4",
urls = [
"https://mirror.bazel.build/www.lua.org/ftp/lua-5.2.4.tar.gz",
"https://www.lua.org/ftp/lua-5.2.4.tar.gz",
],
)
def _maybe(repo_rule, name, **kwargs):
if name not in native.existing_rules():
repo_rule(name=name, **kwargs)

20
bazel/third_party/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,20 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Bazel build support for third-party packages.
exports_files(
glob(["*.BUILD"]),
visibility = ["//visibility:public"],
)

26
bazel/third_party/cairo/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,26 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Files required for building Cairo with Bazel.
licenses(["notice"])
exports_files(
[
"cairo.BUILD",
"config.h",
"cairo-features.h",
],
visibility = ["//visibility:public"],
)

View File

@ -0,0 +1,50 @@
/*
* Copyright 2018 The Cartographer Authors
*
* 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.
*/
#ifndef CAIRO_FEATURES_H
#define CAIRO_FEATURES_H
#define CAIRO_HAS_FC_FONT 1
#define CAIRO_HAS_FT_FONT 1
#define CAIRO_HAS_GOBJECT_FUNCTIONS 1
#define CAIRO_HAS_IMAGE_SURFACE 1
#define CAIRO_HAS_MIME_SURFACE 1
#define CAIRO_HAS_OBSERVER_SURFACE 1
#define CAIRO_HAS_PDF_SURFACE 1
#define CAIRO_HAS_PNG_FUNCTIONS 1
#define CAIRO_HAS_PS_SURFACE 1
#define CAIRO_HAS_RECORDING_SURFACE 1
#define CAIRO_HAS_SCRIPT_SURFACE 1
#define CAIRO_HAS_SVG_SURFACE 1
#define CAIRO_HAS_TEE_SURFACE 1
#define CAIRO_HAS_USER_FONT 1
#define CAIRO_HAS_GIF_FUNCTIONS 1
#define CAIRO_HAS_JPEG_FUNCTIONS 1
/*#undef CAIRO_HAS_EGL_FUNCTIONS */
/*#undef CAIRO_HAS_GLX_FUNCTIONS */
/*#undef CAIRO_HAS_QUARTZ_FONT */
/*#undef CAIRO_HAS_QUARTZ_SURFACE */
/*#undef CAIRO_HAS_WGL_FUNCTIONS */
/*#undef CAIRO_HAS_WIN32_FONT */
/*#undef CAIRO_HAS_WIN32_SURFACE */
/*#undef CAIRO_HAS_XCB_SHM_FUNCTIONS */
/*#undef CAIRO_HAS_XCB_SURFACE */
/*#undef CAIRO_HAS_XLIB_SURFACE */
/*#undef CAIRO_HAS_XLIB_XRENDER_SURFACE */
#endif

303
bazel/third_party/cairo/cairo.BUILD vendored Normal file
View File

@ -0,0 +1,303 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# Cairo is a 2D graphics library with support for multiple output devices.
licenses(["reciprocal"]) # MPL 1.1
genrule(
name = "config_h",
srcs = ["@com_github_googlecartographer_cartographer//bazel/third_party/cairo:config.h"],
outs = ["cairo_internal/config.h"],
cmd = "cp $< $@",
)
genrule(
name = "cairo_features_h",
srcs = ["@com_github_googlecartographer_cartographer//bazel/third_party/cairo:cairo-features.h"],
outs = ["src/cairo-features.h"],
cmd = "cp $< $@",
)
cc_library(
name = "cairo",
srcs = [
"cairo-version.h",
"cairo_internal/config.h",
"src/cairo.c",
"src/cairo.h",
"src/cairo-analysis-surface.c",
"src/cairo-analysis-surface-private.h",
"src/cairo-arc.c",
"src/cairo-arc-private.h",
"src/cairo-array.c",
"src/cairo-array-private.h",
"src/cairo-atomic.c",
"src/cairo-atomic-private.h",
"src/cairo-backend-private.h",
"src/cairo-base64-stream.c",
"src/cairo-base85-stream.c",
"src/cairo-bentley-ottmann.c",
"src/cairo-bentley-ottmann-rectangular.c",
"src/cairo-bentley-ottmann-rectilinear.c",
"src/cairo-botor-scan-converter.c",
"src/cairo-box-inline.h",
"src/cairo-boxes.c",
"src/cairo-boxes-intersect.c",
"src/cairo-boxes-private.h",
"src/cairo-cache.c",
"src/cairo-cache-private.h",
"src/cairo-cff-subset.c",
"src/cairo-clip.c",
"src/cairo-clip-boxes.c",
"src/cairo-clip-inline.h",
"src/cairo-clip-polygon.c",
"src/cairo-clip-private.h",
"src/cairo-clip-region.c",
"src/cairo-clip-surface.c",
"src/cairo-clip-tor-scan-converter.c",
"src/cairo-color.c",
"src/cairo-combsort-inline.h",
"src/cairo-compiler-private.h",
"src/cairo-composite-rectangles.c",
"src/cairo-composite-rectangles-private.h",
"src/cairo-compositor.c",
"src/cairo-compositor-private.h",
"src/cairo-contour.c",
"src/cairo-contour-inline.h",
"src/cairo-contour-private.h",
"src/cairo-damage.c",
"src/cairo-damage-private.h",
"src/cairo-debug.c",
"src/cairo-default-context.c",
"src/cairo-default-context-private.h",
"src/cairo-deflate-stream.c",
"src/cairo-deprecated.h",
"src/cairo-device.c",
"src/cairo-device-private.h",
"src/cairo-error.c",
"src/cairo-error-private.h",
"src/cairo-fallback-compositor.c",
"src/cairo-features.h",
"src/cairo-fixed.c",
"src/cairo-fixed-private.h",
"src/cairo-fixed-type-private.h",
"src/cairo-font-face.c",
"src/cairo-font-face-twin.c",
"src/cairo-font-face-twin-data.c",
"src/cairo-font-options.c",
"src/cairo-fontconfig-private.h",
"src/cairo-freed-pool.c",
"src/cairo-freed-pool-private.h",
"src/cairo-freelist.c",
"src/cairo-freelist-private.h",
"src/cairo-freelist-type-private.h",
"src/cairo-ft.h",
"src/cairo-ft-font.c",
"src/cairo-ft-private.h",
"src/cairo-gstate.c",
"src/cairo-gstate-private.h",
"src/cairo-hash.c",
"src/cairo-hash-private.h",
"src/cairo-hull.c",
"src/cairo-image-compositor.c",
"src/cairo-image-info.c",
"src/cairo-image-info-private.h",
"src/cairo-image-source.c",
"src/cairo-image-surface.c",
"src/cairo-image-surface-inline.h",
"src/cairo-image-surface-private.h",
"src/cairo-line.c",
"src/cairo-line-inline.h",
"src/cairo-line-private.h",
"src/cairo-list-inline.h",
"src/cairo-list-private.h",
"src/cairo-lzw.c",
"src/cairo-malloc-private.h",
"src/cairo-mask-compositor.c",
"src/cairo-matrix.c",
"src/cairo-mempool.c",
"src/cairo-mempool-private.h",
"src/cairo-mesh-pattern-rasterizer.c",
"src/cairo-misc.c",
"src/cairo-mono-scan-converter.c",
"src/cairo-mutex.c",
"src/cairo-mutex-impl-private.h",
"src/cairo-mutex-list-private.h",
"src/cairo-mutex-private.h",
"src/cairo-mutex-type-private.h",
"src/cairo-no-compositor.c",
"src/cairo-observer.c",
"src/cairo-output-stream.c",
"src/cairo-output-stream-private.h",
"src/cairo-paginated-private.h",
"src/cairo-paginated-surface.c",
"src/cairo-paginated-surface-private.h",
"src/cairo-path.c",
"src/cairo-path-bounds.c",
"src/cairo-path-fill.c",
"src/cairo-path-fixed.c",
"src/cairo-path-fixed-private.h",
"src/cairo-path-in-fill.c",
"src/cairo-path-private.h",
"src/cairo-path-stroke.c",
"src/cairo-path-stroke-boxes.c",
"src/cairo-path-stroke-polygon.c",
"src/cairo-path-stroke-traps.c",
"src/cairo-path-stroke-tristrip.c",
"src/cairo-pattern.c",
"src/cairo-pattern-inline.h",
"src/cairo-pattern-private.h",
"src/cairo-pdf.h",
"src/cairo-pdf-operators.c",
"src/cairo-pdf-operators-private.h",
"src/cairo-pdf-shading.c",
"src/cairo-pdf-shading-private.h",
"src/cairo-pdf-surface.c",
"src/cairo-pdf-surface-private.h",
"src/cairo-pen.c",
"src/cairo-pixman-private.h",
"src/cairo-png.c",
"src/cairo-polygon.c",
"src/cairo-polygon-intersect.c",
"src/cairo-polygon-reduce.c",
"src/cairo-private.h",
"src/cairo-ps.h",
"src/cairo-ps-surface.c",
"src/cairo-ps-surface-private.h",
"src/cairo-raster-source-pattern.c",
"src/cairo-recording-surface.c",
"src/cairo-recording-surface-inline.h",
"src/cairo-recording-surface-private.h",
"src/cairo-rectangle.c",
"src/cairo-rectangular-scan-converter.c",
"src/cairo-reference-count-private.h",
"src/cairo-region.c",
"src/cairo-region-private.h",
"src/cairo-rtree.c",
"src/cairo-rtree-private.h",
"src/cairo-scaled-font.c",
"src/cairo-scaled-font-private.h",
"src/cairo-scaled-font-subsets.c",
"src/cairo-scaled-font-subsets-private.h",
"src/cairo-script.h",
"src/cairo-script-private.h",
"src/cairo-script-surface.c",
"src/cairo-shape-mask-compositor.c",
"src/cairo-slope.c",
"src/cairo-slope-private.h",
"src/cairo-spans.c",
"src/cairo-spans-compositor.c",
"src/cairo-spans-compositor-private.h",
"src/cairo-spans-private.h",
"src/cairo-spline.c",
"src/cairo-stroke-dash.c",
"src/cairo-stroke-dash-private.h",
"src/cairo-stroke-style.c",
"src/cairo-surface.c",
"src/cairo-surface-backend-private.h",
"src/cairo-surface-clipper.c",
"src/cairo-surface-clipper-private.h",
"src/cairo-surface-fallback.c",
"src/cairo-surface-fallback-private.h",
"src/cairo-surface-inline.h",
"src/cairo-surface-observer.c",
"src/cairo-surface-observer-inline.h",
"src/cairo-surface-observer-private.h",
"src/cairo-surface-offset.c",
"src/cairo-surface-offset-private.h",
"src/cairo-surface-private.h",
"src/cairo-surface-snapshot.c",
"src/cairo-surface-snapshot-inline.h",
"src/cairo-surface-snapshot-private.h",
"src/cairo-surface-subsurface.c",
"src/cairo-surface-subsurface-inline.h",
"src/cairo-surface-subsurface-private.h",
"src/cairo-surface-wrapper.c",
"src/cairo-surface-wrapper-private.h",
"src/cairo-svg.h",
"src/cairo-svg-surface.c",
"src/cairo-svg-surface-private.h",
"src/cairo-tee.h",
"src/cairo-tee-surface.c",
"src/cairo-tee-surface-private.h",
"src/cairo-time.c",
"src/cairo-time-private.h",
"src/cairo-tor-scan-converter.c",
"src/cairo-tor22-scan-converter.c",
"src/cairo-toy-font-face.c",
"src/cairo-traps.c",
"src/cairo-traps-compositor.c",
"src/cairo-traps-private.h",
"src/cairo-tristrip.c",
"src/cairo-tristrip-private.h",
"src/cairo-truetype-subset.c",
"src/cairo-truetype-subset-private.h",
"src/cairo-type1-fallback.c",
"src/cairo-type1-glyph-names.c",
"src/cairo-type1-private.h",
"src/cairo-type1-subset.c",
"src/cairo-type3-glyph-surface.c",
"src/cairo-type3-glyph-surface-private.h",
"src/cairo-types-private.h",
"src/cairo-unicode.c",
"src/cairo-user-font.c",
"src/cairo-user-font-private.h",
"src/cairo-version.c",
"src/cairo-version.h",
"src/cairo-wideint.c",
"src/cairo-wideint-private.h",
"src/cairo-wideint-type-private.h",
"src/cairoint.h",
],
hdrs = [
"src/cairo.h",
"src/cairo-deprecated.h",
"src/cairo-features.h",
"src/cairo-version.h",
],
copts = [
"-DHAVE_CONFIG_H",
"-D_REENTRANT",
"-Wno-attributes",
"-Wno-cpp",
"-Wno-maybe-uninitialized",
"-Wno-misleading-indentation",
"-Wno-strict-aliasing",
"-Wno-unused-but-set-variable",
"-Wno-unused-function",
"-I$(GENDIR)/external/org_cairographics_cairo/src",
"-I$(GENDIR)/external/org_cairographics_cairo/cairo_internal",
"-DCAIRO_HAS_XLIB_SURFACE=1", # Only effect is to create xlib display mutex
],
include_prefix = "cairo",
linkopts = [
"-lpthread",
"-lrt",
"-lm",
],
strip_include_prefix = "src",
visibility = ["//visibility:public"],
deps = [
"@com_github_libexpat_libexpat//:expat",
"@libjpeg//:jpeg",
"@net_zlib_zlib//:zlib",
"@org_cairographics_pixman//:pixman",
"@org_freedesktop_fontconfig//:fontconfig",
"@org_freetype_freetype2//:freetype2",
"@org_libgd_libgd//:gd",
"@org_libpng_libpng//:libpng",
],
)

428
bazel/third_party/cairo/config.h vendored Normal file
View File

@ -0,0 +1,428 @@
/*
* Copyright 2018 The Cartographer Authors
*
* 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.
*/
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* whether memory barriers are needed around atomic operations */
/* #undef ATOMIC_OP_NEEDS_MEMORY_BARRIER */
/* Define to 1 if the PDF backend can be tested (need poppler and other
dependencies for pdf2png) */
/* #undef CAIRO_CAN_TEST_PDF_SURFACE */
/* Define to 1 if the PS backend can be tested (needs ghostscript) */
#define CAIRO_CAN_TEST_PS_SURFACE 1
/* Define to 1 if the SVG backend can be tested */
/* #undef CAIRO_CAN_TEST_SVG_SURFACE */
/* Define to 1 if the Win32 Printing backend can be tested (needs ghostscript)
*/
/* #undef CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE */
/* Define to 1 if dlsym is available */
#define CAIRO_HAS_DLSYM 1
/* Define to 1 to enable cairo's cairo-script-interpreter feature */
/* #undef CAIRO_HAS_INTERPRETER */
/* Define to 1 to enable cairo's pthread feature */
#define CAIRO_HAS_PTHREAD 1
/* Define to 1 if we have full pthread support */
#define CAIRO_HAS_REAL_PTHREAD 1
/* Define to 1 if libspectre is available */
/* #undef CAIRO_HAS_SPECTRE */
/* Define to 1 to enable cairo's symbol-lookup feature */
/* #undef CAIRO_HAS_SYMBOL_LOOKUP */
/* Define to 1 to enable cairo's test surfaces feature */
/* #undef CAIRO_HAS_TEST_SURFACES */
/* Define to 1 to enable cairo's cairo-trace feature */
/* #undef CAIRO_HAS_TRACE */
/* Define to 1 to disable certain code paths that rely heavily on double
precision floating-point calculation */
/* #undef DISABLE_SOME_FLOATING_POINT */
/* Define to 1 if your system stores words within floats with the most
significant word first */
/* #undef FLOAT_WORDS_BIGENDIAN */
/* Enable pixman glyph cache */
#define HAS_PIXMAN_GLYPHS 1
/* Define to 1 if you have the `alarm' function. */
#define HAVE_ALARM 1
/* Define to 1 if you have the binutils development files installed */
/* #undef HAVE_BFD */
/* Define to 1 if your compiler supports the __builtin_return_address()
intrinsic. */
#define HAVE_BUILTIN_RETURN_ADDRESS 1
/* Define to 1 if you have the <byteswap.h> header file. */
#define HAVE_BYTESWAP_H 1
/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1
/* Define to 1 if you have the `ctime_r' function. */
#define HAVE_CTIME_R 1
/* Enable if your compiler supports the GCC __atomic_* atomic primitives */
#define HAVE_CXX11_ATOMIC_PRIMITIVES 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you have the `drand48' function. */
#define HAVE_DRAND48 1
/* Define to 1 if you have the `FcFini' function. */
/* #undef HAVE_FCFINI */
/* Define to 1 if you have the `FcInit' function. */
/* #undef HAVE_FCINIT */
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define to 1 if you have the `feclearexcept' function. */
#define HAVE_FECLEAREXCEPT 1
/* Define to 1 if you have the `fedisableexcept' function. */
#define HAVE_FEDISABLEEXCEPT 1
/* Define to 1 if you have the `feenableexcept' function. */
#define HAVE_FEENABLEEXCEPT 1
/* Define to 1 if you have the <fenv.h> header file. */
#define HAVE_FENV_H 1
/* Define to 1 if you have the `flockfile' function. */
#define HAVE_FLOCKFILE 1
/* Define to 1 if you have the `fork' function. */
#define HAVE_FORK 1
/* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */
#define HAVE_FT_GET_X11_FONT_FORMAT 1
/* Define to 1 if you have the `FT_GlyphSlot_Embolden' function. */
#define HAVE_FT_GLYPHSLOT_EMBOLDEN 1
/* Define to 1 if you have the `FT_GlyphSlot_Oblique' function. */
#define HAVE_FT_GLYPHSLOT_OBLIQUE 1
/* Define to 1 if you have the `FT_Library_SetLcdFilter' function. */
#define HAVE_FT_LIBRARY_SETLCDFILTER 1
/* Define to 1 if you have the `FT_Load_Sfnt_Table' function. */
#define HAVE_FT_LOAD_SFNT_TABLE 1
/* Define to 1 if you have the `funlockfile' function. */
#define HAVE_FUNLOCKFILE 1
/* Whether you have gcov */
/* #undef HAVE_GCOV */
/* Define to 1 if you have the `getline' function. */
#define HAVE_GETLINE 1
/* Enable if your compiler supports the Intel __sync_* atomic primitives */
/* #undef HAVE_INTEL_ATOMIC_PRIMITIVES */
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <io.h> header file. */
/* #undef HAVE_IO_H */
/* Define to 1 if you have the <libgen.h> header file. */
#define HAVE_LIBGEN_H 1
/* Define to 1 if you have the `rt' library (-lrt). */
#define HAVE_LIBRT 1
/* Enable if you have libatomic-ops-dev installed */
/* #undef HAVE_LIB_ATOMIC_OPS */
/* Define to 1 if you have the `link' function. */
#define HAVE_LINK 1
/* Define to 1 if you have the Valgrind lockdep tool */
/* #undef HAVE_LOCKDEP */
/* Define to 1 if you have lzo available */
/* #undef HAVE_LZO */
/* Define to 1 if you have the Valgrind memfault tool */
/* #undef HAVE_MEMFAULT */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to non-zero if your system has mkdir, and to 2 if your version of
mkdir requires a mode parameter */
#define HAVE_MKDIR 2
/* Define to 1 if you have the `mmap' function. */
#define HAVE_MMAP 1
/* Enable if you have MacOS X atomic operations */
/* #undef HAVE_OS_ATOMIC_OPS */
/* Define to 1 if you have the `poppler_page_render' function. */
/* #undef HAVE_POPPLER_PAGE_RENDER */
/* Define to 1 if you have the `raise' function. */
#define HAVE_RAISE 1
/* Define to 1 if you have the `rsvg_pixbuf_from_file' function. */
/* #undef HAVE_RSVG_PIXBUF_FROM_FILE */
/* Define to 1 if you have the `sched_getaffinity' function. */
#define HAVE_SCHED_GETAFFINITY 1
/* Define to 1 if you have the <sched.h> header file. */
#define HAVE_SCHED_H 1
/* Define to 1 if you have the <setjmp.h> header file. */
#define HAVE_SETJMP_H 1
/* Define to 1 if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strndup' function. */
#define HAVE_STRNDUP 1
/* Define to 1 if you have the <sys/int_types.h> header file. */
/* #undef HAVE_SYS_INT_TYPES_H */
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#define HAVE_SYS_IOCTL_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
#define HAVE_SYS_MMAN_H 1
/* Define to 1 if you have the <sys/poll.h> header file. */
#define HAVE_SYS_POLL_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/un.h> header file. */
#define HAVE_SYS_UN_H 1
/* Define to 1 if you have the <sys/wait.h> header file. */
#define HAVE_SYS_WAIT_H 1
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Define to 1 if the system has the type `uint128_t'. */
/* #undef HAVE_UINT128_T */
/* Define to 1 if the system has the type `uint64_t'. */
#define HAVE_UINT64_T 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if you have Valgrind */
/* #undef HAVE_VALGRIND */
/* Define to 1 if you have the `waitpid' function. */
#define HAVE_WAITPID 1
/* Define to 1 if you have the <windows.h> header file. */
/* #undef HAVE_WINDOWS_H */
/* Define to 1 if you have the <X11/extensions/shmproto.h> header file. */
/* #undef HAVE_X11_EXTENSIONS_SHMPROTO_H */
/* Define to 1 if you have the <X11/extensions/shmstr.h> header file. */
/* #undef HAVE_X11_EXTENSIONS_SHMSTR_H */
/* Define to 1 if you have the <X11/extensions/XShm.h> header file. */
/* #undef HAVE_X11_EXTENSIONS_XSHM_H */
/* Define to 1 if you have the `XRenderCreateConicalGradient' function. */
/* #undef HAVE_XRENDERCREATECONICALGRADIENT */
/* Define to 1 if you have the `XRenderCreateLinearGradient' function. */
/* #undef HAVE_XRENDERCREATELINEARGRADIENT */
/* Define to 1 if you have the `XRenderCreateRadialGradient' function. */
/* #undef HAVE_XRENDERCREATERADIALGRADIENT */
/* Define to 1 if you have zlib available */
#define HAVE_ZLIB 1
/* Define to 1 if the system has the type `__uint128_t'. */
#define HAVE___UINT128_T 1
/* Define to 1 if shared memory segments are released deferred. */
/* #undef IPC_RMID_DEFERRED_RELEASE */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT \
"http://bugs.freedesktop.org/enter_bug.cgi?product=cairo"
/* Define to the full name of this package. */
#define PACKAGE_NAME USE_cairo_INSTEAD
/* Define to the full name and version of this package. */
#define PACKAGE_STRING USE_cairo_version_OR_cairo_version_string_INSTEAD
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME USE_cairo_INSTEAD
/* Define to the home page for this package. */
#define PACKAGE_URL "http://cairographics.org/"
/* Define to the version of this package. */
#define PACKAGE_VERSION USE_cairo_version_OR_cairo_version_string_INSTEAD
/* Shared library file extension */
#define SHARED_LIB_EXT "so"
/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
/* The size of `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG 8
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 8
/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 8
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
#define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
#define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
#define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
#define __EXTENSIONS__ 1
#endif
/* Define to the value your compiler uses to support the warn-unused-result
attribute */
#define WARN_UNUSED_RESULT
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
#if defined __BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
#endif
#else
#ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
#endif
#endif
/* Deal with multiple architecture compiles on Mac OS X */
#ifdef __APPLE_CC__
#ifdef __BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
#define FLOAT_WORDS_BIGENDIAN 1
#else
/* #undef WORDS_BIGENDIAN */
/* #undef FLOAT_WORDS_BIGENDIAN */
#endif
#endif
/* Define to 1 if the X Window System is missing or not being used. */
/* #undef X_DISPLAY_MISSING */
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
#define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to 1 if on MINIX. */
/* #undef _MINIX */
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
/* #undef _POSIX_1_SOURCE */
/* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif

161
bazel/third_party/ceres.BUILD vendored Normal file
View File

@ -0,0 +1,161 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# Ceres Solver is an open source C++ library for modeling and solving large,
# complicated optimization problems.
licenses(["notice"]) # New BSD, portions MIT.
CERES_DEFINES = [
"CERES_USE_CXX11",
"CERES_NO_EIGENSPARSE",
"CERES_NO_SUITESPARSE",
"CERES_NO_LAPACK",
"CERES_NO_CXSPARSE",
"CERES_STD_UNORDERED_MAP",
# Enable support for OpenMP.
"CERES_USE_OPENMP",
# Use the internal mutex code. Not ideal, but it works.
"CERES_HAVE_PTHREAD",
"CERES_HAVE_RWLOCK",
]
cc_library(
name = "ceres",
srcs = [
"internal/ceres/array_utils.cc",
"internal/ceres/blas.cc",
"internal/ceres/block_evaluate_preparer.cc",
"internal/ceres/block_jacobi_preconditioner.cc",
"internal/ceres/block_jacobian_writer.cc",
"internal/ceres/block_random_access_dense_matrix.cc",
"internal/ceres/block_random_access_diagonal_matrix.cc",
"internal/ceres/block_random_access_matrix.cc",
"internal/ceres/block_random_access_sparse_matrix.cc",
"internal/ceres/block_sparse_matrix.cc",
"internal/ceres/block_structure.cc",
"internal/ceres/callbacks.cc",
"internal/ceres/c_api.cc",
"internal/ceres/canonical_views_clustering.cc",
"internal/ceres/cgnr_solver.cc",
"internal/ceres/coordinate_descent_minimizer.cc",
"internal/ceres/compressed_col_sparse_matrix_utils.cc",
"internal/ceres/compressed_row_jacobian_writer.cc",
"internal/ceres/compressed_row_sparse_matrix.cc",
"internal/ceres/conditioned_cost_function.cc",
"internal/ceres/conjugate_gradients_solver.cc",
"internal/ceres/corrector.cc",
"internal/ceres/covariance.cc",
"internal/ceres/covariance_impl.cc",
"internal/ceres/dense_normal_cholesky_solver.cc",
"internal/ceres/dense_qr_solver.cc",
"internal/ceres/dense_sparse_matrix.cc",
"internal/ceres/detect_structure.cc",
"internal/ceres/dogleg_strategy.cc",
"internal/ceres/dynamic_compressed_row_jacobian_writer.cc",
"internal/ceres/dynamic_compressed_row_sparse_matrix.cc",
"internal/ceres/dynamic_sparse_normal_cholesky_solver.cc",
"internal/ceres/eigensparse.cc",
"internal/ceres/evaluator.cc",
"internal/ceres/file.cc",
"internal/ceres/function_sample.cc",
"internal/ceres/gradient_checker.cc",
"internal/ceres/gradient_checking_cost_function.cc",
"internal/ceres/gradient_problem.cc",
"internal/ceres/gradient_problem_solver.cc",
"internal/ceres/implicit_schur_complement.cc",
"internal/ceres/inner_product_computer.cc",
"internal/ceres/is_close.cc",
"internal/ceres/iterative_schur_complement_solver.cc",
"internal/ceres/lapack.cc",
"internal/ceres/levenberg_marquardt_strategy.cc",
"internal/ceres/line_search.cc",
"internal/ceres/line_search_direction.cc",
"internal/ceres/line_search_minimizer.cc",
"internal/ceres/line_search_preprocessor.cc",
"internal/ceres/linear_least_squares_problems.cc",
"internal/ceres/linear_operator.cc",
"internal/ceres/linear_solver.cc",
"internal/ceres/local_parameterization.cc",
"internal/ceres/loss_function.cc",
"internal/ceres/low_rank_inverse_hessian.cc",
"internal/ceres/minimizer.cc",
"internal/ceres/normal_prior.cc",
"internal/ceres/parameter_block_ordering.cc",
"internal/ceres/partitioned_matrix_view.cc",
"internal/ceres/polynomial.cc",
"internal/ceres/preconditioner.cc",
"internal/ceres/preprocessor.cc",
"internal/ceres/problem.cc",
"internal/ceres/problem_impl.cc",
"internal/ceres/program.cc",
"internal/ceres/reorder_program.cc",
"internal/ceres/residual_block.cc",
"internal/ceres/residual_block_utils.cc",
"internal/ceres/schur_complement_solver.cc",
"internal/ceres/schur_eliminator.cc",
"internal/ceres/schur_jacobi_preconditioner.cc",
"internal/ceres/schur_templates.cc",
"internal/ceres/scratch_evaluate_preparer.cc",
"internal/ceres/single_linkage_clustering.cc",
"internal/ceres/solver.cc",
"internal/ceres/solver_utils.cc",
"internal/ceres/sparse_cholesky.cc",
"internal/ceres/sparse_matrix.cc",
"internal/ceres/sparse_normal_cholesky_solver.cc",
"internal/ceres/split.cc",
"internal/ceres/stringprintf.cc",
"internal/ceres/suitesparse.cc",
"internal/ceres/trust_region_minimizer.cc",
"internal/ceres/trust_region_preprocessor.cc",
"internal/ceres/trust_region_step_evaluator.cc",
"internal/ceres/trust_region_strategy.cc",
"internal/ceres/triplet_sparse_matrix.cc",
"internal/ceres/types.cc",
"internal/ceres/visibility_based_preconditioner.cc",
"internal/ceres/visibility.cc",
"internal/ceres/wall_time.cc",
] + glob([
"internal/ceres/generated/schur_eliminator_*.cc",
"internal/ceres/generated/partitioned_matrix_view_*.cc",
"config/**/*.h",
"internal/**/*.h",
]),
hdrs = glob([
"include/ceres/*.h",
"include/ceres/internal/*.h",
]),
copts = [
"-fopenmp",
"-Wno-sign-compare",
],
defines = CERES_DEFINES,
includes = [
"config",
"include",
"internal",
],
linkopts = [
"-lgomp",
],
linkstatic = 1,
visibility = ["//visibility:public"],
deps = [
"@com_google_glog//:glog",
"@org_tuxfamily_eigen//:eigen",
],
)

84
bazel/third_party/eigen.BUILD vendored Normal file
View File

@ -0,0 +1,84 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# Eigen is a C++ template library for linear algebra: vectors,
# matrices, and related algorithms.
licenses([
# Note: Eigen is an MPL2 library that includes GPL v3 and LGPL v2.1+ code.
# We've taken special care to not reference any restricted code.
"reciprocal", # MPL2
"notice", # Portions BSD
])
exports_files(["COPYING.MPL2"])
# License-restricted (i.e. not reciprocal or notice) files inside Eigen/...
EIGEN_RESTRICTED_FILES = [
"Eigen/src/OrderingMethods/Amd.h",
"Eigen/src/SparseCholesky/**",
]
# Notable transitive dependencies of restricted files inside Eigen/...
EIGEN_RESTRICTED_DEPS = [
"Eigen/Eigen",
"Eigen/IterativeLinearSolvers",
"Eigen/MetisSupport",
"Eigen/Sparse",
"Eigen/SparseCholesky",
"Eigen/SparseLU",
]
EIGEN_FILES = [
"Eigen/**",
"unsupported/Eigen/CXX11/**",
"unsupported/Eigen/FFT",
"unsupported/Eigen/KroneckerProduct",
"unsupported/Eigen/src/FFT/**",
"unsupported/Eigen/src/KroneckerProduct/**",
"unsupported/Eigen/MatrixFunctions",
"unsupported/Eigen/SpecialFunctions",
"unsupported/Eigen/src/MatrixFunctions/**",
"unsupported/Eigen/src/SpecialFunctions/**",
]
# List of files picked up by glob but actually part of another target.
EIGEN_EXCLUDE_FILES = [
"Eigen/src/Core/arch/AVX/PacketMathGoogleTest.cc",
]
# Files known to be under MPL2 license.
EIGEN_MPL2_HEADER_FILES = glob(
EIGEN_FILES,
exclude = EIGEN_EXCLUDE_FILES +
EIGEN_RESTRICTED_FILES +
EIGEN_RESTRICTED_DEPS + [
# Guarantees any file missed by excludes above will not compile.
"Eigen/src/Core/util/NonMPL2.h",
"Eigen/**/CMakeLists.txt",
],
)
cc_library(
name = "eigen",
hdrs = EIGEN_MPL2_HEADER_FILES,
defines = [
# This define (mostly) guarantees we don't link any problematic
# code. We use it, but we do not rely on it, as evidenced above.
"EIGEN_MPL2_ONLY",
],
includes = ["."],
visibility = ["//visibility:public"],
)

93
bazel/third_party/expat.BUILD vendored Normal file
View File

@ -0,0 +1,93 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# Expat is an XML parser library written in C.
licenses(["notice"]) # MIT-style
load("@com_github_antonovvk_bazel_rules//:config.bzl", "cc_fix_config")
cc_fix_config(
name = "expat_config_h",
cmake = True,
files = {"expat_config.h.cmake": "expat_config.h"},
values = {
"BYTEORDER": "1234",
"HAVE_BCOPY": "1",
"HAVE_DLFCN": "1",
"HAVE_FCNTL_H": "1",
"HAVE_GETPAGESIZE": "1",
"HAVE_INTTYPES_H": "1",
"HAVE_MEMMOVE": "1",
"HAVE_MEMORY_H": "1",
"HAVE_STDINT_H": "1",
"HAVE_STDLIB_H": "1",
"HAVE_STRINGS_H": "1",
"HAVE_STRING_H": "1",
"HAVE_SYS_PARAM_H": "1",
"HAVE_SYS_STAT_H": "1",
"HAVE_SYS_TYPES_H": "1",
"HAVE_UNISTD_H": "1",
"LT_OBJDIR": "\".libs/\"",
"PACKAGE_BUGREPORT": "expat-bugs@libexpat.org",
"PACKAGE_NAME": "expat",
"PACKAGE_STRING": "expat 2.2.4",
"PACKAGE_TARNAME": "expat",
"PACKAGE_URL": "",
"PACKAGE_VERSION": "2.2.4",
"STDC_HEADERS": "1",
"XML_CONTEXT_BYTES": "1024",
"XML_DTD": "1",
"XML_NS": "1",
},
)
# TODO(rodrigoq): review if we're exposing more headers than users need.
cc_library(
name = "expat",
srcs = [
"lib/xmlparse.c",
"lib/xmlrole.c",
"lib/xmltok.c",
],
hdrs = [
"expat_config.h",
"lib/ascii.h",
"lib/asciitab.h",
"lib/expat.h",
"lib/expat_external.h",
"lib/iasciitab.h",
"lib/internal.h",
"lib/latin1tab.h",
"lib/nametab.h",
"lib/siphash.h",
"lib/utf8tab.h",
"lib/xmlrole.h",
"lib/xmltok.h",
"lib/xmltok_impl.c",
"lib/xmltok_impl.h",
"lib/xmltok_ns.c",
],
copts = [
"-DHAVE_EXPAT_CONFIG_H",
"-DXML_DEV_URANDOM",
],
defines = ["XML_STATIC"],
includes = [
".",
"lib",
],
visibility = ["//visibility:public"],
)

View File

@ -0,0 +1,25 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Files required for building Fontconfig with Bazel.
licenses(["notice"])
exports_files(
[
"fontconfig.BUILD",
"config.h",
],
visibility = ["//visibility:public"],
)

372
bazel/third_party/fontconfig/config.h vendored Normal file
View File

@ -0,0 +1,372 @@
/*
* Copyright 2018 The Cartographer Authors
*
* 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.
*/
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* The normal alignment of `double', in bytes. */
#define ALIGNOF_DOUBLE 8
/* The normal alignment of `void *', in bytes. */
#define ALIGNOF_VOID_P 8
/* Use libxml2 instead of Expat */
/* #undef ENABLE_LIBXML2 */
/* Additional font directories */
#define FC_ADD_FONTS "yes"
/* Architecture prefix to use for cache file names */
#define FC_ARCHITECTURE "elf64-x86-64"
/* System font directory */
#define FC_DEFAULT_FONTS "/usr/share/fonts"
/* The type of len parameter of the gperf hash/lookup function */
#define FC_GPERF_SIZE_T unsigned int
/* Define to nothing if C supports flexible array members, and to 1 if it does
not. That way, with a declaration like `struct s { int n; double
d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99
compilers. When computing the size of such an object, don't use 'sizeof
(struct s)' as it overestimates the size. Use 'offsetof (struct s, d)'
instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with
MSVC and with C++ compilers. */
#define FLEXIBLE_ARRAY_MEMBER /**/
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#define HAVE_DIRENT_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
/* #undef HAVE_DOPRNT */
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define to 1 if you have the `fstatfs' function. */
#define HAVE_FSTATFS 1
/* Define to 1 if you have the `fstatvfs' function. */
#define HAVE_FSTATVFS 1
/* FT_Bitmap_Size structure includes y_ppem field */
#define HAVE_FT_BITMAP_SIZE_Y_PPEM 1
/* Define to 1 if you have the `FT_Get_BDF_Property' function. */
#define HAVE_FT_GET_BDF_PROPERTY 1
/* Define to 1 if you have the `FT_Get_Next_Char' function. */
#define HAVE_FT_GET_NEXT_CHAR 1
/* Define to 1 if you have the `FT_Get_PS_Font_Info' function. */
#define HAVE_FT_GET_PS_FONT_INFO 1
/* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */
#define HAVE_FT_GET_X11_FONT_FORMAT 1
/* Define to 1 if you have the `FT_Has_PS_Glyph_Names' function. */
#define HAVE_FT_HAS_PS_GLYPH_NAMES 1
/* Define to 1 if you have the `FT_Select_Size' function. */
#define HAVE_FT_SELECT_SIZE 1
/* Define to 1 if you have the `getexecname' function. */
/* #undef HAVE_GETEXECNAME */
/* Define to 1 if you have the `getopt' function. */
#define HAVE_GETOPT 1
/* Define to 1 if you have the `getopt_long' function. */
#define HAVE_GETOPT_LONG 1
/* Define to 1 if you have the `getpagesize' function. */
#define HAVE_GETPAGESIZE 1
/* Define to 1 if you have the `getprogname' function. */
/* #undef HAVE_GETPROGNAME */
/* Have Intel __sync_* atomic primitives */
#define HAVE_INTEL_ATOMIC_PRIMITIVES 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `link' function. */
#define HAVE_LINK 1
/* Define to 1 if you have the `lrand48' function. */
#define HAVE_LRAND48 1
/* Define to 1 if you have the `lstat' function. */
#define HAVE_LSTAT 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkdtemp' function. */
#define HAVE_MKDTEMP 1
/* Define to 1 if you have the `mkostemp' function. */
#define HAVE_MKOSTEMP 1
/* Define to 1 if you have the `mkstemp' function. */
#define HAVE_MKSTEMP 1
/* Define to 1 if you have a working `mmap' system call. */
#define HAVE_MMAP 1
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the 'posix_fadvise' function. */
#define HAVE_POSIX_FADVISE 1
/* Have POSIX threads */
#define HAVE_PTHREAD 1
/* Have PTHREAD_PRIO_INHERIT. */
#define HAVE_PTHREAD_PRIO_INHERIT 1
/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND 1
/* Define to 1 if you have the `random' function. */
#define HAVE_RANDOM 1
/* Define to 1 if you have the `random_r' function. */
#define HAVE_RANDOM_R 1
/* Define to 1 if you have the `rand_r' function. */
#define HAVE_RAND_R 1
/* Define to 1 if you have the `readlink' function. */
#define HAVE_READLINK 1
/* Define to 1 if you have the <sched.h> header file. */
/* #undef HAVE_SCHED_H */
/* Have sched_yield */
/* #undef HAVE_SCHED_YIELD */
/* Have Solaris __machine_*_barrier and atomic_* operations */
/* #undef HAVE_SOLARIS_ATOMIC_OPS */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if `d_type' is a member of `struct dirent'. */
#define HAVE_STRUCT_DIRENT_D_TYPE 1
/* Define to 1 if `f_flags' is a member of `struct statfs'. */
#define HAVE_STRUCT_STATFS_F_FLAGS 1
/* Define to 1 if `f_fstypename' is a member of `struct statfs'. */
/* #undef HAVE_STRUCT_STATFS_F_FSTYPENAME */
/* Define to 1 if `f_basetype' is a member of `struct statvfs'. */
/* #undef HAVE_STRUCT_STATVFS_F_BASETYPE */
/* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */
/* #undef HAVE_STRUCT_STATVFS_F_FSTYPENAME */
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
/* Define to 1 if you have the <sys/mount.h> header file. */
#define HAVE_SYS_MOUNT_H 1
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1
/* Define to 1 if you have the <sys/statfs.h> header file. */
#define HAVE_SYS_STATFS_H 1
/* Define to 1 if you have the <sys/statvfs.h> header file. */
#define HAVE_SYS_STATVFS_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/vfs.h> header file. */
#define HAVE_SYS_VFS_H 1
/* Define to 1 if `usLowerOpticalPointSize' is a member of `TT_OS2'. */
#define HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE 1
/* Define to 1 if `usUpperOpticalPointSize' is a member of `TT_OS2'. */
#define HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if you have the `vprintf' function. */
#define HAVE_VPRINTF 1
/* Can use #warning in C files */
#define HAVE_WARNING_CPP_DIRECTIVE 1
/* Use xmlparse.h instead of expat.h */
/* #undef HAVE_XMLPARSE_H */
/* Define to 1 if you have the `XML_SetDoctypeDeclHandler' function. */
#define HAVE_XML_SETDOCTYPEDECLHANDLER 1
/* Define to 1 if you have the `_mktemp_s' function. */
/* #undef HAVE__MKTEMP_S */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "fontconfig"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT \
"https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig"
/* Define to the full name of this package. */
#define PACKAGE_NAME "fontconfig"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "fontconfig 2.11.94"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "fontconfig"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "2.11.94"
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
/* #undef PTHREAD_CREATE_JOINABLE */
/* The size of `char', as computed by sizeof. */
/* #undef SIZEOF_CHAR */
/* The size of `int', as computed by sizeof. */
/* #undef SIZEOF_INT */
/* The size of `long', as computed by sizeof. */
/* #undef SIZEOF_LONG */
/* The size of `short', as computed by sizeof. */
/* #undef SIZEOF_SHORT */
/* The size of `void*', as computed by sizeof. */
/* #undef SIZEOF_VOIDP */
/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 8
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Use iconv. */
#define USE_ICONV 0
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
#define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
#define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
#define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
#define __EXTENSIONS__ 1
#endif
/* Version number of package */
#define VERSION "2.11.94"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
#if defined __BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
#endif
#else
#ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
#endif
#endif
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
#define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to 1 if on MINIX. */
/* #undef _MINIX */
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
/* #undef _POSIX_1_SOURCE */
/* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif
/* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */

View File

@ -0,0 +1,130 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# Fontconfig is a library for font customization and configuration.
licenses(["notice"]) # BSD-like
genrule(
name = "config_h",
srcs = ["@com_github_googlecartographer_cartographer//bazel/third_party/fontconfig:config.h"],
outs = ["fontconfig_internal/config.h"],
cmd = "cp $< $@",
)
genrule(
name = "fcalias",
srcs = [
"fontconfig/fontconfig.h",
"src/fcdeprecate.h",
"fontconfig/fcprivate.h",
] + glob(["src/*.c"]),
outs = [
"src/fcalias.h",
"src/fcaliastail.h",
],
cmd = """./$(location src/makealias) \
$$(dirname $(location src/makealias)) \
$(OUTS) \
$(location fontconfig/fontconfig.h) \
$(location src/fcdeprecate.h) \
$(location fontconfig/fcprivate.h)""",
tools = ["src/makealias"],
)
genrule(
name = "fcftalias",
srcs = ["fontconfig/fcfreetype.h"] + glob(["src/*.c"]),
outs = [
"src/fcftalias.h",
"src/fcftaliastail.h",
],
cmd = """./$(location src/makealias) \
$$(dirname $(location src/makealias)) \
$(OUTS) \
$(location fontconfig/fcfreetype.h)""",
tools = ["src/makealias"],
)
cc_library(
name = "fontconfig",
srcs = [
"fc-blanks/fcblanks.h",
"fc-case/fccase.h",
"fc-glyphname/fcglyphname.h",
"fc-lang/fclang.h",
"fontconfig/fcfreetype.h",
"fontconfig/fcprivate.h",
"src/fcarch.h",
"src/fcatomic.c",
"src/fcatomic.h",
"src/fcblanks.c",
"src/fccache.c",
"src/fccfg.c",
"src/fccharset.c",
"src/fccompat.c",
"src/fcdbg.c",
"src/fcdefault.c",
"src/fcdeprecate.h",
"src/fcdir.c",
"src/fcformat.c",
"src/fcfreetype.c",
"src/fcfs.c",
"src/fcftint.h",
"src/fcinit.c",
"src/fcint.h",
"src/fclang.c",
"src/fclist.c",
"src/fcmatch.c",
"src/fcmatrix.c",
"src/fcmutex.h",
"src/fcname.c",
"src/fcobjs.c",
"src/fcobjs.h",
"src/fcobjshash.h",
"src/fcpat.c",
"src/fcrange.c",
"src/fcserialize.c",
"src/fcstat.c",
"src/fcstdint.h",
"src/fcstr.c",
"src/fcweight.c",
"src/fcxml.c",
"src/ftglue.c",
"src/ftglue.h",
":config_h",
":fcalias",
":fcftalias",
],
hdrs = [
"fontconfig/fontconfig.h",
],
copts = [
"-Iexternal/org_freedesktop_fontconfig/src",
"-I$(GENDIR)/external/org_freedesktop_fontconfig/src",
"-I$(GENDIR)/external/org_freedesktop_fontconfig/fontconfig_internal",
"-DFC_CACHEDIR='\"/var/cache/fontconfig\"'",
"-DFONTCONFIG_PATH='\"/etc/fonts\"'",
"-DHAVE_CONFIG_H",
"-Wno-strict-aliasing",
],
includes = ["."],
visibility = ["//visibility:public"],
deps = [
"@com_github_libexpat_libexpat//:expat",
"@net_zlib_zlib//:zlib",
"@org_freetype_freetype2//:freetype2",
],
)

262
bazel/third_party/freetype2.BUILD vendored Normal file
View File

@ -0,0 +1,262 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# A free font library.
licenses(["notice"]) # BSD-style
cc_library(
name = "freetype2",
srcs = [
"builds/unix/ftsystem.c",
"src/autofit/autofit.c",
"src/base/ftbase.c",
"src/base/ftbbox.c",
"src/base/ftbdf.c",
"src/base/ftbitmap.c",
"src/base/ftcid.c",
"src/base/ftdebug.c",
"src/base/ftfntfmt.c",
"src/base/ftfstype.c",
"src/base/ftgasp.c",
"src/base/ftglyph.c",
"src/base/ftgxval.c",
"src/base/ftinit.c",
"src/base/ftlcdfil.c",
"src/base/ftmm.c",
"src/base/ftotval.c",
"src/base/ftpatent.c",
"src/base/ftpfr.c",
"src/base/ftstroke.c",
"src/base/ftsynth.c",
"src/base/fttype1.c",
"src/base/ftwinfnt.c",
"src/bdf/bdf.c",
"src/bzip2/ftbzip2.c",
"src/cache/ftcache.c",
"src/cff/cff.c",
"src/cid/type1cid.c",
"src/gxvalid/gxvalid.c",
"src/gzip/ftgzip.c",
"src/lzw/ftlzw.c",
"src/otvalid/otvalid.c",
"src/pcf/pcf.c",
"src/pfr/pfr.c",
"src/psaux/psaux.c",
"src/pshinter/pshinter.c",
"src/psnames/psnames.c",
"src/raster/raster.c",
"src/sfnt/sfnt.c",
"src/smooth/smooth.c",
"src/truetype/truetype.c",
"src/type1/type1.c",
"src/type42/type42.c",
"src/winfonts/winfnt.c",
] + glob([
"src/**/*.h",
"builds/unix/*.h",
"include/freetype/internal/**/*.h",
]),
hdrs = glob([
"include/freetype/*.h",
"include/freetype/config/*.h",
"include/ft2build.h",
]) + [
"src/autofit/afangles.c",
"src/autofit/afblue.c",
"src/autofit/afcjk.c",
"src/autofit/afdummy.c",
"src/autofit/afglobal.c",
"src/autofit/afhints.c",
"src/autofit/afindic.c",
"src/autofit/aflatin.c",
"src/autofit/aflatin2.c",
"src/autofit/afloader.c",
"src/autofit/afmodule.c",
"src/autofit/afpic.c",
"src/autofit/afranges.c",
"src/autofit/afwarp.c",
"src/autofit/afshaper.c",
"src/base/basepic.c",
"src/base/ftadvanc.c",
"src/base/ftapi.c",
"src/base/ftcalc.c",
"src/base/ftdbgmem.c",
"src/base/ftgloadr.c",
"src/base/fthash.c",
"src/base/ftmac.c",
"src/base/ftobjs.c",
"src/base/ftoutln.c",
"src/base/ftpic.c",
"src/base/ftrfork.c",
"src/base/ftsnames.c",
"src/base/ftstream.c",
"src/base/ftsystem.c",
"src/base/fttrigon.c",
"src/base/ftutil.c",
"src/base/md5.c",
"src/bdf/bdfdrivr.c",
"src/bdf/bdflib.c",
"src/cache/ftcbasic.c",
"src/cache/ftccache.c",
"src/cache/ftccmap.c",
"src/cache/ftcglyph.c",
"src/cache/ftcimage.c",
"src/cache/ftcmanag.c",
"src/cache/ftcmru.c",
"src/cache/ftcsbits.c",
"src/cff/cf2arrst.c",
"src/cff/cf2blues.c",
"src/cff/cf2error.c",
"src/cff/cf2font.c",
"src/cff/cf2ft.c",
"src/cff/cf2hints.c",
"src/cff/cf2intrp.c",
"src/cff/cf2read.c",
"src/cff/cf2stack.c",
"src/cff/cffcmap.c",
"src/cff/cffdrivr.c",
"src/cff/cffgload.c",
"src/cff/cffload.c",
"src/cff/cffobjs.c",
"src/cff/cffparse.c",
"src/cff/cffpic.c",
"src/cid/cidgload.c",
"src/cid/cidload.c",
"src/cid/cidobjs.c",
"src/cid/cidparse.c",
"src/cid/cidriver.c",
"src/gxvalid/gxvalid.c",
"src/gxvalid/gxvbsln.c",
"src/gxvalid/gxvcommn.c",
"src/gxvalid/gxvfeat.c",
"src/gxvalid/gxvfgen.c",
"src/gxvalid/gxvjust.c",
"src/gxvalid/gxvkern.c",
"src/gxvalid/gxvlcar.c",
"src/gxvalid/gxvmod.c",
"src/gxvalid/gxvmort.c",
"src/gxvalid/gxvmort0.c",
"src/gxvalid/gxvmort1.c",
"src/gxvalid/gxvmort2.c",
"src/gxvalid/gxvmort4.c",
"src/gxvalid/gxvmort5.c",
"src/gxvalid/gxvmorx.c",
"src/gxvalid/gxvmorx0.c",
"src/gxvalid/gxvmorx1.c",
"src/gxvalid/gxvmorx2.c",
"src/gxvalid/gxvmorx4.c",
"src/gxvalid/gxvmorx5.c",
"src/gxvalid/gxvopbd.c",
"src/gxvalid/gxvprop.c",
"src/gxvalid/gxvtrak.c",
"src/gzip/adler32.c",
"src/gzip/infblock.c",
"src/gzip/infcodes.c",
"src/gzip/inflate.c",
"src/gzip/inftrees.c",
"src/gzip/infutil.c",
"src/gzip/zutil.c",
"src/lzw/ftzopen.c",
"src/otvalid/otvalid.c",
"src/otvalid/otvbase.c",
"src/otvalid/otvcommn.c",
"src/otvalid/otvgdef.c",
"src/otvalid/otvgpos.c",
"src/otvalid/otvgsub.c",
"src/otvalid/otvjstf.c",
"src/otvalid/otvmath.c",
"src/otvalid/otvmod.c",
"src/pcf/pcfdrivr.c",
"src/pcf/pcfread.c",
"src/pcf/pcfutil.c",
"src/pfr/pfrcmap.c",
"src/pfr/pfrdrivr.c",
"src/pfr/pfrgload.c",
"src/pfr/pfrload.c",
"src/pfr/pfrobjs.c",
"src/pfr/pfrsbit.c",
"src/psaux/afmparse.c",
"src/psaux/psauxmod.c",
"src/psaux/psconv.c",
"src/psaux/psobjs.c",
"src/psaux/t1cmap.c",
"src/psaux/t1decode.c",
"src/pshinter/pshalgo.c",
"src/pshinter/pshglob.c",
"src/pshinter/pshmod.c",
"src/pshinter/pshpic.c",
"src/pshinter/pshrec.c",
"src/psnames/psmodule.c",
"src/psnames/pspic.c",
"src/raster/ftraster.c",
"src/raster/ftrend1.c",
"src/raster/rastpic.c",
"src/sfnt/pngshim.c",
"src/sfnt/sfdriver.c",
"src/sfnt/sfntpic.c",
"src/sfnt/sfobjs.c",
"src/sfnt/ttbdf.c",
"src/sfnt/ttcmap.c",
"src/sfnt/ttkern.c",
"src/sfnt/ttload.c",
"src/sfnt/ttmtx.c",
"src/sfnt/ttpost.c",
"src/sfnt/ttsbit.c",
"src/smooth/ftgrays.c",
"src/smooth/ftsmooth.c",
"src/smooth/ftspic.c",
"src/tools/ftrandom/ftrandom.c",
"src/tools/test_afm.c",
"src/tools/test_bbox.c",
"src/tools/test_trig.c",
"src/truetype/ttdriver.c",
"src/truetype/ttgload.c",
"src/truetype/ttgxvar.c",
"src/truetype/ttinterp.c",
"src/truetype/ttobjs.c",
"src/truetype/ttpic.c",
"src/truetype/ttpload.c",
"src/truetype/ttsubpix.c",
"src/type1/t1afm.c",
"src/type1/t1driver.c",
"src/type1/t1gload.c",
"src/type1/t1load.c",
"src/type1/t1objs.c",
"src/type1/t1parse.c",
"src/type42/t42drivr.c",
"src/type42/t42objs.c",
"src/type42/t42parse.c",
],
copts = [
"-Wno-covered-switch-default",
"-DFT_CONFIG_OPTION_SYSTEM_ZLIB",
"-DFT_CONFIG_CONFIG_H=<ftconfig.h>",
"-DFT_CONFIG_OPTION_USE_PNG",
"-DFT2_BUILD_LIBRARY",
"-DFT_CONFIG_MODULES_H=<ftmodule.h>",
"-DHAVE_UNISTD_H=1",
"-DHAVE_FCNTL_H=1",
"-DHAVE_STDINT_H=1",
"-Iexternal/org_freetype_freetype2/builds/unix",
"-Iexternal/org_freetype_freetype2/include/freetype/config",
],
includes = ["include"],
visibility = ["//visibility:public"],
deps = [
"@net_zlib_zlib//:zlib",
"@org_libpng_libpng//:libpng",
],
)

124
bazel/third_party/gd.BUILD vendored Normal file
View File

@ -0,0 +1,124 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# GD is a library for the dynamic creation of images.
load("@com_github_antonovvk_bazel_rules//:config.bzl", "cc_fix_config")
licenses(["notice"]) # simple notice-style license
cc_fix_config(
name = "config_h",
cmake = True,
files = {"src/config.h.cmake": "gd_internal/config.h"},
values = {
"HAVE_DIRENT_H": "1",
"HAVE_DLFCN_H": "1",
"HAVE_ERRNO_H": "1",
"HAVE_FT2BUILD_H": "1",
"HAVE_ICONV": "1",
"HAVE_ICONV_H": "1",
"HAVE_ICONV_T_DEF": "1",
"HAVE_INTTYPES_H": "1",
"HAVE_LIBFREETYPE": "1",
"HAVE_LIBJPEG": "1",
"HAVE_LIBM": "1",
"HAVE_LIBPNG": "1",
"HAVE_LIBZ": "1",
"HAVE_LIMITS_H": "1",
"HAVE_MEMORY_H": "1",
"HAVE_PTHREAD": "1",
"HAVE_PTHREAD_PRIO_INHERIT": "1",
"HAVE_STDDEF_H": "1",
"HAVE_STDINT_H": "1",
"HAVE_STDLIB_H": "1",
"HAVE_STRINGS_H": "1",
"HAVE_STRING_H": "1",
"HAVE_SYS_STAT_H": "1",
"HAVE_SYS_TYPES_H": "1",
"HAVE_UNISTD_H": "1",
"HAVE_VISIBILITY": "1",
"ICONV_CONST": "",
"LT_OBJDIR": "\".libs/\"",
"PACKAGE": "libgd",
"PACKAGE_BUGREPORT": "https://bitbucket.org/libgd/gd-libgd/issues",
"PACKAGE_NAME": "GD",
"PACKAGE_STRING": "GD 2.2.4",
"PACKAGE_TARNAME": "libgd",
"PACKAGE_URL": "http://lib.gd",
"PACKAGE_VERSION": "2.2.4",
"STDC_HEADERS": "1",
"VERSION": "2.2.4",
},
)
cc_library(
name = "gd",
srcs = [
"src/gd.c",
"src/gd_color.c",
"src/gd_gd.c",
"src/gd_gd2.c",
"src/gd_gif_in.c",
"src/gd_gif_out.c",
"src/gd_io.c",
"src/gd_io_dp.c",
"src/gd_io_file.c",
"src/gd_io_ss.c",
"src/gd_jpeg.c",
"src/gd_nnquant.c",
"src/gd_png.c",
"src/gd_security.c",
"src/gd_ss.c",
"src/gd_topal.c",
"src/gd_wbmp.c",
"src/gd_xbm.c",
"src/gdcache.c",
"src/gdfontg.c",
"src/gdfontl.c",
"src/gdfontmb.c",
"src/gdfonts.c",
"src/gdfontt.c",
"src/gdft.c",
"src/gdfx.c",
"src/gdhelpers.c",
"src/gdkanji.c",
"src/gdtables.c",
"src/gdxpm.c",
"src/wbmp.c",
"gd_internal/config.h",
] + glob([
"src/*.h",
]),
hdrs = [
"src/gd.h",
"src/gdhelpers.h",
],
copts = [
"-I$(GENDIR)/external/org_libgd_libgd/gd_internal",
"-DFC_CACHEDIR='\"/var/cache/fontconfig\"'",
"-DFONTCONFIG_PATH='\"/etc/fonts\"'",
"-DHAVE_CONFIG_H",
],
includes = ["src"],
linkopts = ["-lm"],
visibility = ["//visibility:public"],
deps = [
"@libjpeg//:jpeg",
"@net_zlib_zlib//:zlib",
"@org_freetype_freetype2//:freetype2",
"@org_libpng_libpng//:libpng",
],
)

103
bazel/third_party/libjpeg.BUILD vendored Normal file
View File

@ -0,0 +1,103 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# The Independent JPEG Group's JPEG runtime library.
licenses(["notice"]) # custom notice-style license, see LICENSE
cc_library(
name = "jpeg",
srcs = [
"cderror.h",
"cdjpeg.h",
"jaricom.c",
"jcapimin.c",
"jcapistd.c",
"jcarith.c",
"jccoefct.c",
"jccolor.c",
"jcdctmgr.c",
"jchuff.c",
"jcinit.c",
"jcmainct.c",
"jcmarker.c",
"jcmaster.c",
"jcomapi.c",
"jconfig.h",
"jcparam.c",
"jcprepct.c",
"jcsample.c",
"jctrans.c",
"jdapimin.c",
"jdapistd.c",
"jdarith.c",
"jdatadst.c",
"jdatasrc.c",
"jdcoefct.c",
"jdcolor.c",
"jdct.h",
"jddctmgr.c",
"jdhuff.c",
"jdinput.c",
"jdmainct.c",
"jdmarker.c",
"jdmaster.c",
"jdmerge.c",
"jdpostct.c",
"jdsample.c",
"jdtrans.c",
"jerror.c",
"jfdctflt.c",
"jfdctfst.c",
"jfdctint.c",
"jidctflt.c",
"jidctfst.c",
"jidctint.c",
"jinclude.h",
"jmemmgr.c",
"jmemnobs.c",
"jmemsys.h",
"jmorecfg.h",
"jquant1.c",
"jquant2.c",
"jutils.c",
"jversion.h",
"transupp.h",
],
hdrs = [
"jerror.h",
"jpegint.h",
"jpeglib.h",
],
includes = ["."],
visibility = ["//visibility:public"],
)
genrule(
name = "configure",
outs = ["jconfig.h"],
cmd = "cat <<EOF >$@\n" +
"#define HAVE_PROTOTYPES 1\n" +
"#define HAVE_UNSIGNED_CHAR 1\n" +
"#define HAVE_UNSIGNED_SHORT 1\n" +
"#define HAVE_STDDEF_H 1\n" +
"#define HAVE_STDLIB_H 1\n" +
"#ifdef WIN32\n" +
"#define INLINE __inline\n" +
"#else\n" +
"#define INLINE __inline__\n" +
"#endif\n" +
"EOF\n",
)

47
bazel/third_party/libpng.BUILD vendored Normal file
View File

@ -0,0 +1,47 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# libpng is the official PNG reference library.
licenses(["notice"]) # BSD/MIT-like license
cc_library(
name = "libpng",
srcs = [
"png.c",
"pngerror.c",
"pngget.c",
"pngmem.c",
"pngpread.c",
"pngread.c",
"pngrio.c",
"pngrtran.c",
"pngrutil.c",
"pngset.c",
"pngtrans.c",
"pngwio.c",
"pngwrite.c",
"pngwtran.c",
"pngwutil.c",
],
hdrs = [
"png.h",
"pngconf.h",
],
includes = ["."],
linkopts = ["-lm"],
visibility = ["//visibility:public"],
deps = ["@net_zlib_zlib//:zlib"],
)

109
bazel/third_party/lua.BUILD vendored Normal file
View File

@ -0,0 +1,109 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# Lua language interpreter.
package(
default_visibility = ["//visibility:public"],
)
licenses(["notice"]) # MIT
cc_library(
name = "lua_includes",
hdrs = [
"src/lauxlib.h",
"src/lua.h",
"src/lua.hpp",
"src/luaconf.h",
"src/lualib.h",
],
includes = ["src"],
)
cc_library(
name = "lua",
srcs = [
# Core language
"src/lapi.c",
"src/lapi.h",
"src/lcode.c",
"src/lcode.h",
"src/lctype.c",
"src/lctype.h",
"src/ldebug.c",
"src/ldebug.h",
"src/ldo.c",
"src/ldo.h",
"src/ldump.c",
"src/lfunc.c",
"src/lfunc.h",
"src/lgc.c",
"src/lgc.h",
"src/llex.c",
"src/llex.h",
"src/llimits.h",
"src/lmem.c",
"src/lmem.h",
"src/lobject.c",
"src/lobject.h",
"src/lopcodes.c",
"src/lopcodes.h",
"src/lparser.c",
"src/lparser.h",
"src/lstate.c",
"src/lstate.h",
"src/lstring.c",
"src/lstring.h",
"src/ltable.c",
"src/ltable.h",
"src/ltm.c",
"src/ltm.h",
"src/lundump.c",
"src/lundump.h",
"src/lvm.c",
"src/lvm.h",
"src/lzio.c",
# Standard libraries
"src/lauxlib.c",
"src/lbaselib.c",
"src/lbitlib.c",
"src/lcorolib.c",
"src/ldblib.c",
"src/linit.c",
"src/liolib.c",
"src/lmathlib.c",
"src/loadlib.c",
"src/loslib.c",
"src/lstrlib.c",
"src/ltablib.c",
"src/lzio.h",
],
hdrs = [
"src/lauxlib.h",
"src/lua.h",
"src/lua.hpp",
"src/luaconf.h",
"src/lualib.h",
],
copts = ["-w"],
defines = ["LUA_USE_LINUX"],
includes = ["src"],
linkopts = [
"-lm",
"-ldl",
],
)

25
bazel/third_party/pixman/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,25 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Files required for building Pixman with Bazel.
licenses(["notice"])
exports_files(
[
"pixman.BUILD",
"config.h",
],
visibility = ["//visibility:public"],
)

193
bazel/third_party/pixman/config.h vendored Normal file
View File

@ -0,0 +1,193 @@
/*
* Copyright 2018 The Cartographer Authors
*
* 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.
*/
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Whether we have alarm() */
#define HAVE_ALARM 1
/* Whether the compiler supports __builtin_clz */
#define HAVE_BUILTIN_CLZ /**/
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Whether we have feenableexcept() */
#define HAVE_FEENABLEEXCEPT 1
/* Define to 1 if we have <fenv.h> */
#define HAVE_FENV_H 1
/* Whether the tool chain supports __float128 */
#define HAVE_FLOAT128 /**/
/* Define to 1 if you have the `getisax' function. */
/* #undef HAVE_GETISAX */
/* Whether we have getpagesize() */
#define HAVE_GETPAGESIZE 1
/* Whether we have gettimeofday() */
#define HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `pixman-1' library (-lpixman-1). */
/* #undef HAVE_LIBPIXMAN_1 */
/* Whether we have libpng */
#define HAVE_LIBPNG 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Whether we have mmap() */
#define HAVE_MMAP 1
/* Whether we have mprotect() */
#define HAVE_MPROTECT 1
/* Whether we have posix_memalign() */
#define HAVE_POSIX_MEMALIGN 1
/* Whether pthreads is supported */
#define HAVE_PTHREADS /**/
/* Whether we have sigaction() */
#define HAVE_SIGACTION 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if we have <sys/mman.h> */
#define HAVE_SYS_MMAN_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "pixman"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "pixman@lists.freedesktop.org"
/* Define to the full name of this package. */
#define PACKAGE_NAME "pixman"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "pixman 0.34.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "pixman"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "0.34.0"
/* enable TIMER_BEGIN/TIMER_END macros */
/* #undef PIXMAN_TIMERS */
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* The compiler supported TLS storage class */
#define TLS __thread
/* Whether the tool chain supports __attribute__((constructor)) */
#define TOOLCHAIN_SUPPORTS_ATTRIBUTE_CONSTRUCTOR /**/
/* use ARM IWMMXT compiler intrinsics */
/* #undef USE_ARM_IWMMXT */
/* use ARM NEON assembly optimizations */
/* #undef USE_ARM_NEON */
/* use ARM SIMD assembly optimizations */
/* #undef USE_ARM_SIMD */
/* use GNU-style inline assembler */
#define USE_GCC_INLINE_ASM 1
/* use Loongson Multimedia Instructions */
/* #undef USE_LOONGSON_MMI */
/* use MIPS DSPr2 assembly optimizations */
/* #undef USE_MIPS_DSPR2 */
/* use OpenMP in the test suite */
#define USE_OPENMP 1
/* use SSE2 compiler intrinsics */
/* #undef USE_SSE2 */
/* use SSSE3 compiler intrinsics */
/* #undef USE_SSSE3 */
/* use VMX compiler intrinsics */
/* #undef USE_VMX */
/* use x86 MMX compiler intrinsics */
/* #undef USE_X86_MMX */
/* Version number of package */
#define VERSION "0.34.0"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
#if defined __BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
#endif
#else
#ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
#endif
#endif
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif
/* Define to sqrt if you do not have the `sqrtf' function. */
/* #undef sqrtf */

87
bazel/third_party/pixman/pixman.BUILD vendored Normal file
View File

@ -0,0 +1,87 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Description:
# pixman is a library that provides low-level pixel manipulation features.
licenses(["notice"]) # X11/MIT
genrule(
name = "config_h",
srcs = ["@com_github_googlecartographer_cartographer//bazel/third_party/pixman:config.h"],
outs = ["pixman_internal/config.h"],
cmd = "cp $< $@",
)
COMMON_SRCS = [
"pixman/pixman.c",
"pixman/pixman-access.c",
"pixman/pixman-access-accessors.c",
"pixman/pixman-arm.c",
"pixman/pixman-bits-image.c",
"pixman/pixman-combine-float.c",
"pixman/pixman-combine32.c",
"pixman/pixman-conical-gradient.c",
"pixman/pixman-edge-accessors.c",
"pixman/pixman-edge.c",
"pixman/pixman-fast-path.c",
"pixman/pixman-filter.c",
"pixman/pixman-general.c",
"pixman/pixman-glyph.c",
"pixman/pixman-gradient-walker.c",
"pixman/pixman-image.c",
"pixman/pixman-implementation.c",
"pixman/pixman-linear-gradient.c",
"pixman/pixman-matrix.c",
"pixman/pixman-mips.c",
"pixman/pixman-noop.c",
"pixman/pixman-ppc.c",
"pixman/pixman-radial-gradient.c",
"pixman/pixman-region16.c",
"pixman/pixman-region32.c",
"pixman/pixman-solid-fill.c",
"pixman/pixman-timer.c",
"pixman/pixman-trap.c",
"pixman/pixman-utils.c",
"pixman/pixman-x86.c",
]
# TODO(rodrigoq): use MMX extensions where possible
cc_library(
name = "pixman",
srcs = COMMON_SRCS + [
"pixman/pixman-accessor.h",
"pixman/pixman-combine32.h",
"pixman/pixman-compiler.h",
"pixman/pixman-edge-imp.h",
"pixman/pixman-inlines.h",
"pixman/pixman-private.h",
"pixman/pixman-version.h",
"pixman/pixman.h",
"pixman_internal/config.h",
],
hdrs = [
"pixman/pixman-access.c",
"pixman/pixman-edge.c",
"pixman/pixman-region.c",
],
copts = [
"-Wno-unused-const-variable",
"-Wno-unused-local-typedefs",
"-DHAVE_CONFIG_H",
"-I$(GENDIR)/external/org_cairographics_pixman/pixman_internal",
],
includes = ["pixman"],
visibility = ["//visibility:public"],
)

50
bazel/third_party/zlib.BUILD vendored Normal file
View File

@ -0,0 +1,50 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
package(default_visibility = ["//visibility:public"])
licenses(["notice"]) # BSD/MIT-like license (for zlib)
cc_library(
name = "zlib",
srcs = [
"adler32.c",
"compress.c",
"crc32.c",
"crc32.h",
"deflate.c",
"deflate.h",
"gzclose.c",
"gzguts.h",
"gzlib.c",
"gzread.c",
"gzwrite.c",
"infback.c",
"inffast.c",
"inffast.h",
"inffixed.h",
"inflate.c",
"inflate.h",
"inftrees.c",
"inftrees.h",
"trees.c",
"trees.h",
"uncompr.c",
"zconf.h",
"zutil.c",
"zutil.h",
],
hdrs = ["zlib.h"],
includes = ["."],
)

96
cartographer/BUILD.bazel Normal file
View File

@ -0,0 +1,96 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Top-level proto and C++ targets for Cartographer.
load("@com_github_antonovvk_bazel_rules//:config.bzl", "cc_fix_config")
package(
default_visibility = ["//visibility:public"],
)
licenses(["notice"]) # Apache 2.0
proto_library(
name = "protos",
srcs = glob([
"**/*.proto",
]),
deps = [
"@com_google_protobuf//:empty_proto",
],
)
cc_proto_library(
name = "cc_protos",
deps = [":protos"],
)
cc_fix_config(
name = "common_config_h",
cmake = True,
files = {"common/config.h.cmake": "common/config.h"},
values = {
"CARTOGRAPHER_CONFIGURATION_FILES_DIRECTORY": "todo_set_config_dir_in_cartographer.BUILD",
"PROJECT_SOURCE_DIR": "todo_set_project_source_dir_in_cartographer.BUILD",
},
visibility = ["//visibility:private"],
)
cc_library(
name = "cartographer",
srcs = glob(
[
"**/*.cc",
],
exclude = [
"**/*_main.cc",
"**/*_test.cc",
],
),
hdrs = [
"common/config.h",
] + glob([
"**/*.h",
]),
includes = ["."],
deps = [
":cc_protos",
"@boost//:iostreams",
"@com_google_glog//:glog",
"@org_cairographics_cairo//:cairo",
"@org_ceres_solver_ceres_solver//:ceres",
"@org_lua_lua//:lua",
"@org_tuxfamily_eigen//:eigen",
],
)
# TODO(rodrigoq): these tests need to read the configuration files, but they're
# not able to find them.
EXCLUDED_TESTS = [
"common/configuration_files_test.cc",
"mapping/map_builder_test.cc",
]
[cc_test(
name = src.replace("/", "_").replace(".cc", ""),
srcs = [src],
deps = [
":cartographer",
"@com_google_googletest//:gtest_main",
],
) for src in glob(
["**/*_test.cc"],
exclude = EXCLUDED_TESTS,
)]

17
tools/bazel.rc Normal file
View File

@ -0,0 +1,17 @@
# Copyright 2018 The Cartographer Authors
#
# 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.
# Do an optimized build by default, or otherwise Cartographer cannot run
# real-time and certain tests will timeout.
build -c opt