Skip to content

Commit 1111408

Browse files
andy31415andreilitvinrestyled-commits
authored andcommitted
Make output class directory unique for java (#26893)
* Make output class directory unique for java * Restyled by gn * Undo unintentional change * Do not attempt to compile pure java variant for android (keep only linux and mac generally) * Fix required jar: tlv now needs copy as the tlv content is not part of controller anymore * Fix unit test * Fix typo in jar naming * Fix javatest classpath now that libraries are properly separated * Add more lib paths as needed for the controller run * Restyle --------- Co-authored-by: Andrei Litvin <[email protected]> Co-authored-by: Restyled.io <[email protected]>
1 parent 3139e46 commit 1111408

File tree

5 files changed

+40
-14
lines changed

5 files changed

+40
-14
lines changed

build/chip/java/config.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ java_path = getenv("JAVA_PATH")
1616
declare_args() {
1717
java_matter_controller_dependent_paths = []
1818
build_java_matter_controller = false
19-
if (java_path != "") {
19+
if (java_path != "" && current_os != "android") {
2020
java_matter_controller_dependent_paths += [ "${java_path}/include/" ]
2121

2222
if (current_os == "mac") {

build/chip/java/rules.gni

+8-4
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ template("java_library") {
127127

128128
# Compiles the given files into a directory and generates a 'class list'
129129
_javac_target_name = target_name + "__javac"
130-
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/classes"
130+
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/" +
131+
target_name + "/classes"
131132
_class_list_file = "$target_gen_dir/$target_name.classlist"
132133
action(_javac_target_name) {
133134
sources = _java_files
@@ -284,7 +285,8 @@ template("java_binary") {
284285

285286
# Compiles the given files into a directory and generates a 'class list'
286287
_javac_target_name = target_name + "__javac"
287-
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/classes"
288+
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/" +
289+
target_name + "/classes"
288290
_class_list_file = "$target_gen_dir/$target_name.classlist"
289291
action(_javac_target_name) {
290292
sources = _java_files
@@ -441,7 +443,8 @@ template("kotlin_library") {
441443

442444
# Compiles the given files into a directory and generates a 'class list'
443445
_kotlinc_target_name = target_name + "__kotlinc"
444-
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/classes"
446+
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/" +
447+
target_name + "/classes"
445448
_class_list_file = "$target_gen_dir/$target_name.classlist"
446449
action(_kotlinc_target_name) {
447450
sources = _kotlin_files
@@ -598,7 +601,8 @@ template("kotlin_binary") {
598601

599602
# Compiles the given files into a directory and generates a 'class list'
600603
_kotlinc_target_name = target_name + "__kotlinc"
601-
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/classes"
604+
_class_dir = rebase_path(target_out_dir, root_build_dir) + "/" +
605+
target_name + "/classes"
602606
_class_list_file = "$target_gen_dir/$target_name.classlist"
603607
action(_kotlinc_target_name) {
604608
sources = _kotlin_files

scripts/build/builders/android.py

+20-8
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ def validate_build_environment(self):
153153
if not (
154154
os.path.isfile(sdk_manager) and os.access(sdk_manager, os.X_OK)
155155
) and not (
156-
os.path.isfile(new_sdk_manager) and os.access(new_sdk_manager, os.X_OK)
156+
os.path.isfile(new_sdk_manager) and os.access(
157+
new_sdk_manager, os.X_OK)
157158
):
158159
raise Exception(
159160
"'%s' and '%s' is not executable by the current user"
@@ -227,6 +228,7 @@ def copyToSrcAndroid(self):
227228
"CHIPController.jar": "src/controller/java/CHIPController.jar",
228229
"SetupPayloadParser.jar": "src/setup_payload/java/SetupPayloadParser.jar",
229230
"AndroidPlatform.jar": "src/platform/android/AndroidPlatform.jar",
231+
"libCHIPTlv.jar": "src/controller/java/libCHIPTlv.jar",
230232
}
231233

232234
for jarName in jars.keys():
@@ -267,7 +269,8 @@ def gradlewBuildSrcAndroid(self):
267269
# App compilation
268270
self._Execute(
269271
[
270-
"%s/examples/android/%s/gradlew" % (self.root, self.app.AppName()),
272+
"%s/examples/android/%s/gradlew" % (
273+
self.root, self.app.AppName()),
271274
"-p",
272275
"%s/examples/android/%s" % (self.root, self.app.AppName()),
273276
"-PmatterBuildSrcDir=%s" % self.output_dir,
@@ -295,15 +298,17 @@ def gradlewBuildExampleAndroid(self):
295298
"-PbuildDir=%s/%s" % (self.output_dir, module),
296299
":%s:assembleDebug" % module,
297300
],
298-
title="Building Example %s, module %s" % (self.identifier, module),
301+
title="Building Example %s, module %s" % (
302+
self.identifier, module),
299303
)
300304
else:
301305
self._Execute(
302306
[
303307
"%s/examples/%s/android/App/gradlew"
304308
% (self.root, self.app.ExampleName()),
305309
"-p",
306-
"%s/examples/%s/android/App/" % (self.root, self.app.ExampleName()),
310+
"%s/examples/%s/android/App/" % (self.root,
311+
self.app.ExampleName()),
307312
"-PmatterBuildSrcDir=%s" % self.output_dir,
308313
"-PmatterSdkSourceBuild=false",
309314
"-PbuildDir=%s" % self.output_dir,
@@ -359,7 +364,8 @@ def generate(self):
359364

360365
exampleName = self.app.ExampleName()
361366
if exampleName is not None:
362-
gn_gen += ["--root=%s/examples/%s/android/" % (self.root, exampleName)]
367+
gn_gen += ["--root=%s/examples/%s/android/" %
368+
(self.root, exampleName)]
363369

364370
if self.board.IsIde():
365371
gn_gen += [
@@ -378,7 +384,8 @@ def generate(self):
378384
)
379385
if os.path.isfile(new_sdk_manager) and os.access(new_sdk_manager, os.X_OK):
380386
self._Execute(
381-
["bash", "-c", "yes | %s --licenses >/dev/null" % new_sdk_manager],
387+
["bash", "-c", "yes | %s --licenses >/dev/null" %
388+
new_sdk_manager],
382389
title="Accepting NDK licenses @ cmdline-tools",
383390
)
384391
else:
@@ -414,7 +421,8 @@ def _build(self):
414421
# TODO: Android Gradle with module and -PbuildDir= will caused issue, remove -PbuildDir=
415422
self._Execute(
416423
[
417-
"%s/examples/android/%s/gradlew" % (self.root, self.app.AppName()),
424+
"%s/examples/android/%s/gradlew" % (
425+
self.root, self.app.AppName()),
418426
"-p",
419427
"%s/examples/android/%s" % (self.root, self.app.AppName()),
420428
"-PmatterBuildSrcDir=%s" % self.output_dir,
@@ -470,7 +478,8 @@ def _build(self):
470478
self.root, "examples/", self.app.ExampleName(), "android/App/app/libs"
471479
)
472480

473-
libs = ["libSetupPayloadParser.so", "libc++_shared.so", "libTvApp.so"]
481+
libs = ["libSetupPayloadParser.so",
482+
"libc++_shared.so", "libTvApp.so"]
474483

475484
jars = {
476485
"SetupPayloadParser.jar": "third_party/connectedhomeip/src/setup_payload/java/SetupPayloadParser.jar",
@@ -520,6 +529,9 @@ def build_outputs(self):
520529
"CHIPController.jar": os.path.join(
521530
self.output_dir, "lib", "src/controller/java/CHIPController.jar"
522531
),
532+
"libCHIPTlv.jar": os.path.join(
533+
self.output_dir, "lib", "src/controller/java/libCHIPTlv.jar"
534+
),
523535
"AndroidPlatform.jar": os.path.join(
524536
self.output_dir, "lib", "src/platform/android/AndroidPlatform.jar"
525537
),

scripts/build/testdata/dry_run_android-arm64-chip-tool.txt

+2
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,7 @@ cp {out}/android-arm64-chip-tool/lib/src/setup_payload/java/SetupPayloadParser.j
3131

3232
cp {out}/android-arm64-chip-tool/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTool/app/libs/AndroidPlatform.jar
3333

34+
cp {out}/android-arm64-chip-tool/lib/src/controller/java/libCHIPTlv.jar {root}/examples/android/CHIPTool/app/libs/libCHIPTlv.jar
35+
3436
# Building APP android-arm64-chip-tool
3537
{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-arm64-chip-tool -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-chip-tool assembleDebug

scripts/tests/run_java_test.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,15 @@ def main(app: str, app_args: str, tool_path: str, tool_cluster: str, tool_args:
8888
DumpProgramOutputToQueue(
8989
log_cooking_threads, Fore.GREEN + "APP " + Style.RESET_ALL, app_process, log_queue)
9090

91-
command = ['java', '-Djava.library.path=' + tool_path + '/lib/jni', '-jar', tool_path + '/bin/java-matter-controller']
91+
command = ['java',
92+
f'-Djava.library.path={tool_path}/lib/jni',
93+
'-cp',
94+
':'.join([
95+
f'{tool_path}/lib/*',
96+
f'{tool_path}/lib/third_party/connectedhomeip/src/controller/java/*',
97+
f'{tool_path}/bin/java-matter-controller',
98+
]),
99+
'com.matter.controller.MainKt']
92100

93101
if tool_cluster == 'pairing':
94102
logging.info("Testing pairing cluster")

0 commit comments

Comments
 (0)