def setCommonOptions(options): # Scons gets transported many details, that we express as variables, and # have checks for them, leading to many branches and statements, # pylint: disable=too-many-branches if Options.shallRunInDebugger(): options["full_names"] = "true" if Options.assumeYesForDownloads(): options["assume_yes_for_downloads"] = asBoolStr(True) if not Options.shallUseProgressBar(): options["progress_bar"] = "false" if Options.isClang(): options["clang_mode"] = "true" if Options.isShowScons(): options["show_scons"] = "true" if Options.isMingw64(): options["mingw_mode"] = "true" if Options.getMsvcVersion(): options["msvc_version"] = Options.getMsvcVersion() if Options.shallDisableCCacheUsage(): options["disable_ccache"] = asBoolStr(True) if Options.shallDisableConsoleWindow(): options["disable_console"] = asBoolStr(True) if Options.getLtoMode() != "auto": options["lto_mode"] = Options.getLtoMode() cpp_defines = Plugins.getPreprocessorSymbols() if cpp_defines: options["cpp_defines"] = ",".join( "%s%s%s" % (key, "=" if value else "", value or "") for key, value in cpp_defines.items()) cpp_include_dirs = Plugins.getExtraIncludeDirectories() if cpp_include_dirs: options["cpp_include_dirs"] = ",".join(cpp_include_dirs) link_dirs = Plugins.getExtraLinkDirectories() if link_dirs: options["link_dirs"] = ",".join(link_dirs) link_libraries = Plugins.getExtraLinkLibraries() if link_libraries: options["link_libraries"] = ",".join(link_libraries) if Utils.isMacOS(): macos_min_version = detectBinaryMinMacOS(sys.executable) if macos_min_version is None: Tracing.general.sysexit( "Could not detect minimum macOS version for %r." % sys.executable) options["macos_min_version"] = macos_min_version macos_target_arch = Options.getMacOSTargetArch() if macos_target_arch == "universal": Tracing.general.sysexit( "Cannot create universal macOS binaries (yet), please pick an arch and create two binaries." ) options["macos_target_arch"] = macos_target_arch