From 886fcaca1daeb10326f0a397e266e8864edb0717 Mon Sep 17 00:00:00 2001 From: Steve Harris Date: Wed, 22 May 2019 14:01:21 -0400 Subject: [PATCH] Allow building the "c-bindings" program with Bazel --- WORKSPACE | 5 +++++ c-bindings/BUILD.bazel | 10 ++++++++-- c-bindings/c-bindings.go | 2 +- c-bindings/json.cpp | 2 +- c-bindings/json.h | 2 -- c-bindings/libjsonnet.cpp | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 4c616f3..e277e75 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,5 +1,10 @@ workspace(name = "google_jsonnet_go") +local_repository( + name = "cpp_jsonnet", + path = "./cpp-jsonnet", +) + load( "@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", diff --git a/c-bindings/BUILD.bazel b/c-bindings/BUILD.bazel index 3877e48..76cf6e9 100644 --- a/c-bindings/BUILD.bazel +++ b/c-bindings/BUILD.bazel @@ -9,11 +9,17 @@ go_library( "json.h", "libjsonnet.cpp", ], + cdeps = [ + "@cpp_jsonnet//include:libjsonnet", + ], cgo = True, - copts = ["-std=c++11 -Wall"], + copts = ["-Wall -Icpp-jsonnet/include"], # keep + cxxopts = ["-std=c++11"], importpath = "github.com/google/go-jsonnet/c-bindings", visibility = ["//visibility:private"], - deps = ["//:go_default_library"], + deps = [ + "//:go_default_library", + ], ) go_binary( diff --git a/c-bindings/c-bindings.go b/c-bindings/c-bindings.go index bf062dd..08e627c 100644 --- a/c-bindings/c-bindings.go +++ b/c-bindings/c-bindings.go @@ -7,7 +7,7 @@ import ( "github.com/google/go-jsonnet" - // #cgo CXXFLAGS: -std=c++11 -Wall + // #cgo CXXFLAGS: -std=c++11 -Wall -I../cpp-jsonnet/include // #include "internal.h" "C" ) diff --git a/c-bindings/json.cpp b/c-bindings/json.cpp index 31628fb..6079c4b 100644 --- a/c-bindings/json.cpp +++ b/c-bindings/json.cpp @@ -1,5 +1,5 @@ extern "C" { - #include "../cpp-jsonnet/include/libjsonnet.h" + #include "libjsonnet.h" } #include "json.h" diff --git a/c-bindings/json.h b/c-bindings/json.h index b221ad4..366f1aa 100644 --- a/c-bindings/json.h +++ b/c-bindings/json.h @@ -22,8 +22,6 @@ limitations under the License. #include #include -#include "../cpp-jsonnet/include/libjsonnet.h" - struct JsonnetJsonValue { enum Kind { ARRAY, diff --git a/c-bindings/libjsonnet.cpp b/c-bindings/libjsonnet.cpp index ccbc74c..b95ca16 100644 --- a/c-bindings/libjsonnet.cpp +++ b/c-bindings/libjsonnet.cpp @@ -2,7 +2,7 @@ #include extern "C" { - #include "../cpp-jsonnet/include/libjsonnet.h" + #include "libjsonnet.h" #include "internal.h" }