aboutsummaryrefslogtreecommitdiffstats
path: root/build/conf/compilers
diff options
context:
space:
mode:
authormonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
committermonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
commit06e5c21a835c0e923506c4ff27929f34e00761c2 (patch)
tree75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /build/conf/compilers
parent03f024c4412e3aa613bb543cf1660176320ba8f4 (diff)
downloadydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz
fix ya.make
Diffstat (limited to 'build/conf/compilers')
-rw-r--r--build/conf/compilers/gnu_compiler.conf420
-rw-r--r--build/conf/compilers/msvc_compiler.conf270
2 files changed, 0 insertions, 690 deletions
diff --git a/build/conf/compilers/gnu_compiler.conf b/build/conf/compilers/gnu_compiler.conf
deleted file mode 100644
index 8bb05a134b..0000000000
--- a/build/conf/compilers/gnu_compiler.conf
+++ /dev/null
@@ -1,420 +0,0 @@
-_C_DEFINES_ANDROID=
-_C_DEFINES_ANDROID_OTHERWISE=
-when ($OS_ANDROID == "yes") {
- _C_DEFINES_ANDROID=-DANDROID_FAKEID=$ANDROID_FAKEID
-}
-otherwise {
- # There is no usable _FILE_OFFSET_BITS=64 support in Androids until API 21. And it's incomplete until at least API 24.
- # https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
- # Arcadia have API 16 for 32-bit Androids.
- _C_DEFINES_ANDROID_OTHERWISE=-D_FILE_OFFSET_BITS=64
-}
-
-_C_DEFINES_GNU_SOURCE=
-when ($OS_LINUX == "yes" || $OS_ANDROID == "yes" || $OS_CYGWIN == "yes") {
- _C_DEFINES_GNU_SOURCE=-D_GNU_SOURCE
-}
-
-_C_DEFINES_CLANG_LINUX_X86_64=
-when ($CLANG == "yes" && $OS_LINUX == "yes" && $ARCH_X86_64 == "yes") {
- _C_DEFINES_CLANG_LINUX_X86_64=-D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE
-}
-
-_C_DEFINES_IOS=
-when ($OS_IOS == "yes") {
- _C_DEFINES_IOS=-D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
-}
-
-_C_DEFINES_WITH_VALGRIND=
-when ($WITH_VALGRIND == "yes") {
- _C_DEFINES_WITH_VALGRIND=-DWITH_VALGRIND=1
-}
-
-C_DEFINES =-DFAKEID=$CPP_FAKEID
-C_DEFINES+=$_C_DEFINES_ANDROID
-C_DEFINES+=\
- -DARCADIA_ROOT=${ARCADIA_ROOT} \
- -DARCADIA_BUILD_ROOT=${ARCADIA_BUILD_ROOT} \
- -D_THREAD_SAFE \
- -D_PTHREADS \
- -D_REENTRANT \
- -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES \
- -D_LARGEFILE_SOURCE \
- -D__STDC_CONSTANT_MACROS \
- -D__STDC_FORMAT_MACROS
-C_DEFINES+=$_C_DEFINES_ANDROID_OTHERWISE
-C_DEFINES+=$_C_DEFINES_GNU_SOURCE
-C_DEFINES+=$_C_DEFINES_CLANG_LINUX_X86_64
-C_DEFINES+=$_C_DEFINES_IOS
-C_DEFINES+=$_C_DEFINES_WITH_VALGRIND
-C_DEFINES+=$_C_DEFINES_NDEBUG
-
-_C_FOPTIONS_INIT_ARRAY=
-when ($CLANG == "yes" && $OS_LINUX == "yes") {
- # Use .init_array instead of .ctors (default for old clang versions)
- # See: https://maskray.me/blog/2021-11-07-init-ctors-init-array
- _C_FOPTIONS_INIT_ARRAY=-fuse-init-array
-}
-
-_C_FOPTIONS_COLOR=
-_C_FOPTIONS_ALIGNED_ALLOCATION=
-when ($CLANG == "yes") {
- # Set up output colorization
- _C_FOPTIONS_COLOR=-fcolor-diagnostics
- # Enable aligned allocation
- _C_FOPTIONS_ALIGNED_ALLOCATION=-faligned-allocation
-}
-elsewhen ($GCC == "yes") {
- # Set up output colorization
- _C_FOPTIONS_COLOR=-fdiagnostics-color=always
- # It looks like there is no way to enable aligned allocation in gcc
-}
-
-_C_FOPTIONS_MAPSMOBI_ARM=
-when ($OS_IOS == "yes") {
- when ($MAPSMOBI_BUILD_TARGET == "yes" && $ARCH_ARM == "yes") {
- _C_FOPTIONS_MAPSMOBI_ARM=-fembed-bitcode
- }
-}
-
-_C_WARNINGS_CLANG=
-_CXX_WARNINGS_CLANG=
-when ($CLANG == "yes") {
- _CXX_WARNINGS_CLANG=\
- -Wimport-preprocessor-directive-pedantic \
- -Wno-ambiguous-reversed-operator \
- -Wno-defaulted-function-deleted \
- -Wno-deprecated-anon-enum-enum-conversion \
- -Wno-deprecated-enum-enum-conversion \
- -Wno-deprecated-enum-float-conversion \
- -Wno-deprecated-volatile \
- -Wno-pessimizing-move \
- -Wno-range-loop-construct \
- -Wno-return-std-move \
- -Wno-undefined-var-template
-
- # -Wno-unknown-warning-option
- # For nvcc to accept the above.
- _C_WARNINGS_CLANG=\
- -Wno-implicit-const-int-float-conversion \
- -Wno-unknown-warning-option
-}
-
-_C_FOPTIONS_GCC=
-when ($GCC == "yes") {
- _C_FOPTIONS_GCC=-fno-delete-null-pointer-checks -fabi-version=8
-}
-
-_C_FOPTIONS_IOS=
-when ($OS_IOS != "yes") {
- # Split all functions and data into separate sections for DCE and ICF linker passes
- # NOTE: iOS build uses -fembed-bitcode which conflicts with -ffunction-sections (only relevant for ELF targets)
- _C_FOPTIONS_IOS=-ffunction-sections -fdata-sections
-}
-
-_C_FOPTIONS_DEBUG=
-when ($_BUILD_DEBUG == "yes") {
- _C_FOPTIONS_DEBUG=$FSTACK
-}
-
-_C_FLAGS_RELEASE=
-_C_FOPTIONS_RELEASE=
-_OPTIMIZE_RELEASE=
-when ($_BUILD_RELEASE == "yes") {
- _C_FLAGS_RELEASE=$OPTIMIZE
- when ($_BUILD_SIZE_OPTIMIZED == "yes") {
- # -Oz is clang's more size-aggressive version of -Os
- # For ARM specifically, clang -Oz is on par with gcc -Os:
- # https://github.com/android/ndk/issues/133#issuecomment-365763507
- when($CLANG == "yes") {
- _OPTIMIZE_RELEASE=-Oz
- }
- otherwise {
- _OPTIMIZE_RELEASE=-Os
- }
-
- # Generate sections with address significance tables for ICF linker pass
- when($CLANG == "yes") {
- _C_FOPTIONS_RELEASE=-faddrsig
- }
- }
- otherwise {
- _OPTIMIZE_RELEASE=-O3
- }
-}
-
-_C_FOPTIONS_PROFILER=
-when ($_BUILD_PROFILER_TYPE != "") {
- when ($_BUILD_PROFILER_TYPE in ["generic", "gprof"]) {
- _C_FOPTIONS_PROFILER=-fno-omit-frame-pointer
- }
-}
-
-_C_FOPTIONS =
-
-# Enable C++ exceptions (and allow them to be throw through pure C code)
-_C_FOPTIONS+=-fexceptions
-
-# Enable standard-conforming behavior and generate duplicate symbol error in case of duplicated global constants.
-# See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678#c0
-_C_FOPTIONS+=-fno-common
-
-_C_FOPTIONS+=$_C_FOPTIONS_INIT_ARRAY
-_C_FOPTIONS+=$_C_FOPTIONS_COLOR
-_C_FOPTIONS+=$_C_FOPTIONS_ALIGNED_ALLOCATION
-_C_FOPTIONS+=$_C_FOPTIONS_MAPSMOBI_ARM
-_C_FOPTIONS+=$_C_FOPTIONS_DEBUG
-_C_FOPTIONS+=$_C_FOPTIONS_RELEASE
-_C_FOPTIONS+=$_C_FOPTIONS_PROFILER
-_C_FOPTIONS+=$_C_FOPTIONS_GCC
-_C_FOPTIONS+=$_C_FOPTIONS_IOS
-
-# Enable default warnings subset
-_C_WARNINGS =-Wall -Wextra
-
-# Disable some warnings which will fail compilation at the time
-_C_WARNINGS+=-Wno-parentheses
-
-_C_WARNINGS+=$_C_WARNINGS_CLANG
-
-# Issue a warning if certain overload is hidden due to inheritance
-_CXX_WARNINGS =-Woverloaded-virtual
-
-_CXX_WARNINGS+=$_CXX_WARNINGS_CLANG
-
-_C_FLAGS_ARCH=
-when ($ARCH_I386 == "yes") {
- _C_FLAGS_ARCH=-m32
-}
-when ($ARCH_X86_64 == "yes") {
- _C_FLAGS_ARCH=-m64
-}
-
-_C_FLAGS_FAST_DEBUG=
-when ($_BUILD_FAST_DEBUG == "yes") {
- _C_FLAGS_FAST_DEBUG=-Og
-}
-
-_C_DEFINES_NDEBUG=-UNDEBUG
-when ($_BUILD_WITH_NDEBUG == "yes") {
- _C_DEFINES_NDEBUG=-DNDEBUG
-}
-
-_C_FLAGS_PROFILER=
-when ($_BUILD_PROFILER_TYPE == "gprof") {
- _C_FLAGS_PROFILER=-pg
-}
-
-_C_FLAGS=\
-$CL_DEBUG_INFO $CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__ $_C_FLAGS_ARCH_OPT -pipe
-_C_FLAGS+=$_C_FLAGS_ARCH
-_C_FLAGS+=$_C_FLAGS_FAST_DEBUG
-_C_FLAGS+=$_C_FLAGS_RELEASE
-_C_FLAGS+=$_C_FLAGS_PROFILER
-
-_SFDL_FLAGS=-E -C -x c++
-when ($CLANG == "yes") {
- _SFDL_FLAGS+=-Qunused-arguments
-}
-
-_DEBUG_INFO_FLAGS=-g
-when ($OS_LINUX == "yes") {
- _DEBUG_INFO_FLAGS=-g -ggnu-pubnames
-}
-
-_CROSS_SUFFIX=.pic
-when ($FORCE_NO_PIC == "yes") {
- _CROSS_SUFFIX=
-}
-
-C_COMPILER=${quo:C_COMPILER_UNQUOTED}
-OPTIMIZE=$_OPTIMIZE_RELEASE
-FSTACK=-fstack-protector
-DUMP_DEPS=
-GCC_PREPROCESSOR_OPTS=$DUMP_DEPS $C_DEFINES
-C_WARNING_OPTS=$_C_WARNINGS
-CXX_WARNING_OPTS=$_CXX_WARNINGS
-
-# PIE is only valid for executables, while PIC implies a shared library
-# `-pie` with a shared library is either ignored or fails to link
-when ($PIC == "yes") {
- CFLAGS+=-fPIC
- LDFLAGS+=-fPIC
-}
-elsewhen ($PIE == "yes") {
- CFLAGS+=-fPIE
- LDFLAGS+=-fPIE -pie
-}
-
-CFLAGS+=$_C_FLAGS $DEBUG_INFO_FLAGS $_C_FOPTIONS $C_WARNING_OPTS $GCC_PREPROCESSOR_OPTS $USER_CFLAGS $USER_CFLAGS_GLOBAL
-CXXFLAGS+=$CFLAGS $_CXX_STD $CXX_WARNING_OPTS $USER_CXXFLAGS $USER_CXXFLAGS_GLOBAL
-CONLYFLAGS+=$USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL
-CXX_COMPILER=${quo:CXX_COMPILER_UNQUOTED}
-NOGCCSTACKCHECK=yes
-SFDL_FLAG=$_SFDL_FLAGS -o $SFDL_TMP_OUT
-WERROR_FLAG=-Werror
-DEBUG_INFO_FLAGS=$_DEBUG_INFO_FLAGS
-
-when ($NO_WSHADOW == "yes") {
- C_WARNING_OPTS += -Wno-shadow
-}
-# Though -w is intended to switch off all the warnings,
-# it does not switch at least -Wregister and -Wreserved-user-defined-literal under clang.
-#
-# Use -Wno-everything to force warning suppression.
-when ($NO_COMPILER_WARNINGS == "yes") {
- C_WARNING_OPTS = -w
- CXX_WARNING_OPTS = -Wno-everything
-}
-when ($NO_OPTIMIZE == "yes") {
- OPTIMIZE = -O0
-}
-when ($SAVE_TEMPS == "yes") {
- CXXFLAGS += -save-temps
-}
-when ($NOGCCSTACKCHECK != "yes") {
- FSTACK += -fstack-check
-}
-
-when ($FORCE_CONSISTENT_DEBUG == "yes") {
- when ($CLANG == "yes") {
- 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
- }
- otherwise {
- CL_DEBUG_INFO=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T
- }
- YASM_DEBUG_INFO=--replace=${ARCADIA_BUILD_ROOT}=/-B --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T
-}
-elsewhen ($CONSISTENT_DEBUG == "yes") {
- when ($CLANG == "yes") {
- 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
- }
- otherwise {
- 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
- }
- YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=--replace=${ARCADIA_BUILD_ROOT}=/-B --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T
-}
-elsewhen ($CONSISTENT_DEBUG_LIGHT == "yes") {
- when ($CLANG == "yes") {
- CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -Xclang -fdebug-compilation-dir -Xclang /tmp
- }
- otherwise {
- CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B
- }
- YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=--replace=${ARCADIA_BUILD_ROOT}=/-B
-}
-
-when ($FORCE_CONSISTENT_BUILD == "yes") {
- 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)/=
-}
-elsewhen ($CONSISTENT_BUILD == "yes") {
- 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)/=
-}
-
-_CFLAGS_ARCH_I386=
-when ($ARCH_I386 == "yes" && $ARCH_I686 != "yes") {
- _CFLAGS_ARCH_I386=-march=pentiumpro -mtune=pentiumpro
-}
-
-CFLAGS+=$_CFLAGS_ARCH_I386
-
-BC_CFLAGS+=$CFLAGS
-BC_CXXFLAGS+=$CXXFLAGS
-C_DEFINES+=-D__LONG_LONG_SUPPORTED
-
-OBJ_CROSS_SUF=$OBJ_SUF$_CROSS_SUFFIX
-OBJECT_SUF=$OBJ_SUF$_CROSS_SUFFIX.o
-GCC_COMPILE_FLAGS=$EXTRA_C_FLAGS -c -o $_COMPILE_OUTPUTS ${pre=-I:_C__INCLUDE}
-EXTRA_COVERAGE_OUTPUT=${output;noauto;hide;suf=${OBJECT_SUF}.gcno:SRC}
-CLANG_TIDY_OUTPUT_FILE=${output;noauto;suf=${OBJECT_SUF}.tidyjson:SRC}
-YNDEXER_OUTPUT_FILE=${output;noauto;suf=${OBJECT_SUF}${COMPILE_OUT_SUFFIX}.ydx.pb2:SRC}
-
-when ($DUMP_COMPILER_DEPS == "yes") {
- DUMP_DEPS=-MD ${output;hide;noauto;suf=${OBJ_SUF}.o.d:SRC}
-}
-elsewhen ($DUMP_COMPILER_DEPS_FAST == "yes") {
- DUMP_DEPS=-E -M -MF ${output;noauto;suf=${OBJ_SUF}.o.d:SRC}
-}
-
-_COMPILER_TIME_TRACE_GRANULARITY=500
-when ($TIME_TRACE_GRANULARITY && $TIME_TRACE_GRANULARITY != "") {
- _COMPILER_TIME_TRACE_GRANULARITY=$TIME_TRACE_GRANULARITY
-}
-
-_COMPILER_TIME_TRACE_FLAGS=
-_COMPILER_TIME_TRACE_POSTPROCESS=
-when (($TIME_TRACE == "yes" || $COMPILER_TIME_TRACE == "yes") && $CLANG == "yes" && $_TC_VERSION_AT_LEAST_9 == "yes") {
- _COMPILER_TIME_TRACE_FLAGS=-ftime-trace -ftime-trace-granularity=$_COMPILER_TIME_TRACE_GRANULARITY
- _COMPILER_TIME_TRACE_POSTPROCESS=$YMAKE_PYTHON ${input:"build/scripts/find_time_trace.py"} $_COMPILE_OUTPUTS $_COMPILE_TIME_TRACE_OUTPUTS
-}
-
-_C_CPP_KV_STYLE=${hide;kv:"p CC"} ${hide;kv:"pc green"}
-_CPP_ARGS=\
- $CLANG_TIDY_ARGS \
- $YNDEXER_ARGS \
- $CXX_COMPILER \
- $C_FLAGS_PLATFORM \
- $GCC_COMPILE_FLAGS \
- $CXXFLAGS \
- $CL_MACRO_INFO \
- $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ \
- $_COMPILER_TIME_TRACE_FLAGS \
- $EXTRA_OUTPUT \
- $SRCFLAGS \
- $_LANG_CFLAGS_VALUE \
- ${input:SRC} \
- $TOOLCHAIN_ENV \
- $YNDEXER_OUTPUT \
- && $_COMPILER_TIME_TRACE_POSTPROCESS \
- $_C_CPP_KV_STYLE
-
-_C_ARGS=\
- $CLANG_TIDY_ARGS \
- $YNDEXER_ARGS \
- $C_COMPILER \
- $C_FLAGS_PLATFORM \
- $GCC_COMPILE_FLAGS \
- $CFLAGS \
- $CL_MACRO_INFO \
- $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ \
- $_COMPILER_TIME_TRACE_FLAGS \
- $CONLYFLAGS \
- $EXTRA_OUTPUT \
- $SRCFLAGS \
- ${input:SRC} \
- $TOOLCHAIN_ENV \
- $YNDEXER_OUTPUT \
- $_C_CPP_KV_STYLE
-
-### _SRC_C_NODEPS_CMD is obtained from _C_ARGS by filtering the following elements:
-### ${input:SRC}
-### $CL_MACRO_INFO
-### $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__
-### $CLANG_TIDY_ARGS
-### $EXTRA_OUTPUT
-### $EXTRA_COVERAGE_OUTPUT
-### $SRCFLAGS
-### $YNDEXER_ARGS
-### $YNDEXER_OUTPUT
-###
-### $GCC_COMPILE_FLAGS is substituted for $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC}
-_SRC_C_NODEPS_CMD=\
- $C_COMPILER \
- $C_FLAGS_PLATFORM \
- $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC} \
- $CFLAGS \
- $CONLYFLAGS \
- $TOOLCHAIN_ENV \
- $_C_CPP_KV_STYLE
-
-_SRC_CPP_CMD=$_CPP_ARGS
-_SRC_C_CMD=$_C_ARGS
-_SRC_M_CMD=$SRC_c($SRC $SRCFLAGS)
-_SRC_MASM_CMD=$_EMPTY_CMD
-
-# fuzzing configuration
-when ($CLANG == "yes") {
- when ($_TC_VERSION_AT_LEAST_12 == "yes") {
- LIBFUZZER_PATH=contrib/libs/libfuzzer12
- }
-}
diff --git a/build/conf/compilers/msvc_compiler.conf b/build/conf/compilers/msvc_compiler.conf
deleted file mode 100644
index 27b53a64cd..0000000000
--- a/build/conf/compilers/msvc_compiler.conf
+++ /dev/null
@@ -1,270 +0,0 @@
-_MSVC_MACRO=_WIN32_WINNT
-_MSVC_WINDOWS7=0x0601
-_MSVC_WINDOWS8=0x0602
-
-_MSVC_WARNS_ENABLED=
-# 'expression' : signed/unsigned mismatch
-_MSVC_WARNS_ENABLED+=/w14018
-# 'class' : class has virtual functions, but destructor is not virtual
-_MSVC_WARNS_ENABLED+=/w14265
-# 'operator' : expression is always false
-_MSVC_WARNS_ENABLED+=/w14296
-# missing type specifier - int assumed
-_MSVC_WARNS_ENABLED+=/w14431
-
-_MSVC_WARNS_AS_ERRORS=
-# 'function' undefined; assuming extern returning int
-_MSVC_WARNS_AS_ERRORS+=/we4013
-
-_MSVC_WARNS_DISABLED=
-# conditional expression is constant
-_MSVC_WARNS_DISABLED+=/wd4127
-# nonstandard extension used : zero-sized array in struct/union
-_MSVC_WARNS_DISABLED+=/wd4200
-# nonstandard extension used : nameless struct/union
-_MSVC_WARNS_DISABLED+=/wd4201
-# elements of array will be default initialized
-_MSVC_WARNS_DISABLED+=/wd4351
-# 'this' : used in base member initializer list
-_MSVC_WARNS_DISABLED+=/wd4355
-# decorated name length exceeded, name was truncated
-_MSVC_WARNS_DISABLED+=/wd4503
-# default constructor could not be generated
-_MSVC_WARNS_DISABLED+=/wd4510
-# copy constructor could not be generated
-_MSVC_WARNS_DISABLED+=/wd4511
-# assignment operator could not be generated
-_MSVC_WARNS_DISABLED+=/wd4512
-# check operator precedence for possible error; use parentheses to clarify precedence
-_MSVC_WARNS_DISABLED+=/wd4554
-# 'object' can never be instantiated - user defined constructor required
-_MSVC_WARNS_DISABLED+=/wd4610
-# assignment within conditional expression
-_MSVC_WARNS_DISABLED+=/wd4706
-# forcing value to bool 'true' or 'false' (performance warning)
-_MSVC_WARNS_DISABLED+=/wd4800
-# The POSIX name for this item is deprecated
-_MSVC_WARNS_DISABLED+=/wd4996
-# function marked as __forceinline not inlined
-_MSVC_WARNS_DISABLED+=/wd4714
-# 'TAtomic' : top-level volatile in cast is ignored
-_MSVC_WARNS_DISABLED+=/wd4197
-# 'initializing' : conversion from 'int' to 'ui32', signed/unsigned mismatch
-_MSVC_WARNS_DISABLED+=/wd4245
-# 'ystd::function<void (uint8_t *)>': structure was padded due to alignment specifier
-_MSVC_WARNS_DISABLED+=/wd4324
-# 'register' is no longer a supported storage class
-_MSVC_WARNS_DISABLED+=/wd5033
-
-_C_WARNINGS_CLANG_CL=
-_CXX_WARNINGS_CLANG_CL=
-_CXX_WARNINGS_CLANG_CL_IDE_MSVS=
-when ($CLANG_CL == "yes") {
- _C_WARNINGS_CLANG_CL=\
- -Wno-format \
- -Wno-parentheses \
- -Wno-unknown-warning-option
-
- _CXX_WARNINGS_CLANG_CL=\
- -Wimport-preprocessor-directive-pedantic \
- -Woverloaded-virtual \
- -Wno-ambiguous-reversed-operator \
- -Wno-defaulted-function-deleted \
- -Wno-deprecated-anon-enum-enum-conversion \
- -Wno-deprecated-enum-enum-conversion \
- -Wno-deprecated-enum-float-conversion \
- -Wno-deprecated-volatile \
- -Wno-undefined-var-template
-
- when ($IDE_MSVS == "yes") {
- _CXX_WARNINGS_CLANG_CL_IDE_MSVS=-Wno-unused-command-line-argument
- }
-}
-
-_C_WARNINGS =$_MSVC_WARNS_AS_ERRORS
-_C_WARNINGS+=$_MSVC_WARNS_ENABLED
-_C_WARNINGS+=$_MSVC_WARNS_DISABLED
-_C_WARNINGS+=$_C_WARNINGS_CLANG_CL
-
-_CXX_WARNINGS =
-_CXX_WARNINGS+=$_CXX_WARNINGS_CLANG_CL
-_CXX_WARNINGS+=$_CXX_WARNINGS_CLANG_CL_IDE_MSVS
-
-_WINAPI_UNICODE=no
-
-_DEFINES_ARCH=
-when ($ARCH_X86_64 == "yes") {
- _DEFINES_ARCH=/D_WIN64 /DWIN64
-}
-elsewhen ($ARCH_ARMV7 == "yes") {
- _DEFINES_ARCH=/D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE /D__arm__
-}
-
-_DEFINES_WIN32_WINNT=/D$_MSVC_MACRO=$_MSVC_WINDOWS7
-
-when ($_WINAPI_UNICODE == "yes") {
- _DEFINES_UNICODE=/DUNICODE /D_UNICODE
-}
-otherwise {
- _DEFINES_UNICODE=/D_MBCS
-}
-
-_C_DEFINES=\
- /DARCADIA_ROOT=${ARCADIA_ROOT} \
- /DARCADIA_BUILD_ROOT=${ARCADIA_BUILD_ROOT} \
- /DFAKEID=$CPP_FAKEID \
- /DWIN32 \
- /D_WIN32 \
- /D_WINDOWS \
- /D_CRT_SECURE_NO_WARNINGS \
- /D_CRT_NONSTDC_NO_WARNINGS \
- /D_USE_MATH_DEFINES \
- /D__STDC_CONSTANT_MACROS \
- /D__STDC_FORMAT_MACROS \
- /D_USING_V110_SDK71_ \
- /D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES \
- /DWIN32_LEAN_AND_MEAN \
- /DNOMINMAX
-
-_C_DEFINES+=$_DEFINES_ARCH
-_C_DEFINES+=$_DEFINES_WIN32_WINNT
-_C_DEFINES+=$_DEFINES_UNICODE
-
-C_DEFINES+=$_C_DEFINES
-
-_MSVC_FLAGS_CLANG=
-_MSVC_FLAGS_CLANG_ARCH=
-_MSVC_FLAGS_CLANG_EQ_2019=
-when ($CLANG_CL == "yes") {
- # -fcase-insensitive-paths
- # Allow <windows.h> to be included via <Windows.h> in case-sensitive file-systems.
- #
- # -fms-compatibility-version
- # At the time clang-cl identifies itself as MSVC 19.11:
- # (actual value can be found in clang/lib/Driver/ToolChains/MSVC.cpp, the syntax would be like
- # ```
- # MSVT = VersionTuple(19, 11);
- # ```
- #
- # We override this value to match current value of the actual MSVC being used.
- #
- _MSVC_FLAGS_CLANG=-fcase-insensitive-paths -fms-compatibility-version=19.21
- when ($ARCH_X86_64 == "yes") {
- _MSVC_FLAGS_CLANG_ARCH=-m64
- }
- elsewhen ($ARCH_I386 == "yes") {
- _MSVC_FLAGS_CLANG_ARCH=-m32
- }
- otherwise {
- _MSVC_FLAGS_CLANG_ARCH=
- }
-
-}
-
-_MSVC_FLAGS=/nologo /Zm500 /GR /bigobj /FC /EHs /errorReport:prompt $MSVC_INLINE_FLAG /utf-8
-# enable standard conforming mode
-_MSVC_FLAGS+=/permissive-
-_MSVC_FLAGS+=$_MSVC_FLAGS_ARCH_OPT
-_MSVC_FLAGS+=$_MSVC_FLAGS_CLANG
-_MSVC_FLAGS+=$_MSVC_FLAGS_CLANG_ARCH
-_MSVC_FLAGS+=$_MSVC_FLAGS_CLANG_EQ_2019
-_MSVC_FLAGS+=$_MSVC_FLAGS_INCLUDE
-
-MSVC_INLINE_OPTIMIZED=yes
-when ($MSVC_INLINE_OPTIMIZED == "yes") {
- MSVC_INLINE_FLAG=/Zc:inline
-}
-when ($MSVC_INLINE_OPTIMIZED == "no") {
- MSVC_INLINE_FLAG=/Zc:inline-
-}
-
-# Use builtin offsetof implementation
-# instead of a crutcy macro defined in ucrt/stddef.h.
-# The latter can not be used in constexpr statements.
-_CXX_DEFINES=/D_CRT_USE_BUILTIN_OFFSETOF
-
-_FLAGS_C_ONLY=
-
-# Provide proper __cplusplus value
-# https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
-_CXX_FLAGS=/Zc:__cplusplus
-
-_FLAGS_MSVS_ONLY=
-DEBUG_INFO_FLAGS=/Z7
-when ($IDE_MSVS == "yes") {
- when ($CLANG_CL != "yes") {
- _FLAGS_MSVS_ONLY=/FD /MP
- }
- DEBUG_INFO_FLAGS=/Zi /FS
-}
-
-C_WARNING_OPTS=$_C_WARNINGS
-CXX_WARNING_OPTS=$_CXX_WARNINGS
-
-# https://msdn.microsoft.com/en-us/library/abx4dbyh.aspx
-when ($DLL_RUNTIME == "yes") {
- _FLAGS_DEBUG_RUNTIME=/MDd
- _FLAGS_RELEASE_RUNTIME=/MD
-}
-otherwise {
- _FLAGS_DEBUG_RUNTIME=/MTd
- _FLAGS_RELEASE_RUNTIME=/MT
-}
-CFLAGS_DEBUG=/Ob0 /Od /D_DEBUG $_FLAGS_DEBUG_RUNTIME
-CFLAGS_RELEASE=/Ox /Ob2 /Oi /DNDEBUG $_FLAGS_RELEASE_RUNTIME
-
-MASMFLAGS=
-_MASM_IO=/nologo /c /Fo${output;suf=${OBJECT_SUF}:SRC} ${input;msvs_source:SRC}
-when ($ARCH_ARMV7) {
- _MASM_IO=-o ${output;suf=${OBJECT_SUF}:SRC} ${input;msvs_source:SRC}
-}
-
-OBJ_CROSS_SUF=$OBJ_SUF
-OBJECT_SUF=$OBJ_SUF.obj
-
-CFLAGS+=$_MSVC_FLAGS $_FLAGS_MSVS_ONLY $CFLAGS_PER_TYPE $DEBUG_INFO_FLAGS $C_WARNING_OPTS $C_DEFINES $USER_CFLAGS $USER_CFLAGS_GLOBAL
-CXXFLAGS+=$CFLAGS $_STD_CXX $_CXX_FLAGS $_CXX_DEFINES $CXX_WARNING_OPTS $USER_CXXFLAGS $USER_CXXFLAGS_GLOBAL
-CONLYFLAGS+=$_FLAGS_C_ONLY $USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL
-
-BC_CFLAGS+=$CFLAGS
-BC_CXXFLAGS+=$BC_CFLAGS $CXXFLAGS
-
-CFLAGS+=$_CFLAGS_UCRT_VC_INCLUDES
-
-when ($NO_WSHADOW == "yes") {
- C_WARNING_OPTS+=/wd4456 /wd4457
-}
-
-when ($NO_COMPILER_WARNINGS == "yes") {
- C_WARNING_OPTS=/w
- when ($CLANG_CL == "yes") {
- # Though /w is intended to switch off all the warnings,
- # it does not switch at least -Wregister and -Wreserved-user-defined-literal under clang-cl.
- #
- # Use -Wno-everything to force warning suppression.
- CXX_WARNING_OPTS=-Wno-everything
- }
- otherwise {
- CXX_WARNING_OPTS=
- }
-}
-
-when ($NO_OPTIMIZE == "yes") {
- OPTIMIZE=/Od
-}
-
-SFDL_FLAG=/E /C /P /TP /Fi$SFDL_TMP_OUT
-WERROR_FLAG=/WX
-
-CL_WRAPPER=${FIX_MSVC_OUTPUT} cl
-ML_WRAPPER=${FIX_MSVC_OUTPUT} ml
-when ($_UNDER_WINE == "yes") {
- CL_WRAPPER=
- ML_WRAPPER=
-}
-
-_SRC_C_NODEPS_CMD=${TOOLCHAIN_ENV} ${CL_WRAPPER} ${C_COMPILER} /c /Fo${OUTFILE} ${SRC} ${EXTRA_C_FLAGS} ${pre=/I :INC} ${CFLAGS} ${hide;kv:"soe"} ${hide;kv:"p CC"} ${hide;kv:"pc yellow"}
-_SRC_CPP_CMD=${TOOLCHAIN_ENV} ${CL_WRAPPER} ${CXX_COMPILER} /c /Fo$_COMPILE_OUTPUTS ${input;msvs_source:SRC} ${EXTRA_C_FLAGS} ${pre=/I :_C__INCLUDE} ${CXXFLAGS} ${SRCFLAGS} ${_LANG_CFLAGS_VALUE} ${hide;kv:"soe"} ${hide;kv:"p CC"} ${hide;kv:"pc yellow"}
-_SRC_C_CMD=${TOOLCHAIN_ENV} ${CL_WRAPPER} ${C_COMPILER} /c /Fo$_COMPILE_OUTPUTS ${input;msvs_source:SRC} ${EXTRA_C_FLAGS} ${pre=/I :_C__INCLUDE} ${CFLAGS} ${CONLYFLAGS} ${SRCFLAGS} ${hide;kv:"soe"} ${hide;kv:"p CC"} ${hide;kv:"pc yellow"}
-_SRC_M_CMD=$_EMPTY_CMD
-_SRC_MASM_CMD=${cwd:ARCADIA_BUILD_ROOT} ${TOOLCHAIN_ENV} ${ML_WRAPPER} ${MASM_COMPILER} ${MASMFLAGS} ${SRCFLAGS} $_MASM_IO ${kv;hide:"p AS"} ${kv;hide:"pc yellow"}