From 079996f880979b7fc8ff722c4fd314e2dec352e4 Mon Sep 17 00:00:00 2001 From: Minjae Kim Date: Fri, 24 Jan 2025 15:38:17 +0900 Subject: [PATCH 1/4] add ndk_path --- BUILD.ndk_clang.tpl | 1 + ndk_cc_toolchain_config.bzl | 23 ++++++++++++----------- rules.bzl | 1 + 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/BUILD.ndk_clang.tpl b/BUILD.ndk_clang.tpl index 79cb41c..a0abc3b 100644 --- a/BUILD.ndk_clang.tpl +++ b/BUILD.ndk_clang.tpl @@ -41,6 +41,7 @@ cc_toolchain_suite( target_system_name = target_system_name, toolchain_identifier = "toolchain_identifier_%s" % target_system_name, executable_extension = "{executable_extension}", + ndk_path = "{ndk_path}", ) for target_system_name in TARGET_SYSTEM_NAMES] filegroup( diff --git a/ndk_cc_toolchain_config.bzl b/ndk_cc_toolchain_config.bzl index f668c3e..8c82b72 100644 --- a/ndk_cc_toolchain_config.bzl +++ b/ndk_cc_toolchain_config.bzl @@ -1459,17 +1459,17 @@ def ndk_cc_toolchain_config_rule_implementation(ctx): api_level = ctx.attr.api_level, target_system_name = ctx.attr.target_system_name, tools = { - "clang": "bin/clang" + ctx.attr.executable_extension, - "ar": "bin/llvm-ar" + ctx.attr.executable_extension, - "cpp": "bin/clang++" + ctx.attr.executable_extension, - "dwp": "bin/llvm-dwp" + ctx.attr.executable_extension, - "gcc": "bin/clang" + ctx.attr.executable_extension, - "gcov": "bin/gcov" + ctx.attr.executable_extension, - "ld": "bin/ld" + ctx.attr.executable_extension, - "nm": "bin/llvm-nm" + ctx.attr.executable_extension, - "objcopy": "bin/llvm-objcopy" + ctx.attr.executable_extension, - "objdump": "bin/llvm-objdump" + ctx.attr.executable_extension, - "strip": "bin/llvm-strip" + ctx.attr.executable_extension, + "clang": ctx.attr.ndk_path + "bin/clang" + ctx.attr.executable_extension, + "ar": ctx.attr.ndk_path + "bin/llvm-ar" + ctx.attr.executable_extension, + "cpp": ctx.attr.ndk_path + "bin/clang++" + ctx.attr.executable_extension, + "dwp": ctx.attr.ndk_path + "bin/llvm-dwp" + ctx.attr.executable_extension, + "gcc": ctx.attr.ndk_path + "bin/clang" + ctx.attr.executable_extension, + "gcov": ctx.attr.ndk_path + "bin/gcov" + ctx.attr.executable_extension, + "ld": ctx.attr.ndk_path + "bin/ld" + ctx.attr.executable_extension, + "nm": ctx.attr.ndk_path + "bin/llvm-nm" + ctx.attr.executable_extension, + "objcopy": ctx.attr.ndk_path + "bin/llvm-objcopy" + ctx.attr.executable_extension, + "objdump": ctx.attr.ndk_path + "bin/llvm-objdump" + ctx.attr.executable_extension, + "strip": ctx.attr.ndk_path + "bin/llvm-strip" + ctx.attr.executable_extension, }, cxx_builtin_include_directories = [ "sysroot/usr/include/c++/v1", @@ -1511,6 +1511,7 @@ ndk_cc_toolchain_config_rule = rule( ), "toolchain_identifier": attr.string(mandatory = True), "executable_extension": attr.string(default = ""), + "ndk_path": attr.string(default = ""), }, ) diff --git a/rules.bzl b/rules.bzl index 9f76a87..b3fb380 100644 --- a/rules.bzl +++ b/rules.bzl @@ -88,6 +88,7 @@ def _android_ndk_repository_impl(ctx): "{clang_resource_directory}": clang_resource_directory, "{sysroot_directory}": sysroot_directory, "{executable_extension}": executable_extension, + "{ndk_path}": ndk_path, }, executable = False, ) From 8ddfa8e6277ebaf723a561674f8564a820631e2b Mon Sep 17 00:00:00 2001 From: Minjae Kim Date: Sat, 25 Jan 2025 09:10:16 +0000 Subject: [PATCH 2/4] propagate clang directory --- BUILD.ndk_clang.tpl | 1 + ndk_cc_toolchain_config.bzl | 23 ++++++++++++----------- rules.bzl | 1 + 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/BUILD.ndk_clang.tpl b/BUILD.ndk_clang.tpl index a0abc3b..a2c9f60 100644 --- a/BUILD.ndk_clang.tpl +++ b/BUILD.ndk_clang.tpl @@ -42,6 +42,7 @@ cc_toolchain_suite( toolchain_identifier = "toolchain_identifier_%s" % target_system_name, executable_extension = "{executable_extension}", ndk_path = "{ndk_path}", + clang_directory = "{clang_directory}", ) for target_system_name in TARGET_SYSTEM_NAMES] filegroup( diff --git a/ndk_cc_toolchain_config.bzl b/ndk_cc_toolchain_config.bzl index 8c82b72..46eecb2 100644 --- a/ndk_cc_toolchain_config.bzl +++ b/ndk_cc_toolchain_config.bzl @@ -1459,17 +1459,17 @@ def ndk_cc_toolchain_config_rule_implementation(ctx): api_level = ctx.attr.api_level, target_system_name = ctx.attr.target_system_name, tools = { - "clang": ctx.attr.ndk_path + "bin/clang" + ctx.attr.executable_extension, - "ar": ctx.attr.ndk_path + "bin/llvm-ar" + ctx.attr.executable_extension, - "cpp": ctx.attr.ndk_path + "bin/clang++" + ctx.attr.executable_extension, - "dwp": ctx.attr.ndk_path + "bin/llvm-dwp" + ctx.attr.executable_extension, - "gcc": ctx.attr.ndk_path + "bin/clang" + ctx.attr.executable_extension, - "gcov": ctx.attr.ndk_path + "bin/gcov" + ctx.attr.executable_extension, - "ld": ctx.attr.ndk_path + "bin/ld" + ctx.attr.executable_extension, - "nm": ctx.attr.ndk_path + "bin/llvm-nm" + ctx.attr.executable_extension, - "objcopy": ctx.attr.ndk_path + "bin/llvm-objcopy" + ctx.attr.executable_extension, - "objdump": ctx.attr.ndk_path + "bin/llvm-objdump" + ctx.attr.executable_extension, - "strip": ctx.attr.ndk_path + "bin/llvm-strip" + ctx.attr.executable_extension, + "clang": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/clang" + ctx.attr.executable_extension, + "ar": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-ar" + ctx.attr.executable_extension, + "cpp": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/clang++" + ctx.attr.executable_extension, + "dwp": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-dwp" + ctx.attr.executable_extension, + "gcc": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/clang" + ctx.attr.executable_extension, + "gcov": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/gcov" + ctx.attr.executable_extension, + "ld": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/ld" + ctx.attr.executable_extension, + "nm": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-nm" + ctx.attr.executable_extension, + "objcopy": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-objcopy" + ctx.attr.executable_extension, + "objdump": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-objdump" + ctx.attr.executable_extension, + "strip": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-strip" + ctx.attr.executable_extension, }, cxx_builtin_include_directories = [ "sysroot/usr/include/c++/v1", @@ -1512,6 +1512,7 @@ ndk_cc_toolchain_config_rule = rule( "toolchain_identifier": attr.string(mandatory = True), "executable_extension": attr.string(default = ""), "ndk_path": attr.string(default = ""), + "clang_directory": attr.string(default = ""), }, ) diff --git a/rules.bzl b/rules.bzl index b3fb380..c8b3c88 100644 --- a/rules.bzl +++ b/rules.bzl @@ -89,6 +89,7 @@ def _android_ndk_repository_impl(ctx): "{sysroot_directory}": sysroot_directory, "{executable_extension}": executable_extension, "{ndk_path}": ndk_path, + "{clang_directory}": clang_directory, }, executable = False, ) From af11b47c2742d397b97749c689f17b5a4f473f92 Mon Sep 17 00:00:00 2001 From: Minjae Kim Date: Sat, 25 Jan 2025 09:24:56 +0000 Subject: [PATCH 3/4] fix cxx_builtin_include_directories also have absolute paths --- ndk_cc_toolchain_config.bzl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ndk_cc_toolchain_config.bzl b/ndk_cc_toolchain_config.bzl index 46eecb2..7bc3c46 100644 --- a/ndk_cc_toolchain_config.bzl +++ b/ndk_cc_toolchain_config.bzl @@ -1442,6 +1442,8 @@ def ndk_cc_toolchain_config( ), ] + print(config) + return dict( action_configs = action_configs, features = features, @@ -1472,11 +1474,11 @@ def ndk_cc_toolchain_config_rule_implementation(ctx): "strip": ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/bin/llvm-strip" + ctx.attr.executable_extension, }, cxx_builtin_include_directories = [ - "sysroot/usr/include/c++/v1", - "sysroot/usr/local/include", - ctx.attr.clang_resource_directory, - "sysroot/usr/include/%s" % ctx.attr.target_system_name, - "sysroot/usr/include", + ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/sysroot/usr/include/c++/v1", + ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/sysroot/usr/local/include", + ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/" + ctx.attr.clang_resource_directory, + ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/sysroot/usr/include/%s" % ctx.attr.target_system_name, + ctx.attr.ndk_path + "/" + ctx.attr.clang_directory + "/sysroot/usr/include", ], toolchain_identifier = ctx.attr.toolchain_identifier, target_cpu = { From 936cdc984e102d593079773d31cfbe7f5b97a20f Mon Sep 17 00:00:00 2001 From: Minjae Kim Date: Sat, 25 Jan 2025 09:25:27 +0000 Subject: [PATCH 4/4] remove debug print --- ndk_cc_toolchain_config.bzl | 2 -- 1 file changed, 2 deletions(-) diff --git a/ndk_cc_toolchain_config.bzl b/ndk_cc_toolchain_config.bzl index 7bc3c46..6158550 100644 --- a/ndk_cc_toolchain_config.bzl +++ b/ndk_cc_toolchain_config.bzl @@ -1442,8 +1442,6 @@ def ndk_cc_toolchain_config( ), ] - print(config) - return dict( action_configs = action_configs, features = features,