macro_name MSVC binary_name cl linker_name link output_to_object "/Fo" output_to_exe "/OUT:" add_include_dir_option "/I" add_lib_dir_option "/LIBPATH:" add_compile_definition_option "/D" add_lib_option "%s.lib" compile_flags "/nologo /c" optimization_flags "/O2 /Oi" size_optimization_flags "/O1 /Os" # for debug info in the object file: #debug_info_flags "/Z7" # for using a PDB file: debug_info_flags "/Zi /FS" preproc_flags "/nologo /EP" lang_flags "/EHs /GR" # 4250: diamond inheritence warning # 4251: STL types used in DLL interface # 4275: ??? # 4127: conditional expression is constant, consider using if constexpr warning_flags "/W4 /wd4250 /wd4251 /wd4275 /wd4127" werror_flags "/WX" visibility_build_flags "/DBOTAN_DLL=__declspec(dllexport)" visibility_attribute "__declspec(dllimport)" ar_command lib ar_options "/nologo" ar_output_to "/OUT:" default -> iterator iterator -> "/D_ITERATOR_DEBUG_LEVEL=1" sse2 -> "" ssse3 -> "" sse41 -> "" sse42 -> "" x86_64:avx2 -> "/arch:AVX" bmi2 -> "" aesni -> "" clmul -> "" rdrand -> "" rdseed -> "" sha -> "" debug -> "/Fd%{build_dir}/%{libname}%{lib_suffix}.pdb" default -> "$(LINKER) /DLL" default-debug -> "$(LINKER) /DLL /DEBUG" default -> "$(LINKER)" default-debug -> "$(LINKER) /DEBUG" all -> "/bigobj" # These can be overridden with --msvc-runtime option rt -> "/MD" rt-debug -> "/MDd"