6363 T = TypeVar ('T' )
6464 def task_gen_decorator (* args : str ) -> Callable [[T ], T ]:
6565 ...
66- TaskGen .feature = task_gen_decorator
67- TaskGen .before_method = task_gen_decorator
68- TaskGen .after_method = task_gen_decorator
69- TaskGen .extension = task_gen_decorator
66+ task_gen_feature = task_gen_decorator
67+ task_gen_before_method = task_gen_decorator
68+ task_gen_after_method = task_gen_decorator
69+ task_gen_extension = task_gen_decorator
70+ else :
71+ task_gen_feature = TaskGen .feature
72+ task_gen_before_method = TaskGen .before_method
73+ task_gen_after_method = TaskGen .after_method
74+ task_gen_extension = TaskGen .extension
7075
7176# Protocol is not available in Python 3.6 :(
7277if TYPE_CHECKING :
@@ -80,8 +85,8 @@ def task_gen_decorator(*args: str) -> Callable[[T], T]:
8085# These functions implement the use_whole attribute, allowing to link a
8186# library with -whole-archive
8287
83- @TaskGen . feature ('c' , 'cprogram' , 'cstlib' )
84- @TaskGen . before_method ('process_rule' )
88+ @task_gen_feature ('c' , 'cprogram' , 'cstlib' )
89+ @task_gen_before_method ('process_rule' )
8590def prepare_whole (self : TaskGen ) -> None :
8691 use_whole = self .to_list (getattr (self , 'use_whole' , []))
8792 if not use_whole :
@@ -99,8 +104,8 @@ def prepare_whole(self: TaskGen) -> None:
99104 self .use .append (uw )
100105
101106
102- @TaskGen . feature ('c' , 'cprogram' , 'cstlib' )
103- @TaskGen . after_method ('process_use' )
107+ @task_gen_feature ('c' , 'cprogram' , 'cstlib' )
108+ @task_gen_after_method ('process_use' )
104109def process_whole (self : TaskGen ) -> None :
105110 use_whole = self .to_list (getattr (self , 'use_whole' , []))
106111 if not use_whole :
@@ -372,8 +377,8 @@ def compile_fuzzing_programs(ctx: BuildContext) -> None:
372377 ldflags = fuzzing_ldflags )
373378
374379
375- @TaskGen . feature ('fuzzing' )
376- @TaskGen . after_method ('process_use' )
380+ @task_gen_feature ('fuzzing' )
381+ @task_gen_after_method ('process_use' )
377382def fuzzing_feature (ctx : TaskGen ) -> None :
378383 # Avoid warning about fuzzing feature
379384 pass
@@ -442,8 +447,8 @@ def register_global_includes(self: BuildContext, includes: List[str]) -> None:
442447# {{{ Patch tasks to build targets in the source directory
443448
444449
445- @TaskGen . feature ('cprogram' , 'cxxprogram' )
446- @TaskGen . after_method ('apply_link' )
450+ @task_gen_feature ('cprogram' , 'cxxprogram' )
451+ @task_gen_after_method ('apply_link' )
447452def deploy_program (self : TaskGen ) -> None :
448453 # Build programs in the corresponding source directory
449454 assert (len (self .link_task .outputs ) == 1 )
@@ -455,8 +460,8 @@ def deploy_program(self: TaskGen) -> None:
455460 self .link_task .hcode += str (self .env .CONFIGURE_TIME ).encode ('utf-8' )
456461
457462
458- @TaskGen . feature ('cshlib' )
459- @TaskGen . after_method ('apply_link' )
463+ @task_gen_feature ('cshlib' )
464+ @task_gen_after_method ('apply_link' )
460465def deploy_shlib (self : TaskGen ) -> None :
461466 # Build C shared library in the corresponding source directory,
462467 # stripping the 'lib' prefix
@@ -477,8 +482,8 @@ def deploy_shlib(self: TaskGen) -> None:
477482# }}}
478483# {{{ remove_dynlibs: option to remove all dynamic libraries at link
479484
480- @TaskGen . feature ('cshlib' , 'cprogram' )
481- @TaskGen . after_method ('apply_link' , 'process_use' )
485+ @task_gen_feature ('cshlib' , 'cprogram' )
486+ @task_gen_after_method ('apply_link' , 'process_use' )
482487def remove_dynamic_libs (self : TaskGen ) -> None :
483488 if getattr (self , 'remove_dynlibs' , False ):
484489 self .link_task .env .LIB = []
@@ -907,16 +912,16 @@ def keyword(cls: Type['Blk2c']) -> str:
907912 return 'Rewriting'
908913
909914
910- @TaskGen . feature ('c' )
911- @TaskGen . before_method ('process_source' )
915+ @task_gen_feature ('c' )
916+ @task_gen_before_method ('process_source' )
912917def init_c_ctx (self : TaskGen ) -> None :
913918 self .blk2c_tasks = []
914919 self .clang_check_tasks = []
915920 self .env .CLANG_CFLAGS = self .to_list (getattr (self , 'cflags' , []))
916921
917922
918- @TaskGen . feature ('c' )
919- @TaskGen . after_method ('propagate_uselib_vars' )
923+ @task_gen_feature ('c' )
924+ @task_gen_after_method ('propagate_uselib_vars' )
920925def update_blk2c_envs (self : TaskGen ) -> None :
921926 if not self .blk2c_tasks :
922927 return
@@ -931,7 +936,7 @@ def update_blk2c_envs(self: TaskGen) -> None:
931936 task .env .CLANG_EXTRA_CFLAGS = extra_cflags
932937
933938
934- @TaskGen . extension ('.blk' )
939+ @task_gen_extension ('.blk' )
935940def process_blk (self : TaskGen , node : Node ) -> None :
936941 if self .env .COMPILER_CC == 'clang' :
937942 # clang is our C compiler -> directly compile the file
@@ -968,14 +973,14 @@ def keyword(cls: Type['Blkk2cc']) -> str:
968973 return 'Rewriting'
969974
970975
971- @TaskGen . feature ('cxx' )
972- @TaskGen . before_method ('process_source' )
976+ @task_gen_feature ('cxx' )
977+ @task_gen_before_method ('process_source' )
973978def init_cxx_ctx (self : TaskGen ) -> None :
974979 self .blkk2cc_tasks = []
975980
976981
977- @TaskGen . feature ('cxx' )
978- @TaskGen . after_method ('propagate_uselib_vars' )
982+ @task_gen_feature ('cxx' )
983+ @task_gen_after_method ('propagate_uselib_vars' )
979984def update_blk2cc_envs (self : TaskGen ) -> None :
980985 if self .blkk2cc_tasks :
981986 # Compute clang extra cflags from g++ flags
@@ -987,7 +992,7 @@ def update_blk2cc_envs(self: TaskGen) -> None:
987992 task .env .CLANGXX_EXTRA_CFLAGS = extra_flags
988993
989994
990- @TaskGen . extension ('.blkk' )
995+ @task_gen_extension ('.blkk' )
991996def process_blkk (self : TaskGen , node : Node ) -> None :
992997 if self .env .COMPILER_CXX == 'clang++' :
993998 # clang++ is our C++ compiler -> directly compile the file
@@ -1022,7 +1027,7 @@ def keyword(cls: Type['Perf2c']) -> str:
10221027 return 'Generating'
10231028
10241029
1025- @TaskGen . extension ('.perf' )
1030+ @task_gen_extension ('.perf' )
10261031def process_perf (self : TaskGen , node : Node ) -> None :
10271032 c_node = node .change_ext_src ('.c' )
10281033
@@ -1045,7 +1050,7 @@ def keyword(cls: Type['Lex2c']) -> str:
10451050 return 'Generating'
10461051
10471052
1048- @TaskGen . extension ('.l' )
1053+ @task_gen_extension ('.l' )
10491054def process_lex (self : TaskGen , node : Node ) -> None :
10501055 c_node = node .change_ext_src ('.c' )
10511056
@@ -1100,7 +1105,7 @@ def scan(self) -> Tuple[Optional[List[str]], Optional[List[str]]]:
11001105 return (deps , None )
11011106
11021107
1103- @TaskGen . extension ('.fc' )
1108+ @task_gen_extension ('.fc' )
11041109def process_fc (self : TaskGen , node : Node ) -> None :
11051110 ctx = self .bld
11061111
@@ -1142,7 +1147,7 @@ def keyword(cls: Type['Tokens2c']) -> str:
11421147 return 'Generating'
11431148
11441149
1145- @TaskGen . extension ('.tokens' )
1150+ @task_gen_extension ('.tokens' )
11461151def process_tokens (self : TaskGen , node : Node ) -> None :
11471152 c_node = node .change_ext_src ('tokens.c' )
11481153 h_node = node .change_ext_src ('tokens.h' )
@@ -1366,7 +1371,7 @@ def iop_get_package_path(self: BuildContext, node: Node) -> str:
13661371 return match .group (1 ).replace ('.' , '/' )
13671372
13681373
1369- @TaskGen . extension ('.iop' )
1374+ @task_gen_extension ('.iop' )
13701375def process_iop (self : TaskGen , node : Node ) -> None :
13711376 ctx = self .bld
13721377
@@ -1425,7 +1430,7 @@ def process_iop(self: TaskGen, node: Node) -> None:
14251430# {{{ LD
14261431
14271432
1428- @TaskGen . extension ('.ld' )
1433+ @task_gen_extension ('.ld' )
14291434def process_ld (self : TaskGen , node : Node ) -> None :
14301435 self .env .append_value ('LDFLAGS' ,
14311436 ['-Xlinker' , '--version-script' ,
@@ -1450,7 +1455,7 @@ def keyword(cls: Type['Pxc2Pxd']) -> str:
14501455 return 'Pxcc'
14511456
14521457
1453- @TaskGen . extension ('.pxc' )
1458+ @task_gen_extension ('.pxc' )
14541459def process_pxcc (self : TaskGen , node : Node ) -> None :
14551460 ctx = self .bld
14561461
@@ -1487,8 +1492,8 @@ def keyword(cls: Type['ClangCheck']) -> str:
14871492 return 'Checking'
14881493
14891494
1490- @TaskGen . feature ('c' )
1491- @TaskGen . after_method ('propagate_uselib_vars' )
1495+ @task_gen_feature ('c' )
1496+ @task_gen_after_method ('propagate_uselib_vars' )
14921497def update_clang_check_envs (self : TaskGen ) -> None :
14931498 if self .clang_check_tasks :
14941499 # Compute clang extra cflags from gcc flags
@@ -1498,7 +1503,7 @@ def update_clang_check_envs(self: TaskGen) -> None:
14981503 task .env .CLANG_EXTRA_CFLAGS = extra_flags
14991504
15001505
1501- @TaskGen . extension ('.c' )
1506+ @task_gen_extension ('.c' )
15021507def process_c_for_check (self : TaskGen , node : Node ) -> None :
15031508 # Call standard C hook
15041509 c_task = c_tool .c_hook (self , node )
@@ -1555,8 +1560,8 @@ def __str__(self) -> str:
15551560 return node_path
15561561
15571562
1558- @TaskGen . feature ('cshlib' )
1559- @TaskGen . after_method ('apply_link' , 'deploy_shlib' )
1563+ @task_gen_feature ('cshlib' )
1564+ @task_gen_after_method ('apply_link' , 'deploy_shlib' )
15601565def make_dso_pystub (self : TaskGen ) -> None :
15611566 # Only consider shlib that specify pystub_path
15621567 pystub_path = getattr (self , 'pystub_path' , None )
0 commit comments