bazel baby steps
A few first steps toward a Bazel build. To try it out, I think just $ bazel test ... I added third_party to .bazelignore to prevent Bazel from looking there. It can handle external dependencies itself, so no need to poke into what we sync from DEPS. Some of those have Bazel configs and we don't want to be building them yet. I've started by with libpng using new_git_repository(), mostly because it's small, with a mildly complex build, and needs dependencies of its own, zlib. Mysteriously zlib is built-in to Bazel, so that was easy. Next up is probably a dependency that does support Bazel, using git_repository(). That should make sure we can handle the full mix. Change-Id: I5775a1b254d341b9a90630aa1cc433a24167f2fd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316636 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Joe Gregorio <jcgregorio@google.com>
This commit is contained in:
parent
d836f84ab8
commit
c1cc1d85ab
1
.bazelignore
Normal file
1
.bazelignore
Normal file
@ -0,0 +1 @@
|
||||
third_party
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -45,3 +45,5 @@ bin/clang-format.exe
|
||||
|
||||
node_modules
|
||||
tools/lottiecap/filmstrip.png
|
||||
|
||||
bazel-*
|
||||
|
8
BUILD.bazel
Normal file
8
BUILD.bazel
Normal file
@ -0,0 +1,8 @@
|
||||
cc_test(
|
||||
name = "bazel_test",
|
||||
srcs = [
|
||||
"tools/bazel_test.cc",
|
||||
],
|
||||
deps = ["@libpng//:libpng"],
|
||||
size = "small",
|
||||
)
|
10
WORKSPACE.bazel
Normal file
10
WORKSPACE.bazel
Normal file
@ -0,0 +1,10 @@
|
||||
load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")
|
||||
|
||||
new_git_repository(
|
||||
name = "libpng",
|
||||
remote = "https://skia.googlesource.com/third_party/libpng",
|
||||
#tag = "v1.6.37",
|
||||
commit = "a40189cf881e9f0db80511c382292a5604c3c3d1",
|
||||
shallow_since = "1555265432 -0400",
|
||||
build_file = "//bazel:libpng.bazel",
|
||||
)
|
2
bazel/BUILD.bazel
Normal file
2
bazel/BUILD.bazel
Normal file
@ -0,0 +1,2 @@
|
||||
# This empty BUILD.bazel file allows WORKSPACE.bazel to use
|
||||
# the various foo.bazel files for third-party dependencies.
|
38
bazel/libpng.bazel
Normal file
38
bazel/libpng.bazel
Normal file
@ -0,0 +1,38 @@
|
||||
genrule(
|
||||
name = "prebuilt_pnglibconf",
|
||||
srcs = ["scripts/pnglibconf.h.prebuilt"],
|
||||
outs = ["pnglibconf.h"],
|
||||
cmd = "cp $< $@",
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "libpng",
|
||||
hdrs = ["png.h"],
|
||||
includes = ["."],
|
||||
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",
|
||||
] + [
|
||||
":prebuilt_pnglibconf",
|
||||
"pngconf.h",
|
||||
"pngdebug.h",
|
||||
"pnginfo.h",
|
||||
"pngpriv.h",
|
||||
"pngstruct.h",
|
||||
], # TODO(mtklein): SSE/NEON srcs?
|
||||
deps = ["@bazel_tools//third_party/zlib"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
8
tools/bazel_test.cc
Normal file
8
tools/bazel_test.cc
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright 2020 Google LLC.
|
||||
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
|
||||
#include <png.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
return png_access_version_number() == 10637
|
||||
? 0 : 1;
|
||||
}
|
Loading…
Reference in New Issue
Block a user