14
14
from .language import get_language_directories
15
15
from .shell import abort , debug , error , info , warn
16
16
from .utils import (RuntimeCodeError , copy_directory , copy_file ,
17
- ensure_directory , get_all_files , get_next_filename ,
18
- remove_tree , request_executable_version , request_tool ,
19
- walk_all_files )
17
+ ensure_directory , ensure_file , get_all_files ,
18
+ get_next_filename , remove_tree , request_executable_version ,
19
+ request_tool , walk_all_files )
20
20
21
21
BuildTarget = namedtuple ("BuildTarget" , "directory relative_directory output_directory manifest classpath" )
22
22
23
- def prepare_directory_order (directory : str ) -> List [str ]:
24
- directories = os .listdir (directory )
25
- if "order.txt" in directories :
26
- with open (join (directory , "order.txt" ), encoding = "utf-8" ) as order :
27
- directories = order .readlines ()
28
- else :
29
- directories = list (filter (lambda name : isdir (join (directory , name )), directories ))
30
- return directories
31
-
32
23
def collect_classpath_files (directories : Optional [Collection [str ]]) -> List [str ]:
33
24
classpath = list ()
34
25
if not directories :
@@ -460,10 +451,9 @@ def get_java_build_targets(directories: Dict[str, BaseConfig]) -> List[BuildTarg
460
451
targets = list ()
461
452
462
453
for directory , config in directories .items ():
463
- # TODO: Maybe move logic to relative directory instead of hashed one.
464
- # relative_directory = config.get_value("directory")
465
- # assert relative_directory, "Internal error, relative directory cannot be empty."
466
- relative_directory = GLOBALS .MAKE_CONFIG .unique_folder_name (directory )
454
+ relative_directory = basename (directory )
455
+ output_directory = GLOBALS .MOD_STRUCTURE .new_build_target ("java" , relative_directory )
456
+ ensure_directory (output_directory )
467
457
468
458
with open (join (directory , "manifest" ), encoding = "utf-8" ) as manifest :
469
459
try :
@@ -473,8 +463,6 @@ def get_java_build_targets(directories: Dict[str, BaseConfig]) -> List[BuildTarg
473
463
except json .JSONDecodeError as exc :
474
464
raise RuntimeCodeError (2 , f"* Malformed java directory { directory !r} manifest, you should fix it: { exc .msg } ." )
475
465
476
- output_directory = GLOBALS .MOD_STRUCTURE .new_build_target ("java" , relative_directory )
477
- ensure_directory (output_directory )
478
466
classpath = collect_classpath_files (config .get_value ("classpath" ))
479
467
target = BuildTarget (directory , relative_directory , output_directory , config , classpath )
480
468
targets .append (target )
@@ -569,16 +557,14 @@ def compile_java(tool: str = "gradle") -> int:
569
557
except RuntimeCodeError as exc :
570
558
error (exc )
571
559
return exc .code
572
- if len (directories ) == 0 :
573
- GLOBALS .MOD_STRUCTURE .update_build_config_list ("javaDirs" )
574
- return 0
575
560
576
561
overall_result = build_java_directories (tool , directories , target_directory )
577
562
578
563
GLOBALS .MOD_STRUCTURE .update_build_config_list ("javaDirs" )
579
- startup_millis = time () - startup_millis
580
- if overall_result == 0 :
581
- print (f"Completed java build in { startup_millis :.2f} s!" )
582
- else :
583
- error (f"Failed java build in { startup_millis :.2f} s with result { overall_result } ." )
564
+ if len (directories ) != 0 :
565
+ startup_millis = time () - startup_millis
566
+ if overall_result == 0 :
567
+ print (f"Completed java build in { startup_millis :.2f} s!" )
568
+ else :
569
+ error (f"Failed java build in { startup_millis :.2f} s with result { overall_result } ." )
584
570
return overall_result
0 commit comments