@@ -10,6 +10,11 @@ package(
1010 default_visibility = ["//visibility:public" ],
1111)
1212
13+ config_setting (
14+ name = "p4_14_enabled" ,
15+ define_values = {"p4_14" : "true" },
16+ )
17+
1318license (
1419 name = "license" ,
1520 package_name = "com_github_p4lang_p4c" ,
@@ -167,13 +172,15 @@ cc_binary(
167172filegroup (
168173 name = "ir_extra_defs" ,
169174 srcs = [
170- "frontends/p4-14/ir-v1.def" ,
171175 "backends/bmv2/bmv2.def" ,
172176 "backends/dpdk/dpdk.def" ,
173177 "//backends/p4tools:ir_extension" ,
174178 # p4c extensions can contribute to this file group using extensions.bzl.
175179 "@p4c_ir_extensions//:ir_extension" ,
176- ],
180+ ] + select ({
181+ ":p4_14_enabled" : ["frontends/p4-14/ir-v1.def" ],
182+ "//conditions:default" : [],
183+ }),
177184)
178185
179186genrule (
@@ -203,21 +210,40 @@ genrule(
203210# dependencies.
204211cc_library (
205212 name = "ir_frontend_midend_control_plane" ,
213+ defines = select ({
214+ ":p4_14_enabled" : ["SUPPORT_P4_14=1" ],
215+ "//conditions:default" : [],
216+ }),
206217 srcs = glob ([
207218 "ir/**/*.cpp" ,
208219 "frontends/**/*.cpp" ,
209220 "midend/**/*.cpp" ,
210221 "control-plane/**/*.cpp" ,
222+ ], exclude = [
223+ "frontends/p4-14/**/*.cpp" ,
224+ "frontends/parsers/parserDriver_v1.cpp" ,
225+ "frontends/p4/typeChecking/typeCheckExpr_v1.cpp" ,
211226 ]) + [
212227 "backends/dpdk/dbprint-dpdk.cpp" ,
213228 "backends/dpdk/printUtils.cpp" ,
214229 "backends/dpdk/spec.cpp" ,
215230 "frontends/parsers/p4/p4lexer.cc" ,
216231 "frontends/parsers/p4/p4parser.cc" ,
217- "frontends/parsers/v1/v1lexer.cc" ,
218- "frontends/parsers/v1/v1parser.cc" ,
219232 "ir/ir-generated.cpp" ,
220- ],
233+ ] + select ({
234+ ":p4_14_enabled" : [
235+ "frontends/parsers/v1/v1lexer.cc" ,
236+ "frontends/parsers/v1/v1parser.cc" ,
237+ "frontends/parsers/parserDriver_v1.cpp" ,
238+ "frontends/p4/typeChecking/typeCheckExpr_v1.cpp" ,
239+ "frontends/p4-14/typecheck.cpp" ,
240+ "frontends/p4-14/header_type.cpp" ,
241+ "frontends/p4-14/v1.cpp" ,
242+ "frontends/p4-14/fromv1.0/converters.cpp" ,
243+ "frontends/p4-14/fromv1.0/programStructure.cpp" ,
244+ ],
245+ "//conditions:default" : [],
246+ }),
221247 textual_hdrs = glob ([
222248 "ir/**/*.h" ,
223249 "frontends/**/*.h" ,
@@ -227,11 +253,15 @@ cc_library(
227253 "backends/**/*.h" ,
228254 ]) + [
229255 ":p4_parser_yacc" ,
230- ":v1_parser_yacc" ,
231256 ":p4lexer" ,
232- ":v1lexer" ,
233257 ":ir_generated_files" ,
234- ],
258+ ] + select ({
259+ ":p4_14_enabled" : [
260+ ":v1_parser_yacc" ,
261+ ":v1lexer" ,
262+ ],
263+ "//conditions:default" : [],
264+ }),
235265 deps = [
236266 ":config_h" ,
237267 ":flex_lexer_h" ,
0 commit comments