Browse Source

Use clang-format resource in style cpp linter

Use clang-format resouce in style cpp linter
commit_hash:440dce939163f75f5652a9d119a2d5f064e47e6e
alevitskii 3 months ago
parent
commit
2d3e35f925

+ 19 - 0
build/platform/clang/clang-format/clang-format16.json

@@ -0,0 +1,19 @@
+{
+    "by_platform": {
+        "darwin": {
+            "uri": "sbr:7402815718"
+        },
+        "darwin-arm64": {
+            "uri": "sbr:7402814010"
+        },
+        "linux": {
+            "uri": "sbr:7402818343"
+        },
+        "linux-aarch64": {
+            "uri": "sbr:7402817039"
+        },
+        "win32-clang-cl": {
+            "uri": "sbr:7402812744"
+        }
+    }
+}

+ 7 - 0
build/platform/clang/clang-format/ya.make

@@ -0,0 +1,7 @@
+RESOURCES_LIBRARY()
+
+# Note: the json below is also referred from build/ya.conf.json,
+# please change these references consistently
+DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(CLANG_FORMAT clang-format16.json)
+
+END()

+ 1 - 0
build/plugins/lib/test_const/__init__.py

@@ -184,6 +184,7 @@ JSTYLE_RUNNER_LIB = 'JSTYLE_LIB_RESOURCE_GLOBAL'
 NODEJS_RESOURCE = 'NODEJS_RESOURCE_GLOBAL'
 NYC_RESOURCE = 'NYC_RESOURCE_GLOBAL'
 RUFF_RESOURCE = 'RUFF_RESOURCE_GLOBAL'
+CLANG_FORMAT_RESOURCE = 'CLANG_FORMAT_RESOURCE_GLOBAL'
 
 # test_tool resource for host platform.
 # source - build/platform/test_tool/host.ya.make.inc.

+ 2 - 2
build/ymake.core.conf

@@ -5839,7 +5839,7 @@ macro YA_CONF_JSON(File) {
 ###
 ### Proxy. Don't use. Call _ADD_CPP_LINTER_CHECK directly if you need a new macro, see STYLE_CPP
 macro _STYLE_CPP(CONFIG...) {
-    _ADD_CPP_LINTER_CHECK(NAME clang_format LINTER tools/cpp_style_checker/cpp_style_checker DEPENDS contrib/libs/clang16/tools/clang-format CONFIGS $CPP_LINTERS_DEFAULT_CONFIGS CUSTOM_CONFIG $CONFIG)
+    _ADD_CPP_LINTER_CHECK(NAME clang_format LINTER tools/cpp_style_checker/cpp_style_checker GLOBAL_RESOURCES build/platform/clang/clang-format CONFIGS $CPP_LINTERS_DEFAULT_CONFIGS CUSTOM_CONFIG $CONFIG)
 }
 
 # tag:internal
@@ -5858,7 +5858,7 @@ macro _ADD_CPP_LINTER_CHECK(Args...) {
 ### Run 'ya tool clang-format' test on all cpp sources and headers of the current module
 macro STYLE_CPP() {
     .ALLOWED_IN_COMMON=yes
-    _ADD_CPP_LINTER_CHECK(NAME clang_format LINTER tools/cpp_style_checker/cpp_style_checker DEPENDS contrib/libs/clang16/tools/clang-format CONFIGS $CPP_LINTERS_DEFAULT_CONFIGS)
+    _ADD_CPP_LINTER_CHECK(NAME clang_format LINTER tools/cpp_style_checker/cpp_style_checker GLOBAL_RESOURCES build/platform/clang/clang-format CONFIGS $CPP_LINTERS_DEFAULT_CONFIGS)
 }
 
 ### @usage: HEADERS(<Dirs...> [EXCLUDE patterns...])

+ 3 - 1
tools/cpp_style_checker/__main__.py

@@ -1,9 +1,11 @@
 import difflib
 import json
+import os
 import subprocess
 import time
 import yaml
 
+from build.plugins.lib.test_const import CLANG_FORMAT_RESOURCE
 from library.python.testing.custom_linter_util import linter_params, reporter
 from library.python.testing.style import rules
 
@@ -11,7 +13,7 @@ from library.python.testing.style import rules
 def main():
     params = linter_params.get_params()
 
-    clang_format_binary = params.depends["contrib/libs/clang16/tools/clang-format/clang-format"]
+    clang_format_binary = os.path.join(params.global_resources[CLANG_FORMAT_RESOURCE], 'clang-format')
     style_config_path = params.configs[0]
 
     with open(style_config_path) as f:

+ 1 - 0
tools/cpp_style_checker/ya.make

@@ -1,6 +1,7 @@
 PY3_PROGRAM()
 
 PEERDIR(
+    build/plugins/lib/test_const
     contrib/python/PyYAML
     library/python/testing/custom_linter_util
     library/python/testing/style