diff options
author | robot-srch-releaser <robot-srch-releaser@yandex-team.com> | 2023-09-12 21:05:25 +0300 |
---|---|---|
committer | robot-srch-releaser <robot-srch-releaser@yandex-team.com> | 2023-09-12 21:52:59 +0300 |
commit | 780cb95adbe3fda525a69fa319bb44e52c5d89ad (patch) | |
tree | 1c4400144ff0946658b2e80da75d416a7fe386f2 /build/conf/project_specific | |
parent | c8d096252888a36a59d8f192945c4a09e9c6cc88 (diff) | |
download | ydb-780cb95adbe3fda525a69fa319bb44e52c5d89ad.tar.gz |
Rollback: rXXXXXX
[diff-resolver:snermolaev]
Sandbox task: https://sandbox.yandex-team.ru/task/1925190358/view
Task author: robot-srch-releaser@
Commit was made by robot-srch-releaser@, but committer is deshevoy@
Description:
Note: mandatory check (NEED_CHECK) was skipped
Diffstat (limited to 'build/conf/project_specific')
-rw-r--r-- | build/conf/project_specific/alice/nlg.conf | 25 | ||||
-rw-r--r-- | build/conf/project_specific/esp.conf | 136 | ||||
-rw-r--r-- | build/conf/project_specific/maps/aar.conf | 338 | ||||
-rw-r--r-- | build/conf/project_specific/maps/asrc.conf | 121 | ||||
-rw-r--r-- | build/conf/project_specific/maps/sproto.conf | 21 | ||||
-rw-r--r-- | build/conf/project_specific/uservices.conf | 41 |
6 files changed, 682 insertions, 0 deletions
diff --git a/build/conf/project_specific/alice/nlg.conf b/build/conf/project_specific/alice/nlg.conf new file mode 100644 index 0000000000..a04b181c9e --- /dev/null +++ b/build/conf/project_specific/alice/nlg.conf @@ -0,0 +1,25 @@ +# tag:nlg +### @usage: COMPILE_NLG(NLG_CONFIG nlg_config.json, [TRANSLATIONS_JSON translations.json], Files...) +### +### Generate and compile .nlg templates (Jinja2-based). +### +### Alice-specific macro. +macro COMPILE_NLG(NLG_CONFIG="", TRANSLATIONS_JSON="", FILES...) { + when ($NLG_CONFIG) { + NLG_CONFIG_JSON_OPT=--nlg-config-json + } + otherwise { + NLG_CONFIG_JSON_OPT= + } + + when ($TRANSLATIONS_JSON) { + TRANSLATIONS_JSON_OPT=--translations-json + } + otherwise { + TRANSLATIONS_JSON_OPT= + } + + PEERDIR(alice/nlg/library/nlg_project_runtime) + RUN_PROGRAM(alice/nlg/tools/codegen compile-cpp --import-dir ${ARCADIA_ROOT} --out-dir ${ARCADIA_BUILD_ROOT} --include-prefix ${MODDIR} $NLG_CONFIG_JSON_OPT $NLG_CONFIG $TRANSLATIONS_JSON_OPT $TRANSLATIONS_JSON $FILES IN $NLG_CONFIG $TRANSLATIONS_JSON $FILES OUT_NOAUTO register.cpp localizable_phrases.pb.txt ${suf=.pb.txt:FILES} OUT nlg_renderer_factory.cpp nlg_renderer_factory.h translations.cpp translations.h ${suf=.cpp:FILES} ${suf=.h:FILES}) + SRCS(GLOBAL register.cpp) +} diff --git a/build/conf/project_specific/esp.conf b/build/conf/project_specific/esp.conf new file mode 100644 index 0000000000..ce939d1629 --- /dev/null +++ b/build/conf/project_specific/esp.conf @@ -0,0 +1,136 @@ +ESP_KCONFIGS= +ESP_KCONFIGS_PROJBUILD= +ESP_LDFRAGMENTS= +ESP_SDKCONFIG_RENAMES= + +macro ESP_KCONFIG(Kconfig) { + SET_APPEND(ESP_KCONFIGS \${input;hide:$Kconfig}) + SET_APPEND(ESP_KCONFIGS_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Kconfig}) +} + +macro ESP_KCONFIG_PROJBUILD(Kconfig) { + SET_APPEND(ESP_KCONFIGS_PROJBUILD \${input;hide:$Kconfig}) + SET_APPEND(ESP_KCONFIGS_PROJBUILD_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Kconfig}) +} + +macro ESP_LDFRAGMENTS(Fragments...) { + SET_APPEND(ESP_LDFRAGMENTS ${pre=\$\{input\;hide\:\";suf=\"\}:Fragments}) + SET_APPEND(ESP_LDFRAGMENTS_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Fragments}) +} + +macro ESP_SDKCONFIG_RENAME(Rename) { + SET_APPEND(ESP_SDKCONFIG_RENAMES \${input;hide:$Rename}) + SET_APPEND(ESP_SDKCONFIG_RENAMES_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Rename}) +} + +ESP_LINK_LIB=$LINK_LIB $ESP_KCONFIGS $ESP_KCONFIGS_PROJBUILD $ESP_LDFRAGMENTS $ESP_SDKCONFIG_RENAMES + +ESP_CONFIG=contrib/libs/esp-idf/config + +module ESP_LIBRARY: LIBRARY { + .CMD=ESP_LINK_LIB + .GLOBAL=ESP_KCONFIGS ESP_KCONFIGS_PROJBUILD ESP_LDFRAGMENTS ESP_SDKCONFIG_RENAMES + + ADDINCL(GLOBAL $ESP_CONFIG) +} + +ESP_KCONFIGS_CMD=$WRITER_PY --file ${tmp:"kconfigs.in"} -m ${pre="source \"";suf="\"":ESP_KCONFIGS_GLOBAL} + +ESP_KCONFIGS_PROJBUILD_CMD=$WRITER_PY --file ${tmp:"kconfigs_projbuild.in"} -m ${pre="source \"";suf="\"":ESP_KCONFIGS_PROJBUILD_GLOBAL} + +ESP_SDKCONFIG_DEFAULTS=contrib/libs/esp-idf/sdkconfig.defaults + +macro _ESP_CONFGEN_DEFAULTS_HELPER(Defaults...) { + .CMD=${pre=--defaults :Defaults} +} + +macro _ESP_CONFGEN_DEFAULTS_ARGS(Defaults...) { + .CMD=$_ESP_CONFGEN_DEFAULTS_HELPER(${input:Defaults}) +} + +ESP_CONFGEN_CMD= \ + ${tool:"contrib/libs/esp-idf/tools/kconfig_new/confgen"} \ + $_ESP_CONFGEN_DEFAULTS_ARGS($ESP_SDKCONFIG_DEFAULTS) \ + --kconfig ${input:"contrib/libs/esp-idf/Kconfig"} \ + --sdkconfig-rename ${input:"contrib/libs/esp-idf/sdkconfig.rename"} \ + --env IDF_CMAKE=y \ + --env IDF_TARGET=esp32c3 \ + --env IDF_ENV_FPGA= \ + --env IDF_PATH=$ARCADIA_ROOT/contrib/libs/esp-idf \ + --env COMPONENT_KCONFIGS_SOURCE_FILE=${tmp:"kconfigs.in"} \ + --env COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE=${tmp:"kconfigs_projbuild.in"} \ + --env COMPONENT_SDKCONFIG_RENAMES=${join=" ":ESP_SDKCONFIG_RENAMES_GLOBAL} \ + --output config ${output:"sdkconfig"} \ + --output header ${output:"sdkconfig.h"} + +ESP_LIBRARIES_CMD=$WRITER_PY --file ${tmp:"ldgen_libraries"} -m $PEERS + +ESP_LDGEN_CMD= \ + ${tool:"contrib/libs/esp-idf/tools/ldgen"} \ + --config ${tmp:"sdkconfig"} \ + --fragments $ESP_LDFRAGMENTS_GLOBAL \ + --input ${input:"contrib/libs/esp-idf/components/esp_system/ld/esp32c3/sections.ld.in"} \ + --output ${output:"sections.ld"} \ + --kconfig ${input:"contrib/libs/esp-idf/Kconfig"} \ + --env IDF_CMAKE=y \ + --env IDF_TARGET=esp32c3 \ + --env IDF_ENV_FPGA= \ + --env IDF_PATH=$ARCADIA_ROOT/contrib/libs/esp-idf \ + --env COMPONENT_KCONFIGS_SOURCE_FILE=${tmp:"kconfigs.in"} \ + --env COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE=${tmp:"kconfigs_projbuild.in"} \ + --libraries-file ${tmp:"ldgen_libraries"} \ + --objdump $OBJDUMP_TOOL + +ESP_FLASH_SIZE=4MB + +macro _ESP_ELF2IMAGE(Elf, Args...) { + .CMD=${cwd:BINDIR} ${tool:"contrib/tools/esptool/esptool"} --chip esp32c3 elf2image $Args --flash_mode dio --flash_freq 80m --flash_size $ESP_FLASH_SIZE --min-rev 3 -o ${output;noext:Elf.bin} $Elf +} + +ESP_PARTITION_TABLE_OFFSET=0x8000 +ESP_PARTITION_TABLE=partitions.csv + +ESP_GEN_ESP32PART_CMD= \ + ${tool:"contrib/libs/esp-idf/components/partition_table/gen_esp32part"} \ + --flash-size $ESP_FLASH_SIZE \ + --offset $ESP_PARTITION_TABLE_OFFSET \ + --secure \ + ${input:ESP_PARTITION_TABLE} \ + ${output:"partition-table.bin"} + +ESP_LINK_EXE= \ + && $ESP_KCONFIGS_CMD \ + && $ESP_KCONFIGS_PROJBUILD_CMD \ + && $ESP_CONFGEN_CMD \ + && $ESP_LIBRARIES_CMD \ + && $ESP_LDGEN_CMD \ + && $ESP_GEN_ESP32PART_CMD \ + && $LINK_EXE \ + && $_ESP_ELF2IMAGE($MODULE_PREFIX$REALPRJNAME, "--secure-pad-v2") + +### @usage: ESP_PROGRAM([progname]) +### +### Program module for Espressif microcontrollers. +### Converts ELF to binary image file suitable for flashing. +### Currently, only ESP32-C3 is supported. +module ESP_PROGRAM: PROGRAM { + .CMD=ESP_LINK_EXE + .GLOBAL=ESP_KCONFIGS ESP_KCONFIGS_PROJBUILD ESP_LDFRAGMENTS ESP_SDKCONFIG_RENAMES + ALLOCATOR(FAKE) + NO_PLATFORM() + LINKER_SCRIPT_VALUE+=-T$ARCADIA_BUILD_ROOT/$MODDIR/sections.ld +} + +ESP_BOOTLOADER_LINK_EXE= \ + && $LINK_EXE \ + && $_ESP_ELF2IMAGE($MODULE_PREFIX$REALPRJNAME, "--pad-to-size", "4KB") + +module ESP_BOOTLOADER: PROGRAM { + .CMD=ESP_BOOTLOADER_LINK_EXE + ALLOCATOR(FAKE) + NO_PLATFORM() +} + +when ($ESP_BOOTLOADER_BUILD == "yes") { + CFLAGS+=-DBOOTLOADER_BUILD -fno-stack-protector +} diff --git a/build/conf/project_specific/maps/aar.conf b/build/conf/project_specific/maps/aar.conf new file mode 100644 index 0000000000..6f03e07c1f --- /dev/null +++ b/build/conf/project_specific/maps/aar.conf @@ -0,0 +1,338 @@ + +_GRADLE_FLAGS_VALUE= +### @usage: GRADLE_FLAGS(flags...) # internal +### +### SEt additional flags for gradle +macro GRADLE_FLAGS(FLAGS...) { + SET_APPEND(_GRADLE_FLAGS_VALUE $FLAGS) +} + +### @usage: PROGUARD_RULES(ProguardRuleFiles...) +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro PROGUARD_RULES(RULES...) { + SET_APPEND(_PROGUARD_RULES_GLOBAL $RULES) +} + +### @usage: AARS(Aars...) +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro AARS(DEPS...) { + SET_APPEND(_AARS_GLOBAL $DEPS) +} + +### @usage: MOBILE_DLL() # internal +module MOBILE_DLL: DLL { + .CMD=LINK_MOBILE_DLL + + PEERDIR(build/external_resources/android_sdk) + PEERDIR(build/external_resources/gradle) + PEERDIR(build/platform/java/jdk) + PEERDIR($JDK_RESOURCE_PEERDIR) + + SET(BIN_AAR_DIR $BINDIR/aar) + SET(BIN_TMP_DIR $BINDIR/tmp) +} + +_MOBILE_TEST_APK_AAR_MANIFEST_VALUE= +### @usage: MOBILE_TEST_APK_AAR_MANIFEST(file) # internal +macro MOBILE_TEST_APK_AAR_MANIFEST(FILE) { + SET(_MOBILE_TEST_APK_AAR_MANIFEST_VALUE $FILE) +} + +_MOBILE_TEST_APK_AAR_PROGUARD_RULES_VALUE= +### @usage: MOBILE_TEST_APK_AAR_PROGUARD_RULES(file) # internal +macro MOBILE_TEST_APK_AAR_PROGUARD_RULES(FILE) { + SET(_MOBILE_TEST_APK_AAR_PROGUARD_RULES_VALUE $FILE) +} + +_MOBILE_TEST_APK_AAR_AARS_VALUE= +### @usage: MOBILE_TEST_APK_AAR_AARS(filenames...) # internal +macro MOBILE_TEST_APK_AAR_AARS(AARS...) { + SET_APPEND(_MOBILE_TEST_APK_AAR_AARS_VALUE $AARS) +} + +_MOBILE_TEST_APK_AAR_BUNDLES_VALUE= +### @usage: MOBILE_TEST_APK_AAR_BUNDLES(filenames...) # internal +macro MOBILE_TEST_APK_AAR_BUNDLES(BUNDLES...) { + SET_APPEND(_MOBILE_TEST_APK_AAR_BUNDLES_VALUE $BUNDLES) + BUNDLE_EXTRA_INPUTS($BUNDLES) +} + +_MOBILE_TEST_APK_TEMPLATE_DIR= +### @usage: MOBILE_TEST_APK_TEMPLATE(dir filenames...) # internal +macro MOBILE_TEST_APK_TEMPLATE(TEMPLATE_DIR, INPUTS...) { + SET(_MOBILE_TEST_APK_TEMPLATE_DIR $TEMPLATE_DIR) + BUNDLE_EXTRA_INPUTS(${pre=$TEMPLATE_DIR/:INPUTS}) +} + +_MOBILE_TEST_APK_CMDLINE=\ +$FS_TOOLS md $BIN_TMP_DIR \ +&& $FS_TOOLS md $BINDIR/.android \ +&& $COPY_CMD $GRADLE_DEBUG_STORE_RESOURCE_GLOBAL/debug.keystore $BINDIR/.android/debug.keystore \ +&& $FS_TOOLS md $BINDIR/jni_libs/$ARCH_NAME \ +&& $YMAKE_PYTHON ${input:"build/scripts/extract_asrc.py"} --output $BIN_TMP_DIR --input ${suf=.asrc:PEERS} \ +&& $MOVE_FILE $OUTPUT $BINDIR/jni_libs/$ARCH_NAME/${pre=lib;suf=.so:_MOBILE_TEST_APK_LIBRARY_NAME} \ +&& $FS_TOOLS md $BIN_AAR_DIR \ +&& $YMAKE_PYTHON ${input:"build/scripts/gen_aar_gradle_script.py"} \ +${input;hide:EXTRA_INPUTS} \ +--aidl-dirs $BIN_TMP_DIR/aidl \ +--assets-dirs $BIN_TMP_DIR/assets \ +--java-dirs $BIN_TMP_DIR/src \ +--jni-libs-dirs $BINDIR/jni_libs \ +--res-dirs $BIN_TMP_DIR/res \ +--manifest ${input:_MOBILE_TEST_APK_AAR_MANIFEST_VALUE} \ +--proguard-rules ${input:_MOBILE_TEST_APK_AAR_PROGUARD_RULES_VALUE} ${input:_PROGUARD_RULES_GLOBAL} \ +--aars $_MOBILE_TEST_APK_AAR_AARS_VALUE $_AARS_GLOBAL \ +--bundles $_MOBILE_TEST_APK_AAR_BUNDLES_VALUE \ +--output-dir $BIN_AAR_DIR \ +--bundle-name unittest \ +--maven-repos ${MAPSMOBI_MAVEN_REPO_RESOURCE_GLOBAL} \ +&& ${cwd:BIN_AAR_DIR} ${GRADLE_RESOURCE_GLOBAL}/bin/gradle $_GRADLE_FLAGS_VALUE --no-daemon --offline -g $BIN_GRADLE_USER_HOME_DIR assemble${_BUNDLE_BUILD_TYPE} ${env:"ANDROID_HOME=$ANDROID_SDK_RESOURCE_GLOBAL/android_sdk"} ${env:"JAVA_HOME=$JDK_RESOURCE"} ${env:"ANDROID_SDK_HOME=$BINDIR"} \ +&& $FS_TOOLS md $BIN_APK_DIR \ +&& $FS_TOOLS md $BIN_APK_DIR/res \ +&& $COPY_CMD $_MOBILE_TEST_APK_TEMPLATE_DIR/Manifest.xml $BIN_APK_DIR/Manifest.xml \ +&& $YMAKE_PYTHON ${input:"build/scripts/gen_test_apk_gradle_script.py"} \ +${input;hide:EXTRA_INPUTS} \ +--app-id $REALPRJNAME \ +--assets-dirs $_MOBILE_TEST_APK_ASSETS_DIRS_VALUE \ +--java-dirs $_MOBILE_TEST_APK_TEMPLATE_DIR/java \ +--jni-libs-dirs \ +--res-dirs $BIN_APK_DIR/res $_MOBILE_TEST_APK_TEMPLATE_DIR/res $BIN_TMP_DIR/res \ +--manifest Manifest.xml \ +--aars \ +--output-dir $BIN_APK_DIR \ +--bundle-name $REALPRJNAME \ +--bundles $BIN_AAR_DIR/build/outputs/aar/unittest-${tolower:_BUNDLE_BUILD_TYPE}.aar $_MOBILE_TEST_APK_AAR_BUNDLES_VALUE \ +--library-name $_MOBILE_TEST_APK_LIBRARY_NAME \ +--maven-repos ${MAPSMOBI_MAVEN_REPO_RESOURCE_GLOBAL} \ +&& ${cwd:BIN_APK_DIR} ${GRADLE_RESOURCE_GLOBAL}/bin/gradle $_GRADLE_FLAGS_VALUE --no-daemon --offline -g $BIN_GRADLE_USER_HOME_DIR assembleDebug ${env:"ANDROID_HOME=$ANDROID_SDK_RESOURCE_GLOBAL/android_sdk"} ${env:"JAVA_HOME=$JDK_RESOURCE"} ${env:"ANDROID_SDK_HOME=$BINDIR"} \ +&& $COPY_CMD $BIN_APK_DIR/build/outputs/apk/${tolower:_BUNDLE_BUILD_TYPE}/$REALPRJNAME.apk ${OUTPUT} + +_MOBILE_TEST_APK_EXTRA_INPUTS_VALUE= + +macro _MOBILE_TEST_APK_CMD_IMPL(OUTPUT, EXTRA_INPUTS...) { + .CMD=$_MOBILE_TEST_APK_CMDLINE +} + +_MOBILE_TEST_APK_CMD=$_MOBILE_TEST_APK_CMD_IMPL($TARGET $_BUNDLE_EXTRA_INPUTS_VALUE) + +LINK_MOBILE_TEST_APK=$LINK_DYN_LIB && $_MOBILE_TEST_APK_CMD + +### @usage: MOBILE_TEST_APK() # internal +module MOBILE_TEST_APK: DLL { + .CMD=LINK_MOBILE_TEST_APK + .GLOBAL=_AARS _PROGUARD_RULES + + PEERDIR(build/external_resources/android_sdk) + PEERDIR(build/external_resources/gradle) + PEERDIR(build/platform/java/jdk) + PEERDIR($JDK_RESOURCE_PEERDIR) + + SET(MODULE_PREFIX) + SET(MODULE_SUFFIX .apk) + + SET(BIN_AAR_DIR $BINDIR/aar) + SET(BIN_APK_DIR $BINDIR/apk) + SET(BIN_TMP_DIR $BINDIR/tmp) + SET(BIN_GRADLE_USER_HOME_DIR $BINDIR/gradle) + + SET(_MOBILE_TEST_APK_LIBRARY_NAME unittests) + + when ($OS_ANDROID == "yes") { + when ($ARCH_ARM7 == "yes") { + ARCH_NAME=armeabi-v7a + } + elsewhen ($ARCH_ARM64 == "yes") { + ARCH_NAME=arm64-v8a + } + elsewhen ($ARCH_I386 == "yes") { + ARCH_NAME=x86 + } + elsewhen ($ARCH_X86_64 == "yes") { + ARCH_NAME=x86_64 + } + otherwise { + ARCH_NAME=unsupported + } + } +} + + +### @usage: MOBILE_BOOST_TEST_APK() # internal +module MOBILE_BOOST_TEST_APK: MOBILE_TEST_APK { + PEERDIR(devtools/dummy_arcadia/test/test_apk/template) + PEERDIR(build/external_resources/mapsmobi_maven_repo) + ADD_YTEST($MODULE_PREFIX$REALPRJNAME boost.test) + + MOBILE_TEST_APK_TEMPLATE(${ARCADIA_ROOT}/devtools/dummy_arcadia/test/test_apk/template Manifest.xml java/com/yandex/test/unittests/RunTestsActivity.java java/com/yandex/test/unittests/CrashHandler.java res/values/strings.xml) +} + +when ($BT_RELEASE) { + _BUNDLE_BUILD_TYPE=Release +} +otherwise { + _BUNDLE_BUILD_TYPE=Debug +} + +_AAR_EXTRA_INPUTS_VALUE= + +_AAR_MANIFEST_VALUE= +### @usage: AAR_MANIFEST(filename) # internal +macro AAR_MANIFEST(FILE) { + SET(_AAR_MANIFEST_VALUE $FILE) +} + +_AAR_PROGUARD_RULES_VALUE= +### @usage: AAR_PROGUARD_RULES(filename) # internal +macro AAR_PROGUARD_RULES(FILE) { + SET(_AAR_PROGUARD_RULES_VALUE $FILE) +} + +_AAR_AARS_VALUE= +### @usage: AAR_AARS(aars...) # internal +macro AAR_AARS(Aars...) { + SET_APPEND(_AAR_AARS_VALUE $Aars) +} + +_AAR_COMPILE_ONLY_AARS_VALUE= +### @usage: AAR_COMPILE_ONLY_AARS(compile_only_aars...) # internal +macro AAR_COMPILE_ONLY_AARS(Aars...) { + SET_APPEND(_AAR_COMPILE_ONLY_AARS_VALUE $Aars) +} + + +_AAR_AIDL_DIRS_VALUE= +### @usage: AAR_AIDL_SRCS(dir filenames...) # internal +macro AAR_AIDL_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_AAR_AIDL_DIRS_VALUE $PREFIX) + SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_AAR_ASSETS_DIRS_VALUE= +### @usage: AAR_ASSETS_SRCS(dir filenames...) # internal +macro AAR_ASSETS_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_AAR_ASSETS_DIRS_VALUE $PREFIX) + SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_AAR_BUNDLES_VALUE= +### @usage: AAR_BUNDLES(filenames...) # internal +macro AAR_BUNDLES(BUNDLES...) { + SET_APPEND(_AAR_BUNDLES_VALUE $BUNDLES) + SET_APPEND(_AAR_EXTRA_INPUTS_VALUE $BUNDLES) +} + +_AAR_JNI_LIB_DIRS_VALUE= +### @usage: AAR_JNI_LIBS(dir filenames...) # internal +macro AAR_JNI_LIBS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_AAR_JNI_LIB_DIRS_VALUE $PREFIX) + SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_AAR_JAVA_DIRS_VALUE= +### @usage: AAR_JAVA_SRCS(dir filenames...) # internal +macro AAR_JAVA_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_AAR_JAVA_DIRS_VALUE $PREFIX) + SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_AAR_RES_DIRS_VALUE= +### @usage: AAR_RES_SRCS(dir filenames...) # internal +macro AAR_RES_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_AAR_RES_DIRS_VALUE $PREFIX) + SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_AAR_LOCAL_MAVEN_REPO_VALUE= +### @usage: AAR_LOCAL_MAVEN_REPO(repo...) +macro AAR_LOCAL_MAVEN_REPO(REPO...) { + SET_APPEND(_AAR_LOCAL_MAVEN_REPO_VALUE $REPO) +} + +_AAR_GRADLE_SCRIPT_GENERATOR_VALUE= +### @usage: AAR_GRADLE_SCRIPT_GENERATOR(python_script) +macro AAR_GRADLE_SCRIPT_GENERATOR(GENERATOR) { + SET(_AAR_GRADLE_SCRIPT_GENERATOR_VALUE $GENERATOR) +} + +when ($AAR_NO_STRIP) { + _AAR_NO_STRIP_VALUE=--do-not-strip +} +otherwise { + _AAR_NO_STRIP_VALUE= +} + +_AAR_CMDLINE=\ +$FS_TOOLS md $BIN_TMP_DIR \ +&& $FS_TOOLS md $BINDIR/.android \ +&& $COPY_CMD $GRADLE_DEBUG_STORE_RESOURCE_GLOBAL/debug.keystore $BINDIR/.android/debug.keystore \ +&& $YMAKE_PYTHON ${input:"build/scripts/extract_asrc.py"} --output $BIN_TMP_DIR --input ${suf=.asrc:PEERS} \ +&& $YMAKE_PYTHON ${input:_AAR_GRADLE_SCRIPT_GENERATOR_VALUE} \ +${input;hide:EXTRA_INPUTS} \ +--aidl-dirs $_AAR_AIDL_DIRS_VALUE $BIN_TMP_DIR/aidl \ +--assets-dirs $_AAR_ASSETS_DIRS_VALUE $BIN_TMP_DIR/assets \ +--java-dirs $_AAR_JAVA_DIRS_VALUE $BIN_TMP_DIR/src \ +--jni-libs-dirs $_AAR_JNI_LIB_DIRS_VALUE $BIN_TMP_DIR/jni_libs \ +--res-dirs $_AAR_RES_DIRS_VALUE $BIN_TMP_DIR/res \ +--manifest ${input:_AAR_MANIFEST_VALUE} \ +--proguard-rules ${input:_AAR_PROGUARD_RULES_VALUE} ${input:_PROGUARD_RULES_GLOBAL} \ +--aars $_AAR_AARS_VALUE $_AARS_GLOBAL \ +--compile-only-aars $_AAR_COMPILE_ONLY_AARS_VALUE \ +--bundles $_AAR_BUNDLES_VALUE \ +--output-dir $BINDIR \ +--bundle-name $REALPRJNAME \ +--peers $PEERS \ +--maven-repos $_AAR_LOCAL_MAVEN_REPO_VALUE \ +$_AAR_NO_STRIP_VALUE \ +&& ${cwd:BINDIR} ${GRADLE_RESOURCE_GLOBAL}/bin/gradle $_GRADLE_FLAGS_VALUE --no-daemon --offline -g $BIN_GRADLE_USER_HOME_DIR bundle${_BUNDLE_BUILD_TYPE}Aar ${env:"ANDROID_HOME=$ANDROID_SDK_RESOURCE_GLOBAL/android_sdk"} ${env:"JAVA_HOME=$JDK_RESOURCE"} ${env:"ANDROID_SDK_HOME=$BINDIR"} $VCS_INFO_DISABLE_CACHE__NO_UID__ \ +&& ${cwd:BINDIR} $COPY_CMD build/outputs/aar/${REALPRJNAME}-${tolower:_BUNDLE_BUILD_TYPE}.aar $TARGET \ +&& ${cwd:BINDIR} $COPY_CMD build/${suf=-pom.xml:REALPRJNAME} ${output;suf=-pom.xml:REALPRJNAME} \ +&& ${cwd:BINDIR} $COPY_CMD build/libs/${suf=-sources.jar:REALPRJNAME} ${output;suf=-sources.jar:REALPRJNAME} + +macro _AAR_CMD_IMPL(EXTRA_INPUTS...) { + .CMD=$_AAR_CMDLINE && $GENERATE_MF +} + +AAR_CMD=$_AAR_CMD_IMPL($_AAR_EXTRA_INPUTS_VALUE) + +### @usage: AAR() # internal +module AAR: _BASE_UNIT { + .CMD=AAR_CMD + .GLOBAL=_AARS _PROGUARD_RULES + .PEERDIR_POLICY=as_build_from + .FINAL_TARGET=yes + + SET(MODULE_PREFIX) + SET(MODULE_SUFFIX .aar) + SET(DONT_RESOLVE_INCLUDES yes) + SET(NEED_PLATFORM_PEERDIRS no) + NO_PLATFORM() + + PEERDIR(build/external_resources/android_sdk) + PEERDIR(build/external_resources/gradle) + PEERDIR(build/platform/java/jdk) + PEERDIR($JDK_RESOURCE_PEERDIR) + + SET(BIN_TMP_DIR $BINDIR/tmp) + SET(BIN_GRADLE_USER_HOME_DIR $BINDIR/gradle) +} + +_SECONDARY_OUTPUT_VALUE= + +### @usage: SECONDARY_OUTPUT(filename) # internal +### +### The use of this macro is strictly prohibited!!! +macro SECONDARY_OUTPUT(OUTPUT) { + SET(_SECONDARY_OUTPUT_VALUE $OUTPUT) +} + +_AAR_PROXY_LIBRARY_CMD=$LINK_LIB && $COPY_CMD $_SECONDARY_OUTPUT_VALUE ${input;hide:_SECONDARY_OUTPUT_VALUE} ${output:REALPRJNAME.aar} + +### @usage: AAR_PROXY_LIBRARY() # internal +### +### The use of this module is strictly prohibited!!! +module AAR_PROXY_LIBRARY: _PROXY_LIBRARY { + .ALLOWED=SECONDARY_OUTPUT + .CMD=_AAR_PROXY_LIBRARY_CMD +} diff --git a/build/conf/project_specific/maps/asrc.conf b/build/conf/project_specific/maps/asrc.conf new file mode 100644 index 0000000000..c910e6abff --- /dev/null +++ b/build/conf/project_specific/maps/asrc.conf @@ -0,0 +1,121 @@ +_BUNDLE_DELIM_JAVA=__DELIM_JAVA__ +_BUNDLE_DELIM_RES=__DELIM_RES__ +_BUNDLE_DELIM_ASSETS=__DELIM_ASSETS__ +_BUNDLE_DELIM_AIDL=__DELIM_AIDL__ + +_BUNDLE_EXTRA_INPUTS_VALUE= +### @usage: BUNDLE_EXTRA_INPUTS(filenames...) # internal +macro BUNDLE_EXTRA_INPUTS(INPUTS...) { + SET_APPEND(_BUNDLE_EXTRA_INPUTS_VALUE $INPUTS) +} + +_BUNDLE_AIDL_SRCS_VALUE= +### @usage: BUNDLE_AIDL_SRCS(dirname filenames...) # internal +macro BUNDLE_AIDL_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_BUNDLE_AIDL_SRCS_VALUE $_BUNDLE_DELIM_AIDL $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) + BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_BUNDLE_JAVA_SRCS_VALUE= +### @usage: BUNDLE_JAVA_SRCS(dirname filenames...) # internal +macro BUNDLE_JAVA_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_BUNDLE_JAVA_SRCS_VALUE $_BUNDLE_DELIM_JAVA $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) + BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_BUNDLE_RES_SRCS_VALUE= +### @usage: BUNDLE_RES_SRCS(dirname filenames...) # internal +macro BUNDLE_RES_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_BUNDLE_RES_SRCS_VALUE $_BUNDLE_DELIM_RES $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) + BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_BUNDLE_ASSETS_SRCS_VALUE= +### @usage: BUNDLE_ASSETS_SRCS(dirname filenames...) # internal +macro BUNDLE_ASSETS_SRCS(PREFIX, ABSOLUTE[], FILES...) { + SET_APPEND(_BUNDLE_ASSETS_SRCS_VALUE $_BUNDLE_DELIM_ASSETS $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) + BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) +} + +_BUNDLE_SRCS_VALUE=$_BUNDLE_AIDL_SRCS_VALUE $_BUNDLE_ASSETS_SRCS_VALUE $_BUNDLE_JAVA_SRCS_VALUE $_BUNDLE_RES_SRCS_VALUE + +macro _COMPILE_ASRC_IMPL(EXTRA_INPUTS...) { + .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --input $_BUNDLE_SRCS_VALUE ${input;hide:EXTRA_INPUTS} --output $TARGET ${kv;hide:"p AC"} $kv;hide:"pc light-blue"} ${kv;hide:"show_out"} +} + +_COMPILE_ASRC=$_COMPILE_ASRC_IMPL($_ASRC_EXTRA_INPUTS_VALUE) + +COMPILE_ASRC_MF=$_COMPILE_ASRC && $GENERATE_MF + +### @usage: ASRC_LIBRARY() # internal +module ASRC_LIBRARY: _BASE_UNIT { + .CMD=COMPILE_ASRC_MF + .PEERDIR_POLICY=as_include + .FINAL_TARGET=no + PEERDIR_TAGS=JAVA_PROTO JAVA_IDL + MODULE_TYPE=LIBRARY + SET(MODULE_SUFFIX .asrc) + SET(DONT_RESOLVE_INCLUDES yes) + SET(NEED_PLATFORM_PEERDIRS no) + + NO_RUNTIME() +} + +macro _MOBILE_LIBRARY_PREREQUISITES_IMPL(OUTPUT, EXTRA_INPUTS...) { + .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --input $_BUNDLE_SRCS_VALUE --output $OUTPUT ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} +} + +macro _MOBILE_LIBRARY_PREREQUISITES_CMD(OUTPUT, EXTRA_INPUTS...) { + .CMD=${output;hide:OUTPUT} ${input;hide:EXTRA_INPUTS} ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} $_MOBILE_LIBRARY_PREREQUISITES_IMPL($OUTPUT $EXTRA_INPUTS) +} + +when ($OS_ANDROID == "yes") { + LINK_MOBILE_LIB=$LINK_LIB && $_MOBILE_LIBRARY_PREREQUISITES_CMD(${BINDIR}/$MODULE_PREFIX$REALPRJNAME$MODULE_SUFFIX.asrc $_BUNDLE_EXTRA_INPUTS_VALUE) +} +otherwise { + LINK_MOBILE_LIB=$LINK_LIB +} + +### @usage: MOBILE_LIBRARY() # internal +module MOBILE_LIBRARY: LIBRARY { + .CMD=LINK_MOBILE_LIB + DISABLE(NEED_ADD_FAKE_SRC) +} + +_JSRC_PROXY_MOBILE_LIBRARY_CMDLINE=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --jsrcs ${ext=.jsrc;tags_in=local:PEERS} --input $_BUNDLE_SRCS_VALUE ${input;hide:EXTRA_INPUTS} --output ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.asrc:REALPRJNAME} ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} + +macro _JSRC_PROXY_MOBILE_LIBRARY_CMD_IMPL(EXTRA_INPUTS...) { + .CMD=$_JSRC_PROXY_MOBILE_LIBRARY_CMDLINE +} + +JSRC_PROXY_MOBILE_LIBRARY_CMD=$LINK_LIB && $_JSRC_PROXY_MOBILE_LIBRARY_CMD_IMPL($_BUNDLE_EXTRA_INPUTS_VALUE) + +### @usage: JSRC_PROXY_MOBILE_LIBRARY() # internal +module JSRC_PROXY_MOBILE_LIBRARY: MOBILE_LIBRARY { + .CMD=JSRC_PROXY_MOBILE_LIBRARY_CMD + .PEERDIR_POLICY=as_build_from + .PROXY=yes + + SET(MODULE_TYPE LIBRARY) + DISABLE(NEED_ADD_FAKE_SRC) + + PEERDIR_TAGS=JAVA_PROTO JAVA_IDL + + SET(BIN_TMP_DIR ${BINDIR}/tmp) + + NO_UTIL() +} + +_MOBILE_DLL_PREREQUISITES_CMDLINE=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --asrcs ${PEERS.arcs} --input $_BUNDLE_SRCS_VALUE ${input;hide:EXTRA_INPUTS} --output ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.asrc:REALPRJNAME} ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} + +macro _MOBILE_DLL_PREREQUISITES_CMD(EXTRA_INPUTS...) { + .CMD=$_MOBILE_DLL_PREREQUISITES_CMDLINE +} + +when ($OS_ANDROID == "yes") { + LINK_MOBILE_DLL=$LINK_DYN_LIB && $_MOBILE_DLL_PREREQUISITES_CMD($_BUNDLE_EXTRA_INPUTS_VALUE) +} +otherwise { + LINK_MOBILE_DLL=$LINK_DYN_LIB +} + diff --git a/build/conf/project_specific/maps/sproto.conf b/build/conf/project_specific/maps/sproto.conf new file mode 100644 index 0000000000..95234b5f75 --- /dev/null +++ b/build/conf/project_specific/maps/sproto.conf @@ -0,0 +1,21 @@ +### @usage: EXPORT_YMAPS_PROTO() # maps-specific +### +### Maps-specific .proto handling: IMPORT_YMAPS_PROTO() + maps protobuf namespace. +macro EXPORT_YMAPS_PROTO() { + PROTO_NAMESPACE(maps/doc/proto) +} + +macro _YMAPS_GENERATE_SPROTO_HEADER(File) { + .CMD=${cwd;rootdir;input:File} ${tool:"maps/libs/sproto/sprotoc"} -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --sproto_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE ${input;rootrel:File} ${output;hide;norel;nopath;noext:File.sproto.h} ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} + .PEERDIR=maps/libs/sproto +} + +### @usage: YMAPS_SPROTO(ProtoFiles...) # maps-specific +### +### Maps-specific .proto handling: generate .sproto.h files using maps/libs/sproto/sprotoc. +macro YMAPS_SPROTO(FILES...) { + SET(PROTO_HEADER_EXTS .pb.h .sproto.h) + foreach (FILE : $FILES) { + [.proto]=$_YMAPS_GENERATE_SPROTO_HEADER($FILE) + } +} diff --git a/build/conf/project_specific/uservices.conf b/build/conf/project_specific/uservices.conf new file mode 100644 index 0000000000..71c0a6f89e --- /dev/null +++ b/build/conf/project_specific/uservices.conf @@ -0,0 +1,41 @@ +macro _MOVE(Src, OUT="", OUT_NOAUTO="", CPP_DEPS[], OUTPUT_INCLUDES[]) { + .CMD=$MOVE_FILE ${input:Src} ${output;norel:OUT} ${output;noauto;norel:OUT_NOAUTO} ${induced_deps=h+cpp;hide:CPP_DEPS} ${output_include;hide:OUTPUT_INCLUDES} ${kv;hide:"p MV"} ${kv;hide:"pc light-cyan"} +} + +macro USRV_BUILD(FROM="Please specify generated .tar-file as FROM", DEPS_FILE="NO_DEPS", OUT_NOAUTO[], Files...) { + .CMD=${tool:"taxi/uservices/arc-gen/unpack-tar"} --source ${input:FROM} --target ${BINDIR} --suffix .usrv ${Files} ${OUT_NOAUTO} ${output;noauto;hide;suf=.usrv:OUT_NOAUTO} ${output;noauto;hide;suf=.usrv:Files} ${kv;hide:"p USB"} ${kv;hide:"pc light-cyan"} + _PROCESS_USRV_FILES(${DEPS_FILE} ${Files} OUT_NOAUTO ${OUT_NOAUTO}) +} + +macro _PROCESS_USRV_FILES(DepsFile, Files...) { + SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${DepsFile}) +} + +macro _USRV_ALL_SRCS_HELPER(SUFFIX, RECURSIVE?"/**/*${SUFFIX}.(c|cc|cpp|h|hpp|hxx|make)":"/*${SUFFIX}.(c|cc|cpp|h|hpp|hxx|make)", DIRS[], EXCLUDE[]) { + _GLOB(_ALL_USRV_SOURCES ${suf=${RECURSIVE}:DIRS} EXCLUDE $EXCLUDE) + SRCS($_ALL_USRV_SOURCES) +} + +macro SET_LIST_PRE_SUF(OUT, PRE, SUF, IN...) { + SET($OUT ${pre=${PRE};suf=${SUF}:IN}) +} + +### @usage: USRV_ALL_SRCS([RECURSIVE] [Dirs...] [EXCLUDE <globs...>]) +### +### SRCS for all C++ sources in current or given directories. +### C++ files are ones with following extensions: `.c`, `.cc`, `.cpp`, `.h`, `.hpp` and `.hxx`. +### +### If dirs are omitted the current one is used. +### +### @params: +### - `Dirs` - start directories for files lookup +### - `RECURSIVE`- makes lookup recursive with resprect to Dirs +### - `SUFFIX` - file name should end with the provided suffix +### - `EXCLUDE` - glob pattern to be excluded from results. In recursive mode use recursive pattern (`**`) to +### exclude files in subdirectories +### +### Note: Only one such macro per module is allowed +### Note: Macro is designed to reject any ya.make files in Dirs except current one +macro USRV_ALL_SRCS(RECURSIVE?"RECURSIVE":"", SUFFIX="", EXCLUDE[], Dirs...) { + _USRV_ALL_SRCS_HELPER(${SUFFIX} ${RECURSIVE} DIRS ./${Dirs} EXCLUDE ya.make $EXCLUDE) +} |