diff options
author | v-korovin <v-korovin@yandex-team.ru> | 2022-02-10 16:46:20 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:20 +0300 |
commit | c4e0c5d2f245076d63ccff1004c755ca0cc5d27b (patch) | |
tree | 0c6b0402dc17d5d1beffbe9350d2d6802207e123 /build/conf/project_specific/maps | |
parent | b86334f8eb651237aceaa035bebb519893d6d077 (diff) | |
download | ydb-c4e0c5d2f245076d63ccff1004c755ca0cc5d27b.tar.gz |
Restoring authorship annotation for <v-korovin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'build/conf/project_specific/maps')
-rw-r--r-- | build/conf/project_specific/maps/aar.conf | 684 | ||||
-rw-r--r-- | build/conf/project_specific/maps/asrc.conf | 244 | ||||
-rw-r--r-- | build/conf/project_specific/maps/mapkit.conf | 552 | ||||
-rw-r--r-- | build/conf/project_specific/maps/sproto.conf | 42 |
4 files changed, 761 insertions, 761 deletions
diff --git a/build/conf/project_specific/maps/aar.conf b/build/conf/project_specific/maps/aar.conf index 780ff38984..67406773c3 100644 --- a/build/conf/project_specific/maps/aar.conf +++ b/build/conf/project_specific/maps/aar.conf @@ -1,350 +1,350 @@ - -_GRADLE_FLAGS_VALUE= -### @usage: GRADLE_FLAGS(flags...) # internal -### -### SEt additional flags for gradle -macro GRADLE_FLAGS(FLAGS...) { - SET_APPEND(_GRADLE_FLAGS_VALUE $FLAGS) -} - -### @usage: PROGURAD_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) + +_GRADLE_FLAGS_VALUE= +### @usage: GRADLE_FLAGS(flags...) # internal +### +### SEt additional flags for gradle +macro GRADLE_FLAGS(FLAGS...) { + SET_APPEND(_GRADLE_FLAGS_VALUE $FLAGS) +} + +### @usage: PROGURAD_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} \ + + 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} \ +&& $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) +&& $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) + + 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 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_GENERATE_DOC) { - _AAR_GENERATE_DOC_VALUE=--generate-doc - _AAR_COPY_DOC_VALUE=\ - && ${cwd:BINDIR} $COPY_CMD build/${REALPRJNAME}-javadoc.tar.gz ${output;suf=-javadoc.tar.gz:REALPRJNAME} -} -otherwise { - _AAR_GENERATE_DOC_VALUE= - _AAR_COPY_DOC_VALUE= -} - -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_GENERATE_DOC_VALUE \ -$_AAR_NO_STRIP_VALUE \ + + MOBILE_TEST_APK_TEMPLATE(${ARCADIA_ROOT}/devtools/dummy_arcadia/test/test_apk/template Manifest.xml java/com/yandex/test/unittests/RunTestsActivity.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_GENERATE_DOC) { + _AAR_GENERATE_DOC_VALUE=--generate-doc + _AAR_COPY_DOC_VALUE=\ + && ${cwd:BINDIR} $COPY_CMD build/${REALPRJNAME}-javadoc.tar.gz ${output;suf=-javadoc.tar.gz:REALPRJNAME} +} +otherwise { + _AAR_GENERATE_DOC_VALUE= + _AAR_COPY_DOC_VALUE= +} + +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_GENERATE_DOC_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 \ -$_AAR_COPY_DOC_VALUE \ -&& ${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...) { +&& ${cwd:BINDIR} $COPY_CMD build/outputs/aar/${REALPRJNAME}-${tolower:_BUNDLE_BUILD_TYPE}.aar $TARGET \ +$_AAR_COPY_DOC_VALUE \ +&& ${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) +} + +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 -} + + 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 index dee6354cbc..d5b1a0251d 100644 --- a/build/conf/project_specific/maps/asrc.conf +++ b/build/conf/project_specific/maps/asrc.conf @@ -1,122 +1,122 @@ -_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 - .ALL_INS_TO_OUT=no - .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 -} - +_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 + .ALL_INS_TO_OUT=no + .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/mapkit.conf b/build/conf/project_specific/maps/mapkit.conf index d64b41f72a..f67f92a780 100644 --- a/build/conf/project_specific/maps/mapkit.conf +++ b/build/conf/project_specific/maps/mapkit.conf @@ -1,283 +1,283 @@ -MAPKIT_IDL_INCLUDES= -macro MAPKIT_ADDINCL(Dirs...) { - ADDINCL(${pre=FOR idl :Dirs}) - SET_APPEND(MAPKIT_IDL_INCLUDES $Dirs) -} - -### @usage: MAPS_IDL_ADDINCL(dirnames...) # internal -### -### Warpper for MAPKIT_ADDINCL macro which is used for mobile mapkit build -macro MAPS_IDL_ADDINCL(Dirs...) { - MAPKIT_ADDINCL($Dirs) -} - -### @usage: _MAPKITIDL_PROXY(args...) # internal -### -### Proxy macro for MAPKITIDL which adds PEERDIR to YMAKE resources -macro _MAPKITIDL_PROXY(Args...) { - MAPKITIDL($Args) - ENABLE(USE_YMAKE_RESOURCE) +MAPKIT_IDL_INCLUDES= +macro MAPKIT_ADDINCL(Dirs...) { + ADDINCL(${pre=FOR idl :Dirs}) + SET_APPEND(MAPKIT_IDL_INCLUDES $Dirs) +} + +### @usage: MAPS_IDL_ADDINCL(dirnames...) # internal +### +### Warpper for MAPKIT_ADDINCL macro which is used for mobile mapkit build +macro MAPS_IDL_ADDINCL(Dirs...) { + MAPKIT_ADDINCL($Dirs) +} + +### @usage: _MAPKITIDL_PROXY(args...) # internal +### +### Proxy macro for MAPKITIDL which adds PEERDIR to YMAKE resources +macro _MAPKITIDL_PROXY(Args...) { + MAPKITIDL($Args) + ENABLE(USE_YMAKE_RESOURCE) SET_APPEND(_MAKEFILE_INCLUDE_LIKE_TEXT_DEPS ${ext=idl:Args}) -} - -MAPS_IDL_FILTER= - -### @usage: MAPS_IDL_SRCS(filenames...) # internal -### -### Warpper for MAPKITIDL macro which is used for mobile mapkit build -macro MAPS_IDL_SRCS(Srcs...) { - _MAPKITIDL_PROXY($Srcs ${MAPS_IDL_FILTER}) -} - -### @usage: MAPS_IDL_GLOBAL_SRCS(filenames...) # internal -### -### Warpper for MAPKITIDL macro which is used for mobile mapkit build -macro MAPS_IDL_GLOBAL_SRCS(Srcs...) { - _MAPKITIDL_PROXY(GLOBAL_OUTPUTS $Srcs ${MAPS_IDL_FILTER}) -} - -### @usage: MAPSMOBI_SRCS(filenames...) # internal -### -### Make all source files listed as GLOBAL or not (depending on the value of -### MAPSMOBI_USE_SRCS_GLOBAL). Be careful since the value of -### MAPSMOBI_USE_SRCS_GLOBAL matters! If the value of this variable is equal to -### GLOBAL then call to MAPSMOBI_SRCS() macro behaves like call to -### GLOBAL_SRCS() macro otherwise the value of MAPSMOBI_USE_SRCS_GLOBAL is -### treated as a file name and a call to MAPSMOBI_SRCS() macro behaves like a -### call to SRCS() macro with additional argument which is the value of -### MAPSMOBI_USE_SRCS_GLOBAL variable -macro MAPSMOBI_SRCS(FILES...) { - ALL_SRCS(${MAPSMOBI_USE_SRCS_GLOBAL} $FILES) -} - -### @usage: EXPORT_MAPKIT_PROTO() # internal deprecated -### -### This macro is a temporary one and should be changed to EXPORT_YMAPS_PROTO -### when transition of mapsmobi to arcadia is finished -macro EXPORT_MAPKIT_PROTO() { - PROTO_NAMESPACE(GLOBAL maps/mapsmobi/external/proto) -} - -BEFORE_PEERS= -AFTER_PEERS= -when ($MAPKIT_WHOLE_ARCHIVE == "yes") { - when($OS_LINUX) { - BEFORE_PEERS += $START_WHOLE_ARCHIVE_VALUE - AFTER_PEERS += $END_WHOLE_ARCHIVE_VALUE - } - elsewhen($OS_DARWIN) { - LDFLAGS+=-Wl,-all_load - } -} - -### @usage: MAPKIT_ENABLE_WHOLE_ARCHIVE() # internal deprecated -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPKIT_ENABLE_WHOLE_ARCHIVE() { - ENABLE(MAPKIT_WHOLE_ARCHIVE) -} - -### @usage: MAPS_IDL_LIBRARY() -### -### Definition of multimodule that builds various variants of libraries. -### The particular variant is selected based on where PEERDIR to IDL_LIBRARY comes from. -### Now supported 2 variants: C++, Java -### Java version is not really a library but an archive of generated Java sources -multimodule MAPS_IDL_LIBRARY { - module CPP_IDL: LIBRARY { - .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_GLOBAL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS - SET(PEERDIR_TAGS CPP_IDL CPP_PROTO __EMPTY__) - SET(MAPS_IDL_FILTER) - ENABLE(CPP_IDL) - NO_UTIL() - - when ($OS_IOS == "yes") { - CFLAGS+=-fobjc-arc - } - } - - module JAVA_IDL: JSRC_LIBRARY { - .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS - .IGNORED=CPP_ADDINCL - SET(PEERDIR_TAGS JAVA_IDL JAVA_PROTO) - SET(MAPS_IDL_FILTER FILTER .java) - ENABLE(JAVA_IDL) - } -} - -### @usage: MAPSMOBI_COLLECT_ASSETS_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_ASSETS_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_AIDL_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_AIDL_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.aidl) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_JAVA_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_JAVA_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.java) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_JNI_LIBS_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_JNI_LIBS_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.so) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_RES_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_RES_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.(xml|png)) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_TPL_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_TPL_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.tpl) - RESTRICT_PATH(tools/idl MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPS_GARDEN_COLLECT_MODULE_TRAITS(varnamei dir) # internal -### -### This macro is strictly prohibited to use outside of maps/garden project -macro MAPS_GARDEN_COLLECT_MODULE_TRAITS(VAR, DIR) { - _GLOB($VAR $DIR/*/module_traits.json) - RESTRICT_PATH(maps/garden/sdk/module_traits/tests/module_traits_bundle MSG This macro is for use in maps/garden project) -} - -# mapsmobi build configuration - +} + +MAPS_IDL_FILTER= + +### @usage: MAPS_IDL_SRCS(filenames...) # internal +### +### Warpper for MAPKITIDL macro which is used for mobile mapkit build +macro MAPS_IDL_SRCS(Srcs...) { + _MAPKITIDL_PROXY($Srcs ${MAPS_IDL_FILTER}) +} + +### @usage: MAPS_IDL_GLOBAL_SRCS(filenames...) # internal +### +### Warpper for MAPKITIDL macro which is used for mobile mapkit build +macro MAPS_IDL_GLOBAL_SRCS(Srcs...) { + _MAPKITIDL_PROXY(GLOBAL_OUTPUTS $Srcs ${MAPS_IDL_FILTER}) +} + +### @usage: MAPSMOBI_SRCS(filenames...) # internal +### +### Make all source files listed as GLOBAL or not (depending on the value of +### MAPSMOBI_USE_SRCS_GLOBAL). Be careful since the value of +### MAPSMOBI_USE_SRCS_GLOBAL matters! If the value of this variable is equal to +### GLOBAL then call to MAPSMOBI_SRCS() macro behaves like call to +### GLOBAL_SRCS() macro otherwise the value of MAPSMOBI_USE_SRCS_GLOBAL is +### treated as a file name and a call to MAPSMOBI_SRCS() macro behaves like a +### call to SRCS() macro with additional argument which is the value of +### MAPSMOBI_USE_SRCS_GLOBAL variable +macro MAPSMOBI_SRCS(FILES...) { + ALL_SRCS(${MAPSMOBI_USE_SRCS_GLOBAL} $FILES) +} + +### @usage: EXPORT_MAPKIT_PROTO() # internal deprecated +### +### This macro is a temporary one and should be changed to EXPORT_YMAPS_PROTO +### when transition of mapsmobi to arcadia is finished +macro EXPORT_MAPKIT_PROTO() { + PROTO_NAMESPACE(GLOBAL maps/mapsmobi/external/proto) +} + +BEFORE_PEERS= +AFTER_PEERS= +when ($MAPKIT_WHOLE_ARCHIVE == "yes") { + when($OS_LINUX) { + BEFORE_PEERS += $START_WHOLE_ARCHIVE_VALUE + AFTER_PEERS += $END_WHOLE_ARCHIVE_VALUE + } + elsewhen($OS_DARWIN) { + LDFLAGS+=-Wl,-all_load + } +} + +### @usage: MAPKIT_ENABLE_WHOLE_ARCHIVE() # internal deprecated +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPKIT_ENABLE_WHOLE_ARCHIVE() { + ENABLE(MAPKIT_WHOLE_ARCHIVE) +} + +### @usage: MAPS_IDL_LIBRARY() +### +### Definition of multimodule that builds various variants of libraries. +### The particular variant is selected based on where PEERDIR to IDL_LIBRARY comes from. +### Now supported 2 variants: C++, Java +### Java version is not really a library but an archive of generated Java sources +multimodule MAPS_IDL_LIBRARY { + module CPP_IDL: LIBRARY { + .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_GLOBAL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS + SET(PEERDIR_TAGS CPP_IDL CPP_PROTO __EMPTY__) + SET(MAPS_IDL_FILTER) + ENABLE(CPP_IDL) + NO_UTIL() + + when ($OS_IOS == "yes") { + CFLAGS+=-fobjc-arc + } + } + + module JAVA_IDL: JSRC_LIBRARY { + .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS + .IGNORED=CPP_ADDINCL + SET(PEERDIR_TAGS JAVA_IDL JAVA_PROTO) + SET(MAPS_IDL_FILTER FILTER .java) + ENABLE(JAVA_IDL) + } +} + +### @usage: MAPSMOBI_COLLECT_ASSETS_FILES(varname [dir]) # internal +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPSMOBI_COLLECT_ASSETS_FILES(VAR, DIR="") { + _GLOB($VAR ${suf=/:DIR}**/*) + RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) +} + +### @usage: MAPSMOBI_COLLECT_AIDL_FILES(varname [dir]) # internal +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPSMOBI_COLLECT_AIDL_FILES(VAR, DIR="") { + _GLOB($VAR ${suf=/:DIR}**/*.aidl) + RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) +} + +### @usage: MAPSMOBI_COLLECT_JAVA_FILES(varname [dir]) # internal +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPSMOBI_COLLECT_JAVA_FILES(VAR, DIR="") { + _GLOB($VAR ${suf=/:DIR}**/*.java) + RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) +} + +### @usage: MAPSMOBI_COLLECT_JNI_LIBS_FILES(varname [dir]) # internal +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPSMOBI_COLLECT_JNI_LIBS_FILES(VAR, DIR="") { + _GLOB($VAR ${suf=/:DIR}**/*.so) + RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) +} + +### @usage: MAPSMOBI_COLLECT_RES_FILES(varname [dir]) # internal +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPSMOBI_COLLECT_RES_FILES(VAR, DIR="") { + _GLOB($VAR ${suf=/:DIR}**/*.(xml|png)) + RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) +} + +### @usage: MAPSMOBI_COLLECT_TPL_FILES(varname [dir]) # internal +### +### This macro is strictly prohibited to use outside of mapsmobi project +macro MAPSMOBI_COLLECT_TPL_FILES(VAR, DIR="") { + _GLOB($VAR ${suf=/:DIR}**/*.tpl) + RESTRICT_PATH(tools/idl MSG This macro is for use in mapsmobi projects) +} + +### @usage: MAPS_GARDEN_COLLECT_MODULE_TRAITS(varnamei dir) # internal +### +### This macro is strictly prohibited to use outside of maps/garden project +macro MAPS_GARDEN_COLLECT_MODULE_TRAITS(VAR, DIR) { + _GLOB($VAR $DIR/*/module_traits.json) + RESTRICT_PATH(maps/garden/sdk/module_traits/tests/module_traits_bundle MSG This macro is for use in maps/garden project) +} + +# mapsmobi build configuration + MAPSMOBI_FAKEID=${FAKEID}_r8609790 -MAPSMOBI_BUILD= -YANDEX_EXPORT= -YRT_EXPORT= -MAPSMOBI_CPP_PROTO_PLUGINS= -STATIC_STL= -EXPORT_ALL_SYMBOLS= -when ($MAPSMOBI_BUILD_HOST || $MAPSMOBI_BUILD_TARGET) { - MAPSMOBI_BUILD=yes -} -when ($MAPSMOBI_BUILD) { - CFLAGS+=-DMOBILE_BUILD ${hide:MAPSMOBI_FAKEID} - MAPKIT_BASE_PROTO_PACKAGE=yandex.maps.proto - MAPKIT_PROTO_ROOT=maps/doc/proto - MAPKIT_IDL_FRAMEWORK=maps/mobile/libs/idl_frameworks -} -when ($MAPSMOBI_BUILD_TARGET) { - ALLOCATOR=FAKE - USE_VANILLA_PROTOC=yes - PROTOBUF_LITE=yes - CPP_PROTO_PLUGINS=lite${pre=,:MAPSMOBI_CPP_PROTO_PLUGINS}: - when ($OPENSOURCE != "yes") { - SYSINCL+=build/yandex_specific/sysincl/mapsmobi.yml - } - - CFLAGS+=-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DBOOST_CB_DISABLE_DEBUG -DBOOST_COROUTINES_NO_DEPRECATION_WARNING -DYANDEX_EXPORT=${YANDEX_EXPORT} -DYRT_EXPORT=${YRT_EXPORT} -} -when ($MAPSMOBI_BUILD_TARGET && $OS_ANDROID) { - JDK_VERSION=8 - MAPSMOBI_CPP_PROTO_PLUGINS="dllexport_decl=YANDEX_EXPORT" - YANDEX_EXPORT=__attribute__((visibility(\"default\"))) - CFLAGS+=-fvisibility=hidden - - when ($MAPS_MOBILE_EXPORT_CPP_API) { - LDFLAGS+=-lc++_shared - CFLAGS+=-DZLIB_DLL - CFLAGS+=-DPROTOBUF_USE_DLLS -DLIBPROTOBUF_EXPORTS - CFLAGS+=-DPNG_IMPEXP=${YANDEX_EXPORT} - CFLAGS+=-DBOOST_ALL_DYN_LINK - CFLAGS+=-DBOOST_SYMBOL_EXPORT=${YANDEX_EXPORT} - DYNAMIC_BOOST=yes - } - otherwise { - STATIC_STL=yes - YANDEX_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= - LDFLAGS+=-lc++_static -Wl,--exclude-libs,ALL -static-libstdc++ - USE_GLOBAL_CMD=no - } - - when ($EXPORT_ALL_SYMBOLS) { - CFLAGS+=-fvisibility=default - } - +MAPSMOBI_BUILD= +YANDEX_EXPORT= +YRT_EXPORT= +MAPSMOBI_CPP_PROTO_PLUGINS= +STATIC_STL= +EXPORT_ALL_SYMBOLS= +when ($MAPSMOBI_BUILD_HOST || $MAPSMOBI_BUILD_TARGET) { + MAPSMOBI_BUILD=yes +} +when ($MAPSMOBI_BUILD) { + CFLAGS+=-DMOBILE_BUILD ${hide:MAPSMOBI_FAKEID} + MAPKIT_BASE_PROTO_PACKAGE=yandex.maps.proto + MAPKIT_PROTO_ROOT=maps/doc/proto + MAPKIT_IDL_FRAMEWORK=maps/mobile/libs/idl_frameworks +} +when ($MAPSMOBI_BUILD_TARGET) { + ALLOCATOR=FAKE + USE_VANILLA_PROTOC=yes + PROTOBUF_LITE=yes + CPP_PROTO_PLUGINS=lite${pre=,:MAPSMOBI_CPP_PROTO_PLUGINS}: + when ($OPENSOURCE != "yes") { + SYSINCL+=build/yandex_specific/sysincl/mapsmobi.yml + } + + CFLAGS+=-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DBOOST_CB_DISABLE_DEBUG -DBOOST_COROUTINES_NO_DEPRECATION_WARNING -DYANDEX_EXPORT=${YANDEX_EXPORT} -DYRT_EXPORT=${YRT_EXPORT} +} +when ($MAPSMOBI_BUILD_TARGET && $OS_ANDROID) { + JDK_VERSION=8 + MAPSMOBI_CPP_PROTO_PLUGINS="dllexport_decl=YANDEX_EXPORT" + YANDEX_EXPORT=__attribute__((visibility(\"default\"))) + CFLAGS+=-fvisibility=hidden + + when ($MAPS_MOBILE_EXPORT_CPP_API) { + LDFLAGS+=-lc++_shared + CFLAGS+=-DZLIB_DLL + CFLAGS+=-DPROTOBUF_USE_DLLS -DLIBPROTOBUF_EXPORTS + CFLAGS+=-DPNG_IMPEXP=${YANDEX_EXPORT} + CFLAGS+=-DBOOST_ALL_DYN_LINK + CFLAGS+=-DBOOST_SYMBOL_EXPORT=${YANDEX_EXPORT} + DYNAMIC_BOOST=yes + } + otherwise { + STATIC_STL=yes + YANDEX_EXPORT= + CFLAGS+=-DBOOST_SYMBOL_EXPORT= + CFLAGS+=-DBOOST_SYMBOL_VISIBLE= + LDFLAGS+=-lc++_static -Wl,--exclude-libs,ALL -static-libstdc++ + USE_GLOBAL_CMD=no + } + + when ($EXPORT_ALL_SYMBOLS) { + CFLAGS+=-fvisibility=default + } + when ($NO_DEBUGINFO != "yes" && $REDUCED_DEBUGINFO) { CFLAGS+=-g1 } - CFLAGS+=-DANDROID -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -Wa,--noexecstack - CFLAGS+=-Qunused-arguments -Wno-unused-function -Wno-pessimizing-move -Wno-missing-field-initializers -Wno-missing-braces -Wno-unused-parameter -Wno-vexing-parse -Wno-sign-compare -Wno-deprecated-declarations - - LDFLAGS+=-lc -lm -llog -Bsymbolic -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--no-undefined - - when ($BT_RELEASE || $BT_RELWITHDEBINFO) { - CFLAGS+=-fomit-frame-pointer -fvisibility-inlines-hidden -ffunction-sections -fdata-sections - LDFLAGS+=-Wl,--gc-sections -Wl,--build-id - } - - when ($ARCH_ARM7) { - CFLAGS+=-mfloat-abi=softfp - #Android clang overaligns some float types which causes NEON programs to fail on old Android versions. So we disable NEON. - #See https://github.com/android/ndk/issues/640 for more information - CFLAGS+=-mfpu=vfpv3-d16 - } - elsewhen ($ARCH_ARM64) { - } - elsewhen ($ARCH_I386) { - CFLAGS+=-fstrict-aliasing -mstackrealign -DTLS_STACK_PROTECTOR - } - elsewhen ($ARCH_X86_64) { + CFLAGS+=-DANDROID -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -Wa,--noexecstack + CFLAGS+=-Qunused-arguments -Wno-unused-function -Wno-pessimizing-move -Wno-missing-field-initializers -Wno-missing-braces -Wno-unused-parameter -Wno-vexing-parse -Wno-sign-compare -Wno-deprecated-declarations + + LDFLAGS+=-lc -lm -llog -Bsymbolic -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--no-undefined + + when ($BT_RELEASE || $BT_RELWITHDEBINFO) { + CFLAGS+=-fomit-frame-pointer -fvisibility-inlines-hidden -ffunction-sections -fdata-sections + LDFLAGS+=-Wl,--gc-sections -Wl,--build-id + } + + when ($ARCH_ARM7) { + CFLAGS+=-mfloat-abi=softfp + #Android clang overaligns some float types which causes NEON programs to fail on old Android versions. So we disable NEON. + #See https://github.com/android/ndk/issues/640 for more information + CFLAGS+=-mfpu=vfpv3-d16 + } + elsewhen ($ARCH_ARM64) { + } + elsewhen ($ARCH_I386) { + CFLAGS+=-fstrict-aliasing -mstackrealign -DTLS_STACK_PROTECTOR + } + elsewhen ($ARCH_X86_64) { CFLAGS+=-fstrict-aliasing -mstackrealign -march=x86-64 -msse4.2 -mpopcnt -m64 -DTLS_STACK_PROTECTOR - } - otherwise { - PEERDIR+=__unsupported_architecture_for_android__ - } -} -when ($MAPSMOBI_BUILD_TARGET && $OS_DARWIN) { - QT_REQUIRED=yes - LDFLAGS+=-lc++ - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= -} -when ($MAPSMOBI_BUILD_TARGET && $OS_IOS) { - CFLAGS+=-DIOS -stdlib=libc++ -fvisibility=hidden - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= - when ($MAPS_MOBILE_EXPORT_OBJC_API) { - YRT_EXPORT=__attribute__((visibility(\"default\"))) - } -} -when ($MAPSMOBI_BUILD_TARGET && $OS_LINUX) { - when ($NO_GRAPHICS != "yes") { - QT_REQUIRED=yes - OPENGL_REQUIRED=yes - } - OS_SDK=ubuntu-16 - PIC=yes - LDFLAGS+=-lstdc++ -lgcc_s - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= -} -when ($MAPSMOBI_BUILD_TARGET && $OS_YOCTO) { - QT_REQUIRED=yes - PIC=yes - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= -} + } + otherwise { + PEERDIR+=__unsupported_architecture_for_android__ + } +} +when ($MAPSMOBI_BUILD_TARGET && $OS_DARWIN) { + QT_REQUIRED=yes + LDFLAGS+=-lc++ + CFLAGS+=-DBOOST_SYMBOL_EXPORT= + CFLAGS+=-DBOOST_SYMBOL_VISIBLE= +} +when ($MAPSMOBI_BUILD_TARGET && $OS_IOS) { + CFLAGS+=-DIOS -stdlib=libc++ -fvisibility=hidden + CFLAGS+=-DBOOST_SYMBOL_EXPORT= + CFLAGS+=-DBOOST_SYMBOL_VISIBLE= + when ($MAPS_MOBILE_EXPORT_OBJC_API) { + YRT_EXPORT=__attribute__((visibility(\"default\"))) + } +} +when ($MAPSMOBI_BUILD_TARGET && $OS_LINUX) { + when ($NO_GRAPHICS != "yes") { + QT_REQUIRED=yes + OPENGL_REQUIRED=yes + } + OS_SDK=ubuntu-16 + PIC=yes + LDFLAGS+=-lstdc++ -lgcc_s + CFLAGS+=-DBOOST_SYMBOL_EXPORT= + CFLAGS+=-DBOOST_SYMBOL_VISIBLE= +} +when ($MAPSMOBI_BUILD_TARGET && $OS_YOCTO) { + QT_REQUIRED=yes + PIC=yes + CFLAGS+=-DBOOST_SYMBOL_EXPORT= + CFLAGS+=-DBOOST_SYMBOL_VISIBLE= +} diff --git a/build/conf/project_specific/maps/sproto.conf b/build/conf/project_specific/maps/sproto.conf index 1a62563fc1..696b0c505b 100644 --- a/build/conf/project_specific/maps/sproto.conf +++ b/build/conf/project_specific/maps/sproto.conf @@ -1,21 +1,21 @@ -### @usage: EXPORT_YMAPS_PROTO() # maps-specific -### -### Maps-specific .proto handling: IMPORT_YMAPS_PROTO() + maps protobuf namespace. -macro EXPORT_YMAPS_PROTO() { - PROTO_NAMESPACE(GLOBAL 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) - } -} +### @usage: EXPORT_YMAPS_PROTO() # maps-specific +### +### Maps-specific .proto handling: IMPORT_YMAPS_PROTO() + maps protobuf namespace. +macro EXPORT_YMAPS_PROTO() { + PROTO_NAMESPACE(GLOBAL 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) + } +} |