-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathBUILD
More file actions
94 lines (83 loc) · 2.46 KB
/
Copy pathBUILD
File metadata and controls
94 lines (83 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Copyright 2018 The Bazel 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.
load("@rules_r//R:defs.bzl", "r_library", "r_pkg", "r_pkg_test", "r_unit_test")
package(default_visibility = ["//visibility:public"])
PKG_NAME = "exampleC"
PKG_SRCS = glob(
["**"],
exclude = [
"BUILD",
"src/lib/**", # Handled through cc_library.
],
)
r_library(
name = "deps",
pkgs = [
"//packages/exampleB",
"@R_Rcpp",
],
)
r_library(
name = "suggested_deps",
pkgs = [
"@R_testthat",
"@workspaceroot",
],
)
r_pkg(
name = PKG_NAME,
srcs = PKG_SRCS,
# Override default to build package vignettes and manuals.
# Note that we have a custom Makefile to create dummy HTMLs as vignettes.
build_args = [],
cc_deps = [":cc_lib"],
deps = [":deps"],
)
r_library(
name = "library",
pkgs = [PKG_NAME],
tags = ["manual"],
)
r_unit_test(
name = "test",
timeout = "short",
pkg = PKG_NAME,
suggested_deps = [":suggested_deps"],
)
r_pkg_test(
name = "check",
timeout = "short",
pkg = PKG_NAME,
suggested_deps = [":suggested_deps"],
)
cc_library(
name = "cc_lib",
srcs = [
"src/lib/getCharacter.c",
"src/lib/rcpp.cc",
],
hdrs = ["src/lib/rcpp.h"],
copts = select({
# NOTE: The include path requirements here are met through setup-bazel.sh.
# When using Xcode toolchains, /Library include paths work out of the box from bazel 4.0.0+.
# When not using Xcode, relies on the following in the environment.
# CPLUS_INCLUDE_PATH=/Library/Frameworks/R.framework/Headers
"@platforms//os:macos": ["-isystem /Library/Frameworks/R.framework/Headers"],
# Relies on the following in the environment.
# CPLUS_INCLUDE_PATH=/usr/share/R/include
"@platforms//os:linux": ["-isystem /usr/share/R/include"],
}) + ["-Wno-unused-variable"],
strip_include_prefix = "src",
deps = ["@R_Rcpp//:Rcpp.cc"],
)