Skip to content

Commit cac73f8

Browse files
committed
Reverting relative Java/Cpp directories in build targets, added include property to Cpp configurations
1 parent 3abc2c3 commit cac73f8

File tree

2 files changed

+18
-32
lines changed

2 files changed

+18
-32
lines changed

toolchain/toolchain/python/icmtoolchain/java_build.py

+12-26
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,12 @@
1414
from .language import get_language_directories
1515
from .shell import abort, debug, error, info, warn
1616
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)
2020

2121
BuildTarget = namedtuple("BuildTarget", "directory relative_directory output_directory manifest classpath")
2222

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-
3223
def collect_classpath_files(directories: Optional[Collection[str]]) -> List[str]:
3324
classpath = list()
3425
if not directories:
@@ -460,10 +451,9 @@ def get_java_build_targets(directories: Dict[str, BaseConfig]) -> List[BuildTarg
460451
targets = list()
461452

462453
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)
467457

468458
with open(join(directory, "manifest"), encoding="utf-8") as manifest:
469459
try:
@@ -473,8 +463,6 @@ def get_java_build_targets(directories: Dict[str, BaseConfig]) -> List[BuildTarg
473463
except json.JSONDecodeError as exc:
474464
raise RuntimeCodeError(2, f"* Malformed java directory {directory!r} manifest, you should fix it: {exc.msg}.")
475465

476-
output_directory = GLOBALS.MOD_STRUCTURE.new_build_target("java", relative_directory)
477-
ensure_directory(output_directory)
478466
classpath = collect_classpath_files(config.get_value("classpath"))
479467
target = BuildTarget(directory, relative_directory, output_directory, config, classpath)
480468
targets.append(target)
@@ -569,16 +557,14 @@ def compile_java(tool: str = "gradle") -> int:
569557
except RuntimeCodeError as exc:
570558
error(exc)
571559
return exc.code
572-
if len(directories) == 0:
573-
GLOBALS.MOD_STRUCTURE.update_build_config_list("javaDirs")
574-
return 0
575560

576561
overall_result = build_java_directories(tool, directories, target_directory)
577562

578563
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}.")
584570
return overall_result

toolchain/toolchain/python/icmtoolchain/native_build.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,9 @@ def get_native_build_targets(directories: Dict[str, BaseConfig]) -> List[BuildTa
116116
targets = list()
117117

118118
for directory, config in directories.items():
119-
# TODO: Maybe move logic to relative directory instead of hashed one.
120-
# relative_directory = config.get_value("directory")
121-
# assert relative_directory, "Internal error, relative directory cannot be empty."
122-
relative_directory = GLOBALS.MAKE_CONFIG.unique_folder_name(directory)
119+
relative_directory = basename(directory)
120+
output_directory = GLOBALS.MOD_STRUCTURE.new_build_target("native", relative_directory)
121+
ensure_directory(output_directory)
123122

124123
# Apply global configurations to preserve keepIncludes, etc. in builds.
125124
configurations = config.get_config("configurations")
@@ -139,8 +138,6 @@ def get_native_build_targets(directories: Dict[str, BaseConfig]) -> List[BuildTa
139138
except json.JSONDecodeError as exc:
140139
raise RuntimeCodeError(2, f"* Malformed native directory {directory!r} manifest, you should fix it: {exc.msg}.")
141140

142-
output_directory = GLOBALS.MOD_STRUCTURE.new_build_target("native", relative_directory)
143-
ensure_directory(output_directory)
144141
stdincludes = collect_stdincludes_directories(config.get_value("stdincludes"))
145142
target = BuildTarget(directory, relative_directory, output_directory, config, stdincludes)
146143
targets.append(target)
@@ -152,6 +149,7 @@ def build_native_with_ndk(directory: str, output_directory: str, target_director
152149
library_name = manifest.get_value("shared.name", basename(directory))
153150
if len(library_name) == 0 or library_name.isspace() or (manifest.get_value("shared") and library_name == "unnamed"):
154151
abort(f"Library directory {directory} uses illegal name {library_name!r}!", code=CODE_FAILED_INVALID_MANIFEST)
152+
155153
soname = "lib" + library_name + ".so"
156154
if manifest.get_value("library.version", -1) < 0 and manifest.get_value("library"):
157155
abort(f"Library directory {directory} shares library with illegal version!", code=CODE_FAILED_INVALID_MANIFEST)
@@ -252,6 +250,8 @@ def build_native_with_ndk(directory: str, output_directory: str, target_director
252250
pass
253251
else:
254252
warn(f"* Dependency directory {dependency} is not found, it will be skipped.")
253+
for include in manifest_abi.get_list("include"):
254+
includes.append("-I" + join(directory, include))
255255

256256
# Collect files and prepare output cache directories.
257257
source_files = get_all_files(directory, extensions=(".cpp", ".c"))

0 commit comments

Comments
 (0)