workspace(name = "apollo") # googletest (GTest and GMock) new_http_archive( name = "gtest", build_file = "third_party/gtest.BUILD", sha256 = "58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8", strip_prefix = "googletest-release-1.8.0", url = "https://github.com/google/googletest/archive/release-1.8.0.tar.gz", ) # gflags http_archive( name = "com_github_gflags_gflags", sha256 = "466c36c6508a451734e4f4d76825cf9cd9b8716d2b70ef36479ae40f08271f88", strip_prefix = "gflags-2.2.0", url = "https://github.com/gflags/gflags/archive/v2.2.0.tar.gz", ) bind( name = "gflags", actual = "@com_github_gflags_gflags//:gflags", ) # glog new_http_archive( name = "glog", build_file = "third_party/glog.BUILD", sha256 = "7580e408a2c0b5a89ca214739978ce6ff480b5e7d8d7698a2aa92fadc484d1e0", strip_prefix = "glog-0.3.5", url = "https://github.com/google/glog/archive/v0.3.5.tar.gz", ) # Google Benchmark new_http_archive( name = "benchmark", build_file = "third_party/benchmark.BUILD", sha256 = "e7334dd254434c6668e33a54c8f839194c7c61840d52f4b6258eee28e9f3b20e", strip_prefix = "benchmark-1.1.0", url = "https://github.com/google/benchmark/archive/v1.1.0.tar.gz", ) # proto rules (Protobuf and GRPC) http_archive( name = "org_pubref_rules_protobuf", sha256 = "646b39438d8eeba02d9af890dee444c7e4e9d08ae8611bc0e0621257010162db", strip_prefix = "rules_protobuf-0.7.1", url = "https://github.com/pubref/rules_protobuf/archive/v0.7.1.tar.gz", ) load("@org_pubref_rules_protobuf//cpp:rules.bzl", "cpp_proto_repositories") cpp_proto_repositories( lang_deps = { # Grpc repo is required by multiple languages but we put it here. "com_github_grpc_grpc": { "rule": "git_repository", "remote": "https://github.com/grpc/grpc.git", "init_submodules": True, "commit": "3808b6efe66b87269d43847bc113e94e2d3d28fb", #"tag": "v1.0.1", }, # Hooray! The boringssl team provides a "chromium-stable-with-bazel" branch # with all BUILD files ready to go. "boringssl": { "rule": "http_archive", "url": "https://github.com/google/boringssl/archive/chromium-stable-with-bazel.zip", }, # libssl is required for c++ grpc where it is expected in # //external:libssl. This can be either boringssl or openssl. "libssl": { "rule": "bind", "actual": "@boringssl//boringssl-chromium-stable-with-bazel:ssl", }, # C-library for zlib "com_github_madler_zlib": { "rule": "new_git_repository", "remote": "https://github.com/madler/zlib", "tag": "v1.2.8", "build_file": "third_party/com_github_madler_zlib.BUILD", }, # grpc++ expects //external:zlib "zlib": { "rule": "bind", "actual": "@com_github_madler_zlib//:zlib", }, # grpc++ expects "//external:protobuf_clib" "protobuf_clib": { "rule": "bind", "actual": "@com_github_google_protobuf//:protobuf", }, # grpc++ expects //external:nanopb "nanopb": { "rule": "bind", "actual": "@com_github_grpc_grpc//third_party/nanopb", }, # Bind the executable cc_binary grpc plugin into # //external:protoc_gen_grpc_cpp. Expects # //external:protobuf_compiler. TODO: is it really necessary to # bind it in external? "protoc_gen_grpc_cpp": { "rule": "bind", "actual": "@com_github_grpc_grpc//:grpc_cpp_plugin", }, # Bind the protobuf proto_lib into //external. Required for # compiling the protoc_gen_grpc plugin "protobuf_compiler": { "rule": "bind", "actual": "@com_github_google_protobuf//:protoc_lib", }, # GTest is for our own internal cc tests. "gtest": { "rule": "new_git_repository", "remote": "https://github.com/google/googletest.git", "commit": "ed9d1e1ff92ce199de5ca2667a667cd0a368482a", "build_file": "third_party/protobuf_gtest.BUILD", }, }, ) load("@org_pubref_rules_protobuf//python:rules.bzl", "py_proto_repositories") py_proto_repositories() # cpplint from google style guide new_git_repository( name = "google_styleguide", build_file = "third_party/google_styleguide.BUILD", commit = "159b4c81bbca97a9ca00f1195a37174388398a67", remote = "https://github.com/google/styleguide.git", ) # eigen new_http_archive( name = "eigen", build_file = "third_party/eigen.BUILD", sha256 = "04f8a4fa4afedaae721c1a1c756afeea20d3cdef0ce3293982cf1c518f178502", strip_prefix = "eigen-eigen-b9cd8366d4e8", url = "https://bitbucket.org/eigen/eigen/get/3.2.10.tar.gz", ) # CivetWeb (web server) new_http_archive( name = "civetweb", build_file = "third_party/civetweb.BUILD", sha256 = "880d741724fd8de0ebc77bc5d98fa673ba44423dc4918361c3cd5cf80955e36d", strip_prefix = "civetweb-1.9.1", url = "https://github.com/civetweb/civetweb/archive/v1.9.1.tar.gz", ) # curlpp new_http_archive( name = "curlpp", build_file = "third_party/curlpp.BUILD", sha256 = "97e3819bdcffc3e4047b6ac57ca14e04af85380bd93afe314bee9dd5c7f46a0a", strip_prefix = "curlpp-0.8.1", url = "https://github.com/jpbarrette/curlpp/archive/v0.8.1.tar.gz", ) #ros new_http_archive( name = "ros", build_file = "third_party/ros.BUILD", strip_prefix = "ros", # url = "https://github.com/ApolloAuto/apollo-platform/releases/download/1.0.0/ros-indigo-apollo-1.0.0.MACHINE_ARCH.tar.gz", # temporary ros archive for apollo-1.5 url = "https://github.com/fengqikai1414/apollo-platform/releases/download/1.5.0/ros-indigo-apollo-1.5.2-x86_64-dev.tar.gz", ) # OpenCV 2.4.13.2 new_http_archive( name = "opencv2", build_file = "third_party/opencv2.BUILD", strip_prefix = "opencv-2.4.13.2", url = "https://github.com/opencv/opencv/archive/2.4.13.2.zip", ) # PCL 1.7 # ======= # This requires libpcl-dev to be installed in your Ubuntu/Debian. new_local_repository( name = "pcl", build_file = "third_party/pcl.BUILD", path = "/usr/include/pcl-1.7", ) new_local_repository( name = "vtk", build_file = "third_party/vtk.BUILD", path = "/usr/include/vtk-5.8", ) # Caffe # ===== # This requires Caffe being installed in docker image. new_local_repository( name = "caffe", build_file = "third_party/caffe.BUILD", path = "/third_party/caffe", ) # YAML-CPP new_http_archive( name = "yaml_cpp", build_file = "third_party/yaml_cpp.BUILD", strip_prefix = "yaml-cpp-yaml-cpp-0.5.3", url = "https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.5.3.zip", ) # qpOASES new_http_archive( name = "qp_oases", build_file = "third_party/qp_oases.BUILD", sha256 = "ae15eee80455c26d0c26078498893582b67b1d71df18f14f12591023561e5f88", strip_prefix = "qpOASES-3.2.1", url = "https://www.coin-or.org/download/source/qpOASES/qpOASES-3.2.1.zip", ) # Proj.4 new_http_archive( name = "proj4", url = "https://github.com/OSGeo/proj.4/archive/4.9.3.zip", build_file = "third_party/proj4.BUILD", strip_prefix = "proj.4-4.9.3", ) # tinyxml2 new_http_archive( name = "tinyxml2", url = "https://github.com/leethomason/tinyxml2/archive/5.0.1.zip", build_file = "third_party/tinyxml2.BUILD", strip_prefix = "tinyxml2-5.0.1", )