aboutsummaryrefslogtreecommitdiffstats
path: root/build/conf/project_specific/maps/asrc.conf
blob: cdecd2b1a4e802a1ba889a32e9b79c3e4d17debe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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
}