summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzaverden <[email protected]>2025-03-25 06:29:48 +0300
committerzaverden <[email protected]>2025-03-25 06:46:34 +0300
commit002d22d192163baf71d1fa2e401f312784b60849 (patch)
tree16165413a01eb3b031723d0bc968f99d97beaac6
parent7250aa1f61673aa672809372a0a8b338e5361ccd (diff)
feat(conf): JAVA_RESOURCE_TAR
commit_hash:d0f3aef0673ee6866c204589c0131efbf0dfc54c
-rw-r--r--build/conf/java.conf12
-rw-r--r--build/plugins/java.py8
2 files changed, 20 insertions, 0 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf
index 1e2081fca2e..4eb0a87b341 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -1842,6 +1842,18 @@ macro JAVA_SRCS(Args...) {
_SEM_JAR_SOURCE_SET($Args)
}
+### @usage: JAVA_RESOURCE_TAR(tar_path EXTRACT_ROOT root_dir)
+###
+### Adds tar content as resources
+###
+### Documentation: https://docs.yandex-team.ru/ya-make/manual/java/macros#java_resource_tar
+macro JAVA_RESOURCE_TAR(TAR, EXTRACT_ROOT="<required>") {
+ COPY_FILE($TAR $EXTRACT_ROOT/${suf=.gentar;nopath:TAR})
+ FULL_JAVA_SRCS(SRCDIR $BINDIR $EXTRACT_ROOT/**/* EXCLUDE **/*.gentar)
+ _JAVA_RESOURCE_TAR_VALIDATE_EXTRACT_ROOT($EXTRACT_ROOT)
+}
+
+
# tag:java-specific
JAVA_ADD_DLLS_VALUE=no
macro ADD_DLLS_TO_JAR() {
diff --git a/build/plugins/java.py b/build/plugins/java.py
index f95c08cea81..fdc45d452b7 100644
--- a/build/plugins/java.py
+++ b/build/plugins/java.py
@@ -367,3 +367,11 @@ def on_setup_project_coords_if_needed(unit, *args):
else:
value = 'project(\\":{}\\")'.format(project_dir.replace('/', ':'))
unit.set(['EXPORT_GRADLE_CLASSPATH', value])
+
+
+def on_java_resource_tar_validate_extract_root(unit, extract_root):
+ if extract_root == '<required>':
+ ymake.report_configure_error(
+ 'Macro JAVA_RESOURCE_TAR requires to set EXTRACT_ROOT. '
+ 'Usage JAVA_RESOURCE_TAR(tar_path EXTRACT_ROOT root_dir)'
+ )