Skip to content

Commit 4c68a21

Browse files
committed
* Migrates to SKYLARK
1 parent ec374e1 commit 4c68a21

File tree

5 files changed

+160
-89
lines changed

5 files changed

+160
-89
lines changed

Diff for: .buckconfig

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[project]
2+
ignore = .git
3+
4+
[parser]
5+
default_build_file_syntax = SKYLARK
6+
7+
[cxx]
8+
should_remap_host_platform = true

Diff for: .gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.buckd
2+
buck-out
3+
buckaroo
4+
.buckconfig.local
5+
.buckconfig.d
6+
buckaroo_macros.bzl

Diff for: BUCK

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
include_defs('//BUCKAROO_DEPS')
1+
load('//:subdir_glob.bzl', 'subdir_glob')
2+
load('//:buckaroo_macros.bzl', 'buckaroo_deps')
23

34
prebuilt_cxx_library(
4-
name = 'algorithm',
5+
name = 'algorithm',
56
header_only = True,
6-
header_namespace = 'boost',
7+
header_namespace = 'boost',
78
exported_headers = subdir_glob([
89
('include/boost', '**/*.hpp'),
910
]),
10-
deps = BUCKAROO_DEPS,
11+
deps = buckaroo_deps(),
1112
visibility = [
1213
'PUBLIC',
1314
],

Diff for: buckaroo.lock.toml

+59-85
Original file line numberDiff line numberDiff line change
@@ -76,132 +76,106 @@ target = "//:unordered"
7676
package = "github.com/buckaroo-pm/boost-utility"
7777
target = "//:utility"
7878

79-
[[lock]]
80-
name = "github.com/buckaroo-pm/boost-align"
81-
version = "branch=master"
79+
[lock."github.com/buckaroo-pm/boost-align"]
80+
versions = [ "branch=master" ]
8281
revision = "cb3c7a31931f9f02b3c663fa96f208c4f9055a44"
8382

84-
[[lock]]
85-
name = "github.com/buckaroo-pm/boost-array"
86-
version = "branch=master"
87-
revision = "97b6d4fb6c67979c07d49f4f5dba444c70ec8889"
83+
[lock."github.com/buckaroo-pm/boost-array"]
84+
versions = [ "branch=master" ]
85+
revision = "ea0eab9a8cf538aa81a7d53f1762a5ff7e628e73"
8886

89-
[[lock]]
90-
name = "github.com/buckaroo-pm/boost-assert"
91-
version = "branch=master"
92-
revision = "cae7816110ba208a2290d02d128594e8809c9075"
87+
[lock."github.com/buckaroo-pm/boost-assert"]
88+
versions = [ "branch=master" ]
89+
revision = "fc4d65435c49b5b4fbbf0d4867ee8f69bfd42ef1"
9390

94-
[[lock]]
95-
name = "github.com/buckaroo-pm/boost-concept_check"
96-
version = "branch=master"
91+
[lock."github.com/buckaroo-pm/boost-concept_check"]
92+
versions = [ "branch=master" ]
9793
revision = "5a8bb5676742a02b9e2d343ecec66639da9deb3e"
9894

99-
[[lock]]
100-
name = "github.com/buckaroo-pm/boost-config"
101-
version = "branch=master"
95+
[lock."github.com/buckaroo-pm/boost-config"]
96+
versions = [ "branch=master" ]
10297
revision = "f2f2d0d85496b72eeff1186518deb7e23c757bfd"
10398

104-
[[lock]]
105-
name = "github.com/buckaroo-pm/boost-container_hash"
106-
version = "branch=master"
107-
revision = "9446eb516e717ae9c80bc89768a8d1160bcf6887"
99+
[lock."github.com/buckaroo-pm/boost-container_hash"]
100+
versions = [ "branch=master" ]
101+
revision = "ddd9a887f1f0253ded4455d455b3c54228067b74"
108102

109-
[[lock]]
110-
name = "github.com/buckaroo-pm/boost-core"
111-
version = "branch=master"
103+
[lock."github.com/buckaroo-pm/boost-core"]
104+
versions = [ "branch=master" ]
112105
revision = "10b589cb4aea4ca823237059f104cbfdd09b0f0e"
113106

114-
[[lock]]
115-
name = "github.com/buckaroo-pm/boost-detail"
116-
version = "branch=master"
107+
[lock."github.com/buckaroo-pm/boost-detail"]
108+
versions = [ "branch=master" ]
117109
revision = "94aa5268c1a74468be94b40afd730aea1730ceab"
118110

119-
[[lock]]
120-
name = "github.com/buckaroo-pm/boost-exception"
121-
version = "branch=master"
111+
[lock."github.com/buckaroo-pm/boost-exception"]
112+
versions = [ "branch=master" ]
122113
revision = "1795a6e9756f4d9ac60d43e2b9b07ec7ddfdbfb7"
123114

124-
[[lock]]
125-
name = "github.com/buckaroo-pm/boost-function"
126-
version = "branch=master"
115+
[lock."github.com/buckaroo-pm/boost-function"]
116+
versions = [ "branch=master" ]
127117
revision = "1eca491e9ecb82359cb6346376554f057a7470d8"
128118

129-
[[lock]]
130-
name = "github.com/buckaroo-pm/boost-integer"
131-
version = "branch=master"
119+
[lock."github.com/buckaroo-pm/boost-integer"]
120+
versions = [ "branch=master" ]
132121
revision = "5badcf5b232a15e89d0701bef687ffbe70398696"
133122

134-
[[lock]]
135-
name = "github.com/buckaroo-pm/boost-iterator"
136-
version = "branch=master"
123+
[lock."github.com/buckaroo-pm/boost-iterator"]
124+
versions = [ "branch=master" ]
137125
revision = "c84fc34d0f6386edb15b0cb854a12864b6f15232"
138126

139-
[[lock]]
140-
name = "github.com/buckaroo-pm/boost-move"
141-
version = "branch=master"
142-
revision = "183c4c120078cc80bdc9fd4089d911aecd922aac"
127+
[lock."github.com/buckaroo-pm/boost-move"]
128+
versions = [ "branch=master" ]
129+
revision = "3f0711cabd643ed902ff3ae3d6746ba2f7256e4e"
143130

144-
[[lock]]
145-
name = "github.com/buckaroo-pm/boost-mpl"
146-
version = "branch=master"
147-
revision = "4c91f620f270414ceb5c3dbf3419a4f6ffe38c1e"
131+
[lock."github.com/buckaroo-pm/boost-mpl"]
132+
versions = [ "branch=master" ]
133+
revision = "6493fcda0f5cd2ee595346ca48ff495db9fa74d5"
148134

149-
[[lock]]
150-
name = "github.com/buckaroo-pm/boost-predef"
151-
version = "branch=master"
135+
[lock."github.com/buckaroo-pm/boost-predef"]
136+
versions = [ "branch=master" ]
152137
revision = "73def0812b7235e0312079c729342787819bf1d5"
153138

154-
[[lock]]
155-
name = "github.com/buckaroo-pm/boost-preprocessor"
156-
version = "branch=master"
139+
[lock."github.com/buckaroo-pm/boost-preprocessor"]
140+
versions = [ "branch=master" ]
157141
revision = "a70772bbd315eb597c3f1e359af742dde46a6f37"
158142

159-
[[lock]]
160-
name = "github.com/buckaroo-pm/boost-range"
161-
version = "branch=master"
143+
[lock."github.com/buckaroo-pm/boost-range"]
144+
versions = [ "branch=master" ]
162145
revision = "bfbf1223a064828414338d293346bacfba5baacb"
163146

164-
[[lock]]
165-
name = "github.com/buckaroo-pm/boost-regex"
166-
version = "branch=master"
167-
revision = "e32eb30f7653b835b20e7f578ab85962ee9bd0d5"
147+
[lock."github.com/buckaroo-pm/boost-regex"]
148+
versions = [ "branch=master" ]
149+
revision = "4117987ba6ce4c8300dc986226b39c154dc22de8"
168150

169-
[[lock]]
170-
name = "github.com/buckaroo-pm/boost-smart_ptr"
171-
version = "branch=master"
151+
[lock."github.com/buckaroo-pm/boost-smart_ptr"]
152+
versions = [ "branch=master" ]
172153
revision = "360ba641a719a115373a2721b169086029fb4358"
173154

174-
[[lock]]
175-
name = "github.com/buckaroo-pm/boost-static_assert"
176-
version = "branch=master"
155+
[lock."github.com/buckaroo-pm/boost-static_assert"]
156+
versions = [ "branch=master" ]
177157
revision = "4b9da4628bc69ad0e9b244d3ec885f2eadac95d8"
178158

179-
[[lock]]
180-
name = "github.com/buckaroo-pm/boost-throw_exception"
181-
version = "branch=master"
159+
[lock."github.com/buckaroo-pm/boost-throw_exception"]
160+
versions = [ "branch=master" ]
182161
revision = "788503e2365554d1860c6d2043999e3430d1f7a5"
183162

184-
[[lock]]
185-
name = "github.com/buckaroo-pm/boost-tuple"
186-
version = "branch=master"
187-
revision = "5f4b3f572603f796257652c6851af5a98f8a60a3"
163+
[lock."github.com/buckaroo-pm/boost-tuple"]
164+
versions = [ "branch=master" ]
165+
revision = "5ffb0abec6da0d9986690b32d20218769a50086b"
188166

189-
[[lock]]
190-
name = "github.com/buckaroo-pm/boost-type_traits"
191-
version = "branch=master"
167+
[lock."github.com/buckaroo-pm/boost-type_traits"]
168+
versions = [ "branch=master" ]
192169
revision = "a34caf51f831ffb77d1057c668b5db620863d191"
193170

194-
[[lock]]
195-
name = "github.com/buckaroo-pm/boost-unordered"
196-
version = "branch=master"
171+
[lock."github.com/buckaroo-pm/boost-unordered"]
172+
versions = [ "branch=master" ]
197173
revision = "3dc0b01d31125081942c05afa4b354a9011156ca"
198174

199-
[[lock]]
200-
name = "github.com/buckaroo-pm/boost-utility"
201-
version = "branch=master"
175+
[lock."github.com/buckaroo-pm/boost-utility"]
176+
versions = [ "branch=master" ]
202177
revision = "57aa216434800315c9cd2664169e444e3070a677"
203178

204-
[[lock]]
205-
name = "github.com/buckaroo-pm/icu4c"
206-
version = "branch=master"
179+
[lock."github.com/buckaroo-pm/icu4c"]
180+
versions = [ "branch=master" ]
207181
revision = "d6803681f02ef9395665d4db6e84a4416a679bc3"

Diff for: subdir_glob.bzl

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
"""Provides utility macros for working with globs."""
2+
3+
def _paths_join(path, *others):
4+
"""Joins one or more path components."""
5+
result = path
6+
7+
for p in others:
8+
if p.startswith("/"): # absolute
9+
result = p
10+
elif not result or result.endswith("/"):
11+
result += p
12+
else:
13+
result += "/" + p
14+
15+
return result
16+
17+
def subdir_glob(glob_specs, exclude = None, prefix = ""):
18+
"""Returns a dict of sub-directory relative paths to full paths.
19+
20+
The subdir_glob() function is useful for defining header maps for C/C++
21+
libraries which should be relative the given sub-directory.
22+
Given a list of tuples, the form of (relative-sub-directory, glob-pattern),
23+
it returns a dict of sub-directory relative paths to full paths.
24+
25+
Please refer to native.glob() for explanations and examples of the pattern.
26+
27+
Args:
28+
glob_specs: The array of tuples in form of
29+
(relative-sub-directory, glob-pattern inside relative-sub-directory).
30+
type: List[Tuple[str, str]]
31+
exclude: A list of patterns to identify files that should be removed
32+
from the set specified by the first argument. Defaults to [].
33+
type: Optional[List[str]]
34+
prefix: If is not None, prepends it to each key in the dictionary.
35+
Defaults to None.
36+
type: Optional[str]
37+
38+
Returns:
39+
A dict of sub-directory relative paths to full paths.
40+
"""
41+
if exclude == None:
42+
exclude = []
43+
44+
results = []
45+
46+
for dirpath, glob_pattern in glob_specs:
47+
results.append(
48+
_single_subdir_glob(dirpath, glob_pattern, exclude, prefix),
49+
)
50+
51+
return _merge_maps(*results)
52+
53+
def _merge_maps(*file_maps):
54+
result = {}
55+
for file_map in file_maps:
56+
for key in file_map:
57+
if key in result and result[key] != file_map[key]:
58+
fail(
59+
"Conflicting files in file search paths. " +
60+
"\"%s\" maps to both \"%s\" and \"%s\"." %
61+
(key, result[key], file_map[key]),
62+
)
63+
64+
result[key] = file_map[key]
65+
66+
return result
67+
68+
def _single_subdir_glob(dirpath, glob_pattern, exclude = None, prefix = None):
69+
if exclude == None:
70+
exclude = []
71+
results = {}
72+
files = native.glob([_paths_join(dirpath, glob_pattern)], exclude = exclude)
73+
for f in files:
74+
if dirpath:
75+
key = f[len(dirpath) + 1:]
76+
else:
77+
key = f
78+
if prefix:
79+
key = _paths_join(prefix, key)
80+
results[key] = f
81+
82+
return results

0 commit comments

Comments
 (0)