feat(third_party/bazel): Check in rules_haskell from Tweag

This commit is contained in:
Vincent Ambo 2019-07-04 11:18:12 +01:00
parent 2eb1dc26e4
commit f723b8b878
479 changed files with 51484 additions and 0 deletions

View file

@ -0,0 +1,78 @@
load(
"@io_tweag_rules_haskell//haskell:haskell.bzl",
"haskell_doc",
"haskell_library",
"haskell_proto_library",
)
package(default_testonly = 1)
proto_library(
name = "zip_code_proto",
srcs = ["zip_code.proto"],
)
proto_library(
name = "address_proto",
srcs = ["address.proto"],
deps = [":zip_code_proto"],
)
proto_library(
name = "person_proto",
srcs = ["person.proto"],
deps = [
":address_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
proto_library(
name = "stripped_zip_code_proto",
srcs = ["stripped_zip_code.proto"],
strip_import_prefix = "/tests/haskell_proto_library/",
)
proto_library(
name = "stripped_address_proto",
srcs = ["stripped_address.proto"],
strip_import_prefix = "/tests/haskell_proto_library/",
deps = [":stripped_zip_code_proto"],
)
haskell_proto_library(
name = "address_haskell_proto",
tags = ["requires_hackage"],
deps = [":address_proto"],
)
haskell_proto_library(
name = "stripped_address_haskell_proto",
tags = ["requires_hackage"],
deps = [":stripped_address_proto"],
)
haskell_proto_library(
name = "person_haskell_proto",
tags = ["requires_hackage"],
deps = [":person_proto"],
)
haskell_library(
name = "hs-lib",
srcs = ["Bar.hs"],
tags = ["requires_hackage"],
visibility = ["//visibility:public"],
deps = [
":address_haskell_proto",
":person_haskell_proto",
":stripped_address_haskell_proto",
"//tests/hackage:base",
],
)
haskell_doc(
name = "docs",
tags = ["requires_hackage"],
deps = [":hs-lib"],
)

View file

@ -0,0 +1,8 @@
module Bar (bar) where
import Proto.StrippedAddress
import Proto.Tests.HaskellProtoLibrary.Person
import Proto.Tests.HaskellProtoLibrary.Person_Fields
bar :: Int
bar = 5

View file

@ -0,0 +1,11 @@
syntax = "proto3";
package demo; // Required to generate valid code.
// Always import protos with a full path relative to the WORKSPACE file.
import "tests/haskell_proto_library/zip_code.proto";
message Address {
string city = 1;
ZipCode zip_code = 2;
}

View file

@ -0,0 +1,16 @@
syntax = "proto3";
package demo; // Required to generate valid code.
// Always import protos with a full path relative to the WORKSPACE file.
import "tests/haskell_proto_library/address.proto";
import "google/protobuf/timestamp.proto";
message Person {
string name = 1;
int32 id = 2;
string email = 3;
Address address = 4;
google.protobuf.Timestamp timestamp = 5;
}

View file

@ -0,0 +1,10 @@
syntax = "proto3";
package demo; // Required to generate valid code.
import "stripped_zip_code.proto";
message StrippedAddress {
string city = 1;
StrippedZipCode zip_code = 2;
}

View file

@ -0,0 +1,7 @@
syntax = "proto3";
package demo; // Required to generate valid code.
message StrippedZipCode {
string code = 1;
}

View file

@ -0,0 +1,7 @@
syntax = "proto3";
package demo; // Required to generate valid code.
message ZipCode {
string code = 1;
}