Пример #1
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    mingw32 = ""
    mingw64 = ""
    if os.name == "posix":
        mingw32 = "i686-w64-mingw32-"
        mingw64 = "x86_64-w64-mingw32-"

    if os.getenv("MINGW32_PREFIX"):
        mingw32 = os.getenv("MINGW32_PREFIX")
    if os.getenv("MINGW64_PREFIX"):
        mingw64 = os.getenv("MINGW64_PREFIX")

    return [
        ("mingw_prefix_32", "MinGW prefix (Win32)", mingw32),
        ("mingw_prefix_64", "MinGW prefix (Win64)", mingw64),
        # Targeted Windows version: 7 (and later), minimum supported version
        # XP support dropped after EOL due to missing API for IPv6 and other issues
        # Vista support dropped after EOL due to GH-10243
        ("target_win_version", "Targeted Windows version, >= 0x0601 (Windows 7)", "0x0601"),
        EnumVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", "yes", ("yes", "no")),
        EnumVariable("windows_subsystem", "Windows subsystem", "default", ("default", "console", "gui")),
        BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
        ("msvc_version", "MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.", None),
        BoolVariable("use_mingw", "Use the Mingw compiler, even if MSVC is installed. Only used on Windows.", False),
        BoolVariable("use_llvm", "Use the LLVM compiler", False),
        BoolVariable("use_thinlto", "Use ThinLTO", False),
    ]
Пример #2
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ("osxcross_sdk", "OSXCross SDK version", "darwin16"),
        ("MACOS_SDK_PATH", "Path to the macOS SDK", ""),
        BoolVariable(
            "use_static_mvk",
            "Link MoltenVK statically as Level-0 driver (better portability) or use Vulkan ICD loader (enables"
            " validation layers)",
            False,
        ),
        EnumVariable("macports_clang", "Build using Clang from MacPorts", "no",
                     ("no", "5.0", "devel")),
        EnumVariable("debug_symbols",
                     "Add debugging symbols to release/release_debug builds",
                     "yes", ("yes", "no")),
        BoolVariable("separate_debug_symbols",
                     "Create a separate file containing debugging symbols",
                     False),
        BoolVariable(
            "use_ubsan",
            "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)",
            False),
        BoolVariable("use_asan",
                     "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
        BoolVariable("use_tsan",
                     "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
    ]
Пример #3
0
def options(opts):
    opts.AddVariables(
        EnumVariable('PACKAGETYPE',
                     'the type of package to create.',
                     None,
                     allowed_values=list(map(str, __all__)),
                     ignorecase=2))
Пример #4
0
def get_opts():
    from SCons.Variables import EnumVariable

    return [
        EnumVariable('debug_symbols', 'Add debug symbols to release version',
                     'yes', ('yes', 'no', 'full')),
    ]
Пример #5
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        BoolVariable('use_llvm', 'Use the LLVM compiler', False),
        BoolVariable('use_lld', 'Use the LLD linker', False),
        BoolVariable('use_thinlto', 'Use ThinLTO', False),
        BoolVariable(
            'use_static_cpp',
            'Link libgcc and libstdc++ statically for better portability',
            False),
        BoolVariable(
            'use_ubsan',
            'Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)',
            False),
        BoolVariable('use_asan',
                     'Use LLVM/GCC compiler address sanitizer (ASAN))', False),
        BoolVariable('use_lsan',
                     'Use LLVM/GCC compiler leak sanitizer (LSAN))', False),
        BoolVariable('use_tsan',
                     'Use LLVM/GCC compiler thread sanitizer (TSAN))', False),
        BoolVariable('pulseaudio', 'Detect and use PulseAudio', True),
        BoolVariable('udev', 'Use udev for gamepad connection callbacks',
                     False),
        EnumVariable('debug_symbols',
                     'Add debugging symbols to release builds', 'yes',
                     ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols',
                     'Create a separate file containing debugging symbols',
                     False),
        BoolVariable('touch', 'Enable touch events', True),
        BoolVariable(
            'execinfo',
            'Use libexecinfo on systems where glibc is not available', False),
    ]
