gnu_compiler.conf 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. _C_DEFINES_ANDROID=
  2. _C_DEFINES_ANDROID_OTHERWISE=
  3. when ($OS_ANDROID == "yes") {
  4. _C_DEFINES_ANDROID=-DANDROID_FAKEID=$ANDROID_FAKEID
  5. }
  6. otherwise {
  7. # There is no usable _FILE_OFFSET_BITS=64 support in Androids until API 21. And it's incomplete until at least API 24.
  8. # https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
  9. # Arcadia have API 16 for 32-bit Androids.
  10. _C_DEFINES_ANDROID_OTHERWISE=-D_FILE_OFFSET_BITS=64
  11. }
  12. _C_DEFINES_GNU_SOURCE=
  13. when ($OS_LINUX == "yes" || $OS_ANDROID == "yes" || $OS_CYGWIN == "yes") {
  14. _C_DEFINES_GNU_SOURCE=-D_GNU_SOURCE
  15. }
  16. _C_DEFINES_CLANG_LINUX_X86_64=
  17. when ($CLANG == "yes" && $OS_LINUX == "yes" && $ARCH_X86_64 == "yes") {
  18. _C_DEFINES_CLANG_LINUX_X86_64=-D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE
  19. }
  20. _C_DEFINES_IOS=
  21. when ($OS_IOS == "yes") {
  22. _C_DEFINES_IOS=-D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
  23. }
  24. _C_DEFINES_WITH_VALGRIND=
  25. when ($WITH_VALGRIND == "yes") {
  26. _C_DEFINES_WITH_VALGRIND=-DWITH_VALGRIND=1
  27. }
  28. C_DEFINES =-DFAKEID=$CPP_FAKEID
  29. C_DEFINES+=$_C_DEFINES_ANDROID
  30. C_DEFINES+=\
  31. -DARCADIA_ROOT=${ARCADIA_ROOT} \
  32. -DARCADIA_BUILD_ROOT=${ARCADIA_BUILD_ROOT} \
  33. -D_THREAD_SAFE \
  34. -D_PTHREADS \
  35. -D_REENTRANT \
  36. -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES \
  37. -D_LARGEFILE_SOURCE \
  38. -D__STDC_CONSTANT_MACROS \
  39. -D__STDC_FORMAT_MACROS
  40. C_DEFINES+=$_C_DEFINES_ANDROID_OTHERWISE
  41. C_DEFINES+=$_C_DEFINES_GNU_SOURCE
  42. C_DEFINES+=$_C_DEFINES_CLANG_LINUX_X86_64
  43. C_DEFINES+=$_C_DEFINES_IOS
  44. C_DEFINES+=$_C_DEFINES_WITH_VALGRIND
  45. C_DEFINES+=$_C_DEFINES_NDEBUG
  46. _C_FOPTIONS_INIT_ARRAY=
  47. when ($CLANG == "yes" && $OS_LINUX == "yes") {
  48. # Use .init_array instead of .ctors (default for old clang versions)
  49. # See: https://maskray.me/blog/2021-11-07-init-ctors-init-array
  50. _C_FOPTIONS_INIT_ARRAY=-fuse-init-array
  51. }
  52. _C_FOPTIONS_COLOR=
  53. _C_FOPTIONS_ALIGNED_ALLOCATION=
  54. when ($CLANG == "yes") {
  55. # Set up output colorization
  56. _C_FOPTIONS_COLOR=-fcolor-diagnostics
  57. # Enable aligned allocation
  58. _C_FOPTIONS_ALIGNED_ALLOCATION=-faligned-allocation
  59. }
  60. elsewhen ($GCC == "yes") {
  61. # Set up output colorization
  62. _C_FOPTIONS_COLOR=-fdiagnostics-color=always
  63. # It looks like there is no way to enable aligned allocation in gcc
  64. }
  65. _C_FOPTIONS_MAPSMOBI_ARM=
  66. when ($OS_IOS == "yes") {
  67. when ($MAPSMOBI_BUILD_TARGET == "yes" && $ARCH_ARM == "yes") {
  68. _C_FOPTIONS_MAPSMOBI_ARM=-fembed-bitcode
  69. }
  70. }
  71. _C_WARNINGS_CLANG=
  72. _CXX_WARNINGS_CLANG=
  73. when ($CLANG == "yes") {
  74. _CXX_WARNINGS_CLANG=\
  75. -Wimport-preprocessor-directive-pedantic \
  76. -Wno-undefined-var-template \
  77. -Wno-return-std-move \
  78. -Wno-address-of-packed-member \
  79. -Wno-defaulted-function-deleted \
  80. -Wno-pessimizing-move \
  81. -Wno-range-loop-construct \
  82. -Wno-deprecated-anon-enum-enum-conversion \
  83. -Wno-deprecated-enum-enum-conversion \
  84. -Wno-deprecated-enum-float-conversion \
  85. -Wno-ambiguous-reversed-operator \
  86. -Wno-deprecated-volatile
  87. # -Wno-unknown-warning-option
  88. # For nvcc to accept the above.
  89. _C_WARNINGS_CLANG=\
  90. -Wno-implicit-const-int-float-conversion \
  91. -Wno-unknown-warning-option
  92. }
  93. _C_FOPTIONS_GCC=
  94. when ($GCC == "yes") {
  95. _C_FOPTIONS_GCC=-fno-delete-null-pointer-checks -fabi-version=8
  96. }
  97. _C_FOPTIONS_IOS=
  98. when ($OS_IOS != "yes") {
  99. # Split all functions and data into separate sections for DCE and ICF linker passes
  100. # NOTE: iOS build uses -fembed-bitcode which conflicts with -ffunction-sections (only relevant for ELF targets)
  101. _C_FOPTIONS_IOS=-ffunction-sections -fdata-sections
  102. }
  103. _C_FOPTIONS_DEBUG=
  104. when ($_BUILD_DEBUG == "yes") {
  105. _C_FOPTIONS_DEBUG=$FSTACK
  106. }
  107. _C_FLAGS_RELEASE=
  108. _C_FOPTIONS_RELEASE=
  109. _OPTIMIZE_RELEASE=
  110. when ($_BUILD_RELEASE == "yes") {
  111. _C_FLAGS_RELEASE=$OPTIMIZE
  112. when ($_BUILD_SIZE_OPTIMIZED == "yes") {
  113. # -Oz is clang's more size-aggressive version of -Os
  114. # For ARM specifically, clang -Oz is on par with gcc -Os:
  115. # https://github.com/android/ndk/issues/133#issuecomment-365763507
  116. when($CLANG == "yes") {
  117. _OPTIMIZE_RELEASE=-Oz
  118. }
  119. otherwise {
  120. _OPTIMIZE_RELEASE=-Os
  121. }
  122. # Generate sections with address significance tables for ICF linker pass
  123. when($CLANG == "yes") {
  124. _C_FOPTIONS_RELEASE=-faddrsig
  125. }
  126. }
  127. otherwise {
  128. _OPTIMIZE_RELEASE=-O3
  129. }
  130. }
  131. _C_FOPTIONS_PROFILER=
  132. when ($_BUILD_PROFILER_TYPE != "") {
  133. when ($_BUILD_PROFILER_TYPE in ["generic", "gprof"]) {
  134. _C_FOPTIONS_PROFILER=-fno-omit-frame-pointer
  135. }
  136. }
  137. _C_FOPTIONS =
  138. # Enable C++ exceptions (and allow them to be throw through pure C code)
  139. _C_FOPTIONS+=-fexceptions
  140. # Enable standard-conforming behavior and generate duplicate symbol error in case of duplicated global constants.
  141. # See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678#c0
  142. _C_FOPTIONS+=-fno-common
  143. _C_FOPTIONS+=$_C_FOPTIONS_INIT_ARRAY
  144. _C_FOPTIONS+=$_C_FOPTIONS_COLOR
  145. _C_FOPTIONS+=$_C_FOPTIONS_ALIGNED_ALLOCATION
  146. _C_FOPTIONS+=$_C_FOPTIONS_MAPSMOBI_ARM
  147. _C_FOPTIONS+=$_C_FOPTIONS_DEBUG
  148. _C_FOPTIONS+=$_C_FOPTIONS_RELEASE
  149. _C_FOPTIONS+=$_C_FOPTIONS_PROFILER
  150. _C_FOPTIONS+=$_C_FOPTIONS_GCC
  151. _C_FOPTIONS+=$_C_FOPTIONS_IOS
  152. # Enable default warnings subset
  153. _C_WARNINGS =-Wall -Wextra
  154. # Disable some warnings which will fail compilation at the time
  155. _C_WARNINGS+=-Wno-parentheses
  156. _C_WARNINGS+=$_C_WARNINGS_CLANG
  157. # Issue a warning if certain overload is hidden due to inheritance
  158. _CXX_WARNINGS =-Woverloaded-virtual
  159. _CXX_WARNINGS+=$_CXX_WARNINGS_CLANG
  160. _C_FLAGS_ARCH=
  161. when ($ARCH_I386 == "yes") {
  162. _C_FLAGS_ARCH=-m32
  163. }
  164. when ($ARCH_X86_64 == "yes") {
  165. _C_FLAGS_ARCH=-m64
  166. }
  167. _C_FLAGS_FAST_DEBUG=
  168. when ($_BUILD_FAST_DEBUG == "yes") {
  169. _C_FLAGS_FAST_DEBUG=-Og
  170. }
  171. _C_DEFINES_NDEBUG=-UNDEBUG
  172. when ($_BUILD_WITH_NDEBUG == "yes") {
  173. _C_DEFINES_NDEBUG=-DNDEBUG
  174. }
  175. _C_FLAGS_PROFILER=
  176. when ($_BUILD_PROFILER_TYPE == "gprof") {
  177. _C_FLAGS_PROFILER=-pg
  178. }
  179. _C_FLAGS=\
  180. $CL_DEBUG_INFO $CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__ $_C_FLAGS_ARCH_OPT -pipe
  181. _C_FLAGS+=$_C_FLAGS_ARCH
  182. _C_FLAGS+=$_C_FLAGS_FAST_DEBUG
  183. _C_FLAGS+=$_C_FLAGS_RELEASE
  184. _C_FLAGS+=$_C_FLAGS_PROFILER
  185. _SFDL_FLAGS=-E -C -x c++
  186. when ($CLANG == "yes") {
  187. _SFDL_FLAGS+=-Qunused-arguments
  188. }
  189. _DEBUG_INFO_FLAGS=-g
  190. when ($OS_LINUX == "yes") {
  191. _DEBUG_INFO_FLAGS=-g -ggnu-pubnames
  192. }
  193. _CROSS_SUFFIX=.pic
  194. when ($FORCE_NO_PIC == "yes") {
  195. _CROSS_SUFFIX=
  196. }
  197. C_COMPILER=${quo:C_COMPILER_UNQUOTED}
  198. OPTIMIZE=$_OPTIMIZE_RELEASE
  199. FSTACK=-fstack-protector
  200. DUMP_DEPS=
  201. GCC_PREPROCESSOR_OPTS=$DUMP_DEPS $C_DEFINES
  202. C_WARNING_OPTS=$_C_WARNINGS
  203. CXX_WARNING_OPTS=$_CXX_WARNINGS
  204. # PIE is only valid for executables, while PIC implies a shared library
  205. # `-pie` with a shared library is either ignored or fails to link
  206. when ($PIC == "yes") {
  207. CFLAGS+=-fPIC
  208. LDFLAGS+=-fPIC
  209. }
  210. elsewhen ($PIE == "yes") {
  211. CFLAGS+=-fPIE
  212. LDFLAGS+=-fPIE -pie
  213. }
  214. CFLAGS+=$_C_FLAGS $DEBUG_INFO_FLAGS $_C_FOPTIONS $C_WARNING_OPTS $GCC_PREPROCESSOR_OPTS $USER_CFLAGS $USER_CFLAGS_GLOBAL
  215. CXXFLAGS+=$CFLAGS $_CXX_STD $CXX_WARNING_OPTS $USER_CXXFLAGS $USER_CXXFLAGS_GLOBAL
  216. CONLYFLAGS+=$USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL
  217. CXX_COMPILER=${quo:CXX_COMPILER_UNQUOTED}
  218. NOGCCSTACKCHECK=yes
  219. SFDL_FLAG=$_SFDL_FLAGS -o $SFDL_TMP_OUT
  220. WERROR_FLAG=-Werror
  221. DEBUG_INFO_FLAGS=$_DEBUG_INFO_FLAGS
  222. when ($NO_WSHADOW == "yes") {
  223. C_WARNING_OPTS += -Wno-shadow
  224. }
  225. when ($NO_COMPILER_WARNINGS == "yes") {
  226. C_WARNING_OPTS = -w
  227. CXX_WARNING_OPTS = -Wno-everything
  228. }
  229. when ($NO_OPTIMIZE == "yes") {
  230. OPTIMIZE = -O0
  231. }
  232. when ($SAVE_TEMPS == "yes") {
  233. CXXFLAGS += -save-temps
  234. }
  235. when ($NOGCCSTACKCHECK != "yes") {
  236. FSTACK += -fstack-check
  237. }
  238. # _C_DEBUG_LIGHT=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B
  239. # _C_DEBUG_LIGHT_CL=$_C_DEBUG_LIGHT -Xclang -fdebug-compilation-dir -Xclang /tmp
  240. # _C_DEBUG=$_C_DEBUG_LIGHT -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T
  241. # _C_DEBUG_CL=$_C_DEBUG -Xclang -fdebug-compilation-dir -Xclang /tmp
  242. # _YASM_DEBUG_LIGHT=--replace=${ARCADIA_BUILD_ROOT}=/-B
  243. # _YASM_DEBUG=$_YASM_DEBUG_LIGHT --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T
  244. # when ($FORCE_CONSISTENT_DEBUG == "yes") {
  245. # when ($CLANG == "yes") {
  246. # CL_DEBUG_INFO=$_C_DEBUG_CL
  247. # }
  248. # otherwise {
  249. # CL_DEBUG_INFO=$_C_DEBUG
  250. # }
  251. # YASM_DEBUG_INFO=$_YASM_DEBUG
  252. # }
  253. # elsewhen ($CONSISTENT_DEBUG == "yes") {
  254. # when ($CLANG == "yes") {
  255. # CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=$_C_DEBUG_CL
  256. # }
  257. # otherwise {
  258. # CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=$_C_DEBUG
  259. # }
  260. # YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=$_YASM_DEBUG
  261. # }
  262. # elsewhen ($CONSISTENT_DEBUG_LIGHT == "yes") {
  263. # when ($CLANG == "yes") {
  264. # CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=$_C_DEBUG_LIGHT_CL
  265. # }
  266. # otherwise {
  267. # CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=$_C_DEBUG_LIGHT
  268. # }
  269. # YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=$_YASM_DEBUG_LIGHT
  270. # }
  271. #
  272. # _C_BUILTINS=-Wno-builtin-macro-redefined -D__DATE__="\"""Sep 31 2019""\"" -D__TIME__=\"00:00:00\"
  273. # when ($CLANG == "yes" && $_TC_VERSION_AT_LEAST_10 || $GCC == "yes" && $_TC_VERSION_AT_LEAST_8 == "yes") {
  274. # # XXX does not support non-normalized paths
  275. # _C_BUILTINS+=-fmacro-prefix-map=${ARCADIA_BUILD_ROOT}/= -fmacro-prefix-map=${ARCADIA_ROOT}/= -fmacro-prefix-map=$(TOOL_ROOT)/=
  276. # }
  277. # otherwise {
  278. # # XXX this macro substitution breaks __FILE__ in included sources
  279. # _C_BUILTINS+=-D__FILE__=\"${input;qe;rootrel:SRC}\"
  280. # }
  281. #
  282. # when ($FORCE_CONSISTENT_BUILD == "yes") {
  283. # CL_MACRO_INFO=$_C_BUILTINS
  284. # }
  285. # elsewhen ($CONSISTENT_BUILD == "yes") {
  286. # CL_MACRO_INFO_DISABLE_CACHE__NO_UID__=$_C_BUILTINS
  287. # }
  288. when ($FORCE_CONSISTENT_DEBUG == "yes") {
  289. when ($CLANG == "yes") {
  290. CL_DEBUG_INFO=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T -Xclang -fdebug-compilation-dir -Xclang /tmp
  291. }
  292. otherwise {
  293. CL_DEBUG_INFO=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T
  294. }
  295. YASM_DEBUG_INFO=--replace=${ARCADIA_BUILD_ROOT}=/-B --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T
  296. }
  297. elsewhen ($CONSISTENT_DEBUG == "yes") {
  298. when ($CLANG == "yes") {
  299. CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T -Xclang -fdebug-compilation-dir -Xclang /tmp
  300. }
  301. otherwise {
  302. CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T
  303. }
  304. YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=--replace=${ARCADIA_BUILD_ROOT}=/-B --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T
  305. }
  306. elsewhen ($CONSISTENT_DEBUG_LIGHT == "yes") {
  307. when ($CLANG == "yes") {
  308. CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -Xclang -fdebug-compilation-dir -Xclang /tmp
  309. }
  310. otherwise {
  311. CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B
  312. }
  313. YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=--replace=${ARCADIA_BUILD_ROOT}=/-B
  314. }
  315. when ($FORCE_CONSISTENT_BUILD == "yes") {
  316. CL_MACRO_INFO=-Wno-builtin-macro-redefined -D__DATE__=\""Sep 31 2019\"" -D__TIME__=\"00:00:00\" -fmacro-prefix-map=${ARCADIA_BUILD_ROOT}/= -fmacro-prefix-map=${ARCADIA_ROOT}/= -fmacro-prefix-map=$(TOOL_ROOT)/=
  317. }
  318. elsewhen ($CONSISTENT_BUILD == "yes") {
  319. CL_MACRO_INFO_DISABLE_CACHE__NO_UID__=-Wno-builtin-macro-redefined -D__DATE__=\""Sep 31 2019\"" -D__TIME__=\"00:00:00\" -fmacro-prefix-map=${ARCADIA_BUILD_ROOT}/= -fmacro-prefix-map=${ARCADIA_ROOT}/= -fmacro-prefix-map=$(TOOL_ROOT)/=
  320. }
  321. _CFLAGS_ARCH_I386=
  322. when ($ARCH_I386 == "yes" && $ARCH_I686 != "yes") {
  323. _CFLAGS_ARCH_I386=-march=pentiumpro -mtune=pentiumpro
  324. }
  325. CFLAGS+=$_CFLAGS_ARCH_I386
  326. BC_CFLAGS+=$CFLAGS
  327. BC_CXXFLAGS+=$CXXFLAGS
  328. C_DEFINES+=-D__LONG_LONG_SUPPORTED
  329. OBJ_CROSS_SUF=$OBJ_SUF$_CROSS_SUFFIX
  330. OBJECT_SUF=$OBJ_SUF$_CROSS_SUFFIX.o
  331. GCC_COMPILE_FLAGS=$EXTRA_C_FLAGS -c -o $_COMPILE_OUTPUTS ${pre=-I:_C__INCLUDE}
  332. EXTRA_COVERAGE_OUTPUT=${output;noauto;hide;suf=${OBJECT_SUF}.gcno:SRC}
  333. CLANG_TIDY_OUTPUT_FILE=${output;noauto;suf=${OBJECT_SUF}.tidyjson:SRC}
  334. YNDEXER_OUTPUT_FILE=${output;noauto;suf=${OBJECT_SUF}.ydx.pb2:SRC}
  335. when ($DUMP_COMPILER_DEPS == "yes") {
  336. DUMP_DEPS=-MD ${output;hide;noauto;suf=${OBJ_SUF}.o.d:SRC}
  337. }
  338. elsewhen ($DUMP_COMPILER_DEPS_FAST == "yes") {
  339. DUMP_DEPS=-E -M -MF ${output;noauto;suf=${OBJ_SUF}.o.d:SRC}
  340. }
  341. _COMPILER_TIME_TRACE_GRANULARITY=500
  342. when ($TIME_TRACE_GRANULARITY && $TIME_TRACE_GRANULARITY != "") {
  343. _COMPILER_TIME_TRACE_GRANULARITY=$TIME_TRACE_GRANULARITY
  344. }
  345. _COMPILER_TIME_TRACE_FLAGS=
  346. _COMPILER_TIME_TRACE_POSTPROCESS=
  347. when (($TIME_TRACE == "yes" || $COMPILER_TIME_TRACE == "yes") && $CLANG == "yes" && $_TC_VERSION_AT_LEAST_9 == "yes") {
  348. _COMPILER_TIME_TRACE_FLAGS=-ftime-trace -ftime-trace-granularity=$_COMPILER_TIME_TRACE_GRANULARITY
  349. _COMPILER_TIME_TRACE_POSTPROCESS=$YMAKE_PYTHON ${input:"build/scripts/find_time_trace.py"} $_COMPILE_OUTPUTS $_COMPILE_TIME_TRACE_OUTPUTS
  350. }
  351. _C_CPP_KV_STYLE=${requirements;hide:CC_REQUIREMENTS} ${hide;kv:"p CC"} ${hide;kv:"pc green"}
  352. _CPP_ARGS=\
  353. $CLANG_TIDY_ARGS \
  354. $YNDEXER_ARGS \
  355. $CXX_COMPILER \
  356. $C_FLAGS_PLATFORM \
  357. $GCC_COMPILE_FLAGS \
  358. $CXXFLAGS \
  359. $CL_MACRO_INFO \
  360. $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ \
  361. $_COMPILER_TIME_TRACE_FLAGS \
  362. $EXTRA_OUTPUT \
  363. $SRCFLAGS \
  364. $_LANG_CFLAGS_VALUE \
  365. ${input:SRC} \
  366. $TOOLCHAIN_ENV \
  367. $YNDEXER_OUTPUT \
  368. && $_COMPILER_TIME_TRACE_POSTPROCESS \
  369. $_C_CPP_KV_STYLE
  370. _C_ARGS=\
  371. $CLANG_TIDY_ARGS \
  372. $YNDEXER_ARGS \
  373. $C_COMPILER \
  374. $C_FLAGS_PLATFORM \
  375. $GCC_COMPILE_FLAGS \
  376. $CFLAGS \
  377. $CL_MACRO_INFO \
  378. $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ \
  379. $_COMPILER_TIME_TRACE_FLAGS \
  380. $CONLYFLAGS \
  381. $EXTRA_OUTPUT \
  382. $SRCFLAGS \
  383. ${input:SRC} \
  384. $TOOLCHAIN_ENV \
  385. $YNDEXER_OUTPUT \
  386. $_C_CPP_KV_STYLE
  387. ### _SRC_C_NODEPS_CMD is obtained from _C_ARGS by filtering the following elements:
  388. ### ${input:SRC}
  389. ### $CL_MACRO_INFO
  390. ### $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__
  391. ### $CLANG_TIDY_ARGS
  392. ### $EXTRA_OUTPUT
  393. ### $EXTRA_COVERAGE_OUTPUT
  394. ### $SRCFLAGS
  395. ### $YNDEXER_ARGS
  396. ### $YNDEXER_OUTPUT
  397. ###
  398. ### $GCC_COMPILE_FLAGS is substituted for $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC}
  399. _SRC_C_NODEPS_CMD=\
  400. $C_COMPILER \
  401. $C_FLAGS_PLATFORM \
  402. $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC} \
  403. $CFLAGS \
  404. $CONLYFLAGS \
  405. $TOOLCHAIN_ENV \
  406. $_C_CPP_KV_STYLE
  407. _SRC_CPP_CMD=$_CPP_ARGS
  408. _SRC_C_CMD=$_C_ARGS
  409. _SRC_M_CMD=$SRC_c($SRC $SRCFLAGS)
  410. _SRC_MASM_CMD=$_EMPTY_CMD
  411. # fuzzing configuration
  412. when ($CLANG == "yes") {
  413. when ($_TC_VERSION_AT_LEAST_12 == "yes") {
  414. LIBFUZZER_PATH=contrib/libs/libfuzzer12
  415. }
  416. }