Пример #6
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable
    return [
        BoolVariable('use_llvm', 'Use the LLVM compiler', False),
        BoolVariable(
            'use_static_cpp',
            'Link libgcc and libstdc++ statically for better portability',
            False),
        BoolVariable(
            'use_ubsan',
            'Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)',
            False),
        BoolVariable('use_asan',
                     'Use LLVM/GCC compiler address sanitizer (ASAN))', False),
        BoolVariable('use_lsan',
                     'Use LLVM/GCC compiler leak sanitizer (LSAN))', False),
        EnumVariable('debug_symbols',
                     'Add debugging symbols to release builds', 'yes',
                     ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols',
                     'Create a separate file containing debugging symbols',
                     False),
        BoolVariable(
            'execinfo',
            'Use libexecinfo on systems where glibc is not available', False),
    ]
Пример #7
0
def generate(env):
	params = Variables(env['PARAMETER_SOURCE'], ARGUMENTS)
	params.Add(EnumVariable('crosscompile', 'Enable cross compile', 'no', ['no', 'android', 'mingw', 'gcc']))
	params.Update(env)
	
	configGroup = None
	try:
		configReport = env.configReport
		configGroup = 'Cross-Compile'
		configReport.add('Enable cross compile', crosscompile, configGroup)
	except:
		pass
	
	env.SetDefault(CROSSCOMPILE_CFLAGS = '')
	env.SetDefault(CROSSCOMPILE_CPPFLAGS = '')
	env.SetDefault(CROSSCOMPILE_CXXFLAGS = '')
	env.SetDefault(CROSSCOMPILE_LINKFLAGS = '')
	env.SetDefault(CROSSCOMPILE_LIBS = '')
	env.SetDefault(CROSSCOMPILE_PROGRAM_LIBS = '')
	
	if env['crosscompile'] == 'android':
		android.generate(env, configGroup)
	elif env['crosscompile'] == 'mingw':
		mingw.generate(env, configGroup)
	elif env['crosscompile'] == 'gcc':
		gcc.generate(env, configGroup)
Пример #8
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ("osxcross_sdk", "OSXCross SDK version", "darwin16"),
        ("MACOS_SDK_PATH", "Path to the macOS SDK", ""),
        ("VULKAN_SDK_PATH", "Path to the Vulkan SDK", ""),
        EnumVariable("macports_clang", "Build using Clang from MacPorts", "no",
                     ("no", "5.0", "devel")),
        BoolVariable("debug_symbols",
                     "Add debugging symbols to release/release_debug builds",
                     True),
        BoolVariable("separate_debug_symbols",
                     "Create a separate file containing debugging symbols",
                     False),
        BoolVariable(
            "use_ubsan",
            "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)",
            False),
        BoolVariable("use_asan",
                     "Use LLVM/GCC compiler address sanitizer (ASAN)", False),
        BoolVariable("use_tsan",
                     "Use LLVM/GCC compiler thread sanitizer (TSAN)", False),
        BoolVariable(
            "use_coverage",
            "Use instrumentation codes in the binary (e.g. for code coverage)",
            False),
    ]
Пример #9
0
    def to_scons(
        self,
        env: "Optional[SCEnvironment]" = None
    ) -> "Union[SCVariables, Tuple[str, str, Union[str, Dict[str, str]]]]":
        """Convert option to SCons variable"""
        default = self.default
        if isinstance(default, str) and "$" in default and env is not None:
            default = env.subst(default)
        elif not isinstance(default, (str, bool)):
            raise TypeError(
                f"Invalid defaults option with type '{type(default)}'")

        if self.choices is None:
            out = self.name, self.description, default
        else:
            out = self.name, self.description, default, self.choices

        try:
            if isinstance(self, BoolOption):
                return BoolVariable(*out)
            elif isinstance(self, PathOption):
                return PathVariable(*out)
            elif isinstance(self, EnumOption):
                return EnumVariable(*out)
            else:
                return out

        except Exception as err:
            logger.error(
                f"Error converting '{self.name}' to SCons variable:\n{out}")
            raise err
Пример #10
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
        ('MACOS_SDK_PATH', 'Path to the macOS SDK', ''),
        BoolVariable(
            'use_static_mvk',
            'Link MoltenVK statically as Level-0 driver (better portability) or use Vulkan ICD loader (enables validation layers)',
            False),
        EnumVariable('debug_symbols',
                     'Add debugging symbols to release builds', 'yes',
                     ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols',
                     'Create a separate file containing debugging symbols',
                     False),
        BoolVariable(
            'use_ubsan',
            'Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)',
            False),
        BoolVariable('use_asan',
                     'Use LLVM/GCC compiler address sanitizer (ASAN))', False),
        BoolVariable('use_tsan',
                     'Use LLVM/GCC compiler thread sanitizer (TSAN))', False),
    ]
Пример #11
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    mingw32 = ""
    mingw64 = ""
    if (os.name == "posix"):
        mingw32 = "i686-w64-mingw32-"
        mingw64 = "x86_64-w64-mingw32-"

    if (os.getenv("MINGW32_PREFIX")):
        mingw32 = os.getenv("MINGW32_PREFIX")
    if (os.getenv("MINGW64_PREFIX")):
        mingw64 = os.getenv("MINGW64_PREFIX")

    return [
        ('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32),
        ('mingw_prefix_64', 'MinGW prefix (Win64)', mingw64),
        # Targeted Windows version: 7 (and later), minimum supported version
        # XP support dropped after EOL due to missing API for IPv6 and other issues
        # Vista support dropped after EOL due to GH-10243
        ('target_win_version', 'Targeted Windows version, >= 0x0601 (Windows 7)', '0x0601'),
        EnumVariable('debug_symbols', 'Add debugging symbols to release builds', 'yes', ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False),
        ('msvc_version', 'MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.', None),
        BoolVariable('use_mingw', 'Use the Mingw compiler, even if MSVC is installed. Only used on Windows.', False),
    ]
Пример #12
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        BoolVariable("use_llvm", "Use the LLVM compiler", False),
        BoolVariable("use_lld", "Use the LLD linker", False),
        BoolVariable("use_thinlto", "Use ThinLTO", False),
        BoolVariable(
            "use_static_cpp",
            "Link libgcc and libstdc++ statically for better portability",
            False),
        BoolVariable(
            "use_ubsan",
            "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)",
            False),
        BoolVariable("use_asan",
                     "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
        BoolVariable("use_lsan",
                     "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
        BoolVariable("use_tsan",
                     "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
        BoolVariable("pulseaudio", "Detect and use PulseAudio", True),
        BoolVariable("udev", "Use udev for gamepad connection callbacks",
                     False),
        EnumVariable("debug_symbols",
                     "Add debugging symbols to release builds", "yes",
                     ("yes", "no", "full")),
        BoolVariable("separate_debug_symbols",
                     "Create a separate file containing debugging symbols",
                     False),
        BoolVariable("touch", "Enable touch events", True),
        BoolVariable(
            "execinfo",
            "Use libexecinfo on systems where glibc is not available", False),
    ]
Пример #13
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        BoolVariable('use_llvm', 'Use the LLVM compiler', False),
        BoolVariable(
            'use_static_cpp',
            'Link libgcc and libstdc++ statically for better portability',
            False),
        BoolVariable('use_sanitizer', 'Use LLVM compiler address sanitizer',
                     False),
        BoolVariable(
            'use_leak_sanitizer',
            'Use LLVM compiler memory leaks sanitizer (implies use_sanitizer)',
            False),
        BoolVariable('pulseaudio', 'Detect & use pulseaudio', True),
        BoolVariable('udev', 'Use udev for gamepad connection callbacks',
                     False),
        EnumVariable('debug_symbols',
                     'Add debugging symbols to release builds', 'yes',
                     ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols',
                     'Create a separate file containing debugging symbols',
                     False),
        BoolVariable('touch', 'Enable touch events', True),
        BoolVariable(
            'execinfo',
            'Use libexecinfo on systems where glibc is not available', False),
    ]
Пример #14
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        BoolVariable("use_llvm", "Use the LLVM compiler", False),
        BoolVariable(
            "use_static_cpp",
            "Link libgcc and libstdc++ statically for better portability",
            False),
        BoolVariable("use_coverage", "Test Godot coverage", False),
        BoolVariable(
            "use_ubsan",
            "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)",
            False),
        BoolVariable("use_asan",
                     "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
        BoolVariable("use_lsan",
                     "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
        BoolVariable("use_tsan",
                     "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
        EnumVariable("debug_symbols",
                     "Add debugging symbols to release/release_debug builds",
                     "yes", ("yes", "no")),
        BoolVariable("separate_debug_symbols",
                     "Create a separate file containing debugging symbols",
                     False),
        BoolVariable(
            "execinfo",
            "Use libexecinfo on systems where glibc is not available", False),
    ]
Пример #15
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    mingw32 = ""
    mingw64 = ""
    if (os.name == "posix"):
        mingw32 = "i686-w64-mingw32-"
        mingw64 = "x86_64-w64-mingw32-"

    if (os.getenv("MINGW32_PREFIX")):
        mingw32 = os.getenv("MINGW32_PREFIX")
    if (os.getenv("MINGW64_PREFIX")):
        mingw64 = os.getenv("MINGW64_PREFIX")

    return [
        ('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32),
        ('mingw_prefix_64', 'MinGW prefix (Win64)', mingw64),
        # Targeted Windows version: 7 (and later), minimum supported version
        # XP support dropped after EOL due to missing API for IPv6 and other issues
        # Vista support dropped after EOL due to GH-10243
        ('target_win_version',
         'Targeted Windows version, >= 0x0601 (Windows 7)', '0x0601'),
        EnumVariable('debug_symbols', 'Add debug symbols to release version',
                     'yes', ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols',
                     'Create a separate file with the debug symbols', False),
    ]
Пример #16
0
def get_opts():
    from SCons.Variables import EnumVariable

    return [
        ('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
        EnumVariable('debug_symbols', 'Add debug symbols to release version', 'yes', ('yes', 'no', 'full')),
    ]
Пример #17
0
def get_opts():
    from SCons.Variables import EnumVariable

    return [
        EnumVariable("debug_symbols",
                     "Add debugging symbols to release builds", "yes",
                     ("yes", "no", "full")),
    ]
Пример #18
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        EnumVariable("debug_symbols",
                     "Add debugging symbols to release/release_debug builds",
                     "yes", ("yes", "no")),
    ]
Пример #19
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
        EnumVariable('debug_symbols', 'Add debug symbols to release version', 'yes', ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols', 'Create a separate file with the debug symbols', False),
    ]
Пример #20
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ("ANDROID_NDK_ROOT", "Path to the Android NDK", get_android_ndk_root()),
        ("ANDROID_SDK_ROOT", "Path to the Android SDK", get_android_sdk_root()),
        ("ndk_platform", 'Target platform (android-<api>, e.g. "android-24")', "android-24"),
        EnumVariable("android_arch", "Target architecture", "arm64v8", ("armv7", "arm64v8", "x86", "x86_64")),
    ]
Пример #21
0
def _parse_default_command_line_options():
    """Parses the command line options controlling various build settings

    @remarks
        This contains variables that work across all builds. Build-specific variables
        are discouraged, but would be irgnored by SCons' Variables class."""

    command_line_variables = Variables(None, ARGUMENTS)

    # Build configuration (also called build type in many SCons examples)
    command_line_variables.Add(
        BoolVariable(
            'DEBUG',
            'Whether to do an unoptimized debug build',
            False
        )
    )

    # Default architecture for the binaries. We follow the Debian practices,
    # which, while clueless and chaotic, are at least widely used.
    default_arch = 'amd64'
    if 'armv7' in platform.uname()[4]:
        default_arch = 'armhf'
    if 'aarch64' in platform.uname()[4]:
        default_arch = 'arm64'

    # CPU architecture to target
    command_line_variables.Add(
        EnumVariable(
            'TARGET_ARCH',
            'CPU architecture the binary will run on',
            default_arch,
            allowed_values=('armhf', 'arm64', 'x86', 'amd64', 'any')
        )
    )

    # Directory for intermediate files
    command_line_variables.Add(
        PathVariable(
            'INTERMEDIATE_DIRECTORY',
            'Directory in which intermediate build files will be stored',
            'obj',
            PathVariable.PathIsDirCreate
        )
    )

    # Directory for intermediate files
    command_line_variables.Add(
        PathVariable(
            'ARTIFACT_DIRECTORY',
            'Directory in which build artifacts (outputs) will be stored',
            'bin',
            PathVariable.PathIsDirCreate
        )
    )

    return command_line_variables
Пример #22
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ("ANDROID_NDK_ROOT", "Path to the Android NDK", os.environ.get("ANDROID_NDK_ROOT", 0)),
        ("ndk_platform", 'Target platform (android-<api>, e.g. "android-24")', "android-24"),
        EnumVariable("android_arch", "Target architecture", "armv7", ("armv7", "arm64v8", "x86", "x86_64")),
        BoolVariable("android_neon", "Enable NEON support (armv7 only)", True),
    ]
Пример #23
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
        ('MACOS_SDK_PATH', 'Path to the macOS SDK', ''),
        EnumVariable('debug_symbols', 'Add debugging symbols to release builds', 'yes', ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False),
    ]
Пример #24
0
    def option(self, opts):

        self.default()

        opts.Add(
            BoolVariable('debug', 'compilation in a debug mode',
                         self._default['debug']))
        opts.Add(
            BoolVariable('warnings', 'compilation with -Wall and similar',
                         self._default['warnings']))
        opts.Add(BoolVariable('static', '', self._default['static']))

        compilers = self._default['compilers']
        default_compiler = compilers[0]
        opts.Add(
            EnumVariable('compiler', 'compiler tool used for the build',
                         default_compiler, compilers))
        opts.Add('compiler_libs_suffix',
                 'Library suffix name like -vc80 or -mgw',
                 self._default['libs_suffix'])

        opts.Add('rpath', 'A list of paths to search for shared libraries')

        opts.Add('EXTRA_CCFLAGS', 'Specific user flags for c compiler', '')
        opts.Add('EXTRA_CXXFLAGS', 'Specific user flags for c++ compiler', '')
        opts.Add('EXTRA_CPPDEFINES', 'Specific c++ defines', '')
        opts.Add('EXTRA_LINKFLAGS', 'Specific user flags for c++ linker', '')
        opts.Add('EXTRA_CPPPATH', 'Specific user include path', '')
        opts.Add('EXTRA_LIBPATH', 'Specific user library path', '')
        opts.Add('EXTRA_LIBS', 'Specific user libraries', '')

        if isinstance(platform, Win32):
            opts.Add(
                EnumVariable('TARGET_ARCH',
                             'Target Architecture',
                             'amd64' if is_64bit_environment() else 'x86',
                             allowed_values=('x86', 'amd64', 'i386', 'emt64',
                                             'x86_64', 'ia64')))
            opts.Add(
                EnumVariable('MSVC_VERSION',
                             'Version ',
                             '' if not is_conda() else get_default_msvc(),
                             allowed_values=sorted(MsvcVersion.values()) +
                             ['']))
Пример #25
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ('ANDROID_NDK_ROOT', 'Path to the Android NDK', os.environ.get("ANDROID_NDK_ROOT", 0)),
        ('ndk_platform', 'Target platform (android-<api>, e.g. "android-18")', "android-18"),
        EnumVariable('android_arch', 'Target architecture', "armv7", ('armv7', 'armv6', 'arm64v8', 'x86', 'x86_64')),
        BoolVariable('android_neon', 'Enable NEON support (armv7 only)', True),
        BoolVariable('android_stl', 'Enable Android STL support (for modules)', True)
    ]
Пример #26
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ("ANDROID_NDK_ROOT", "Path to the Android NDK", get_android_ndk_root()),
        ("ANDROID_SDK_ROOT", "Path to the Android SDK", get_android_sdk_root()),
        ("ndk_platform", 'Target platform (android-<api>, e.g. "android-19")', "android-19"),
        EnumVariable("android_arch", "Target architecture", "armv7", ("armv7", "arm64v8", "x86", "x86_64")),
        BoolVariable("android_neon", "Enable NEON support (armv7 only)", True),
        BoolVariable("android_rtti", "Enable rtti/exceptions support", False),
    ]
Пример #27
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ('osxcross_sdk', 'OSXCross SDK version', 'darwin14'),
        ('MACOS_SDK_PATH', 'Path to the macOS SDK', ''),
        EnumVariable('debug_symbols', 'Add debugging symbols to release builds', 'yes', ('yes', 'no', 'full')),
        BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False),
        BoolVariable('use_ubsan', 'Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)', False),
        BoolVariable('use_asan', 'Use LLVM/GCC compiler address sanitizer (ASAN))', False),
        BoolVariable('use_tsan', 'Use LLVM/GCC compiler thread sanitizer (TSAN))', False),
    ]
Пример #28
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        ("osxcross_sdk", "OSXCross SDK version", "darwin14"),
        ("MACOS_SDK_PATH", "Path to the macOS SDK", ""),
        EnumVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", "yes", ("yes", "no")),
        BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
        BoolVariable("use_ubsan", "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)", False),
        BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
        BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
    ]
Пример #29
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        EnumVariable("linker", "Linker program", "default",
                     ("default", "bfd", "gold", "lld", "mold")),
        BoolVariable("use_llvm", "Use the LLVM compiler", False),
        BoolVariable(
            "use_thinlto",
            "Use ThinLTO (LLVM only, requires linker=lld, implies use_lto=yes)",
            False),
        BoolVariable(
            "use_static_cpp",
            "Link libgcc and libstdc++ statically for better portability",
            True),
        BoolVariable("use_coverage", "Test Godot coverage", False),
        BoolVariable(
            "use_ubsan",
            "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)",
            False),
        BoolVariable("use_asan",
                     "Use LLVM/GCC compiler address sanitizer (ASAN)", False),
        BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN)",
                     False),
        BoolVariable("use_tsan",
                     "Use LLVM/GCC compiler thread sanitizer (TSAN)", False),
        BoolVariable("use_msan", "Use LLVM compiler memory sanitizer (MSAN)",
                     False),
        BoolVariable("pulseaudio", "Detect and use PulseAudio", True),
        BoolVariable("dbus", "Detect and use D-Bus to handle screensaver",
                     True),
        BoolVariable(
            "speechd",
            "Detect and use Speech Dispatcher for Text-to-Speech support",
            True),
        BoolVariable("fontconfig",
                     "Detect and use fontconfig for system fonts support",
                     True),
        BoolVariable("udev", "Use udev for gamepad connection callbacks",
                     True),
        BoolVariable("x11", "Enable X11 display", True),
        BoolVariable("debug_symbols",
                     "Add debugging symbols to release/release_debug builds",
                     True),
        BoolVariable("separate_debug_symbols",
                     "Create a separate file containing debugging symbols",
                     False),
        BoolVariable("touch", "Enable touch events", True),
        BoolVariable(
            "execinfo",
            "Use libexecinfo on systems where glibc is not available", False),
    ]
Пример #30
0
def get_opts():
    from SCons.Variables import BoolVariable, EnumVariable

    return [
        BoolVariable('use_llvm', 'Use the LLVM compiler', False),
        BoolVariable('use_static_cpp', 'Link stdc++ statically', False),
        BoolVariable('use_sanitizer', 'Use LLVM compiler address sanitizer', False),
        BoolVariable('use_leak_sanitizer', 'Use LLVM compiler memory leaks sanitizer (implies use_sanitizer)', False),
        BoolVariable('pulseaudio', 'Detect & use pulseaudio', True),
        BoolVariable('udev', 'Use udev for gamepad connection callbacks', False),
        EnumVariable('debug_symbols', 'Add debug symbols to release version', 'yes', ('yes', 'no', 'full')),
        BoolVariable('touch', 'Enable touch events', True),
    ]