コード例 #1
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    configurations = OrderedDict()

    configurations["python36"] = Configuration(
        "Python v3.6.5",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706",
                "Common_Environment",
                "python36",
                "https://github.com/davidbrownell/Common_Environment-v3.git",
            ),
        ],
    )

    configurations["python27"] = Configuration(
        "Python v2.7.14",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706",
                "Common_Environment",
                "python27",
                "https://github.com/davidbrownell/Common_Environment-v3.git",
            ),
        ],
    )
    return configurations
コード例 #2
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    if CurrentShell.CategoryName == "Windows":
        architectures = ["x64", "x86"]
    else:
        # Cross compiling on Linux is much more difficult on Linux than it is on
        # Windows. Only support the current architecture.
        architectures = [CurrentShell.Architecture]

    for key_suffix, desc_suffix in [
        (None, None),
        ("ex", "Augmented with an external linker"),
    ]:
        for architecture in architectures:
            if key_suffix is None:
                key = architecture
                desc = architecture
            else:
                key = "{}_{}".format(architecture, key_suffix)
                desc = "{} <{}>".format(architecture, desc_suffix)

            d[key] = Configuration(
                desc,
                [
                    Dependency(
                        "2CCC7E3E3C004A05AA384AF378246EAA",
                        "Common_cpp_Clang_Common", key,
                        "https://github.com/davidbrownell/Common_cpp_Clang_Common.git"
                    )
                ],
                VersionSpecs(
                    [],
                    {"Python": [VersionInfo("clang", "v10.0.0")]},
                ),
            )

    d["python"] = Configuration(
        "Support for Clang Python bindings",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706", "Common_Environment",
                "python36",
                "https://github.com/davidbrownell/Common_Environment_v3.git")
        ],
    )

    return d
コード例 #3
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    if CurrentShell.CategoryName == "Windows":
        architectures = ["x64", "x86"]
    else:
        # Cross compiling on Linux is much more difficult on Linux than it is on
        # Windows. Only support the current architecture.
        architectures = [CurrentShell.Architecture]

    for architecture in architectures:
        d[architecture] = Configuration(
            architecture,
            [
                Dependency(
                    "0EAA1DCF22804F90AD9F5A3B85A5D706",
                    "Common_Environment",
                    "python36",
                    "https://github.com/davidbrownell/Common_Environment_v3.git",
                )
            ],
        )

    return d
コード例 #4
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    return OrderedDict([ ( "python36", Configuration( "Python 3.6.5",
                                                      [],
                                                      VersionSpecs( [ VersionInfo("Python", "v3.6.5"), ],
                                                                    {},
                                                                  ),
                                                    ) ),
                         ( "python27", Configuration( "Python 2.7.14",
                                                      [],
                                                      VersionSpecs( [ VersionInfo("Python", "v2.7.14"), ],
                                                                    {},
                                                                  ),
                                                    ) ),
                       ])
コード例 #5
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    if CurrentShell.CategoryName == "Windows":
        architectures = ["x64", "x86"]

        compiler_infos = [
            ("MSVC_2019", "AB7D87C49C2449F79D9F42E5195030FD", None),
            ("Clang_10", "42DE100A1DAE4FFC9697F75566C63DEB", "_ex"),
        ]
    else:
        architectures = [CurrentShell.Architecture]

        compiler_infos = [
            ("Clang_10", "42DE100A1DAE4FFC9697F75566C63DEB", "_ex"),
        ]

    for compiler, compiler_id, configuration_suffix in compiler_infos:
        for architecture in architectures:
            d["{}_{}".format(compiler, architecture)] = Configuration(
                "{} [{}]".format(compiler, architecture),
                [
                    Dependency(
                        compiler_id,
                        "Common_cpp_{}".format(compiler),
                        "{}{}".format(architecture, configuration_suffix or ""),
                        "https://github.com/davidbrownell/Common_cpp_{}.git".format(compiler),
                    ),
                    Dependency(
                        "2B1EBD87C47E495B9330C0304D461141",
                        "Common_cpp_boost_Helpers",
                        "1.70.0_{}_{}{}".format(
                            compiler,
                            architecture,
                            configuration_suffix or "",
                        ),
                        "https://github.com/davidbrownell/Common_cpp_boost_Helpers.git",
                    ),
                ],
            )

    return d
コード例 #6
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    if CurrentShell.CategoryName == "Windows":
        for architecture in ["x64", "x86"]:
            d[architecture] = Configuration(
                architecture,
                [
                    Dependency(
                        "1DE864025F92429BB9855594DBA732B3",
                        "Common_cpp_MSVC_WindowsKits_10",
                        architecture,
                        "https://github.com/davidbrownell/Common_cpp_MSVC_WindowsKits_10.git",
                    ),
                    Dependency(
                        "F33C43DA6BB54336A7573B39509CDAD7",
                        "Common_cpp_Common",
                        architecture,
                        "https://github.com/davidbrownell/Common_cpp_Common.git",
                    ),
                ],
            )

    d["noop"] = Configuration(
        "Configuration that doesn't do anything; this is useful on non-Windows machines or in Bootstrap repositories (where different versions of MSVC conflict with each other (normally, MSVC repositories are mutually exclusive))",
        [Dependency("0EAA1DCF22804F90AD9F5A3B85A5D706", "Common_Environment", "python36", "https://github.com/davidbrownell/Common_Environment_v3.git")],
    )

    return d
コード例 #7
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    return Configuration(
        "Builds the grammar used by SimpleSchemaGenerator",
        [
            Dependency("9F6DB1C5041945F585C2C5F8557A2483", "Common_ANTLR",
                       None,
                       "https://github.com/davidbrownell/Common_ANTLR-v3.git")
        ],
    )
コード例 #8
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    return Configuration(
        "Contains code that operates on SimpleSchema files",
        [
            Dependency(
                "3C72E8CD41EB483A891F01DDA606B780", "Common_EnvironmentEx",
                "python36",
                "https://github.com/davidbrownell/Common_EnvironmentEx.git")
        ],
    )
コード例 #9
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    return Configuration(
        "Boost repository common to specific versions of boost",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706",
                "Common_Environment",
                "python36",
                "https://github.com/davidbrownell/Common_Environemnt_v3.git",
            ),
        ],
    )
コード例 #10
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    return Configuration(
        "Standard Build Environment",
        [
            Dependency(
                "5C7E1B3369B74BC098141FAD290288DA",
                "Common_SimpleSchemaGenerator",
                None,
                "https://github.com/davidbrownell/Common_SimpleSchemaGenerator.git",
            ),
        ],
    )
コード例 #11
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    if CurrentShell.CategoryName == "Windows":
        architectures = ["x64", "x86"]

        compiler_infos = [
            ("MSVC_2019", None),
            # ("Clang_8", None),
            ("Clang_10", "_ex"),
        ]

    else:
        # Cross compiling on Linux is much more difficult on Linux than it is on
        # Windows. Only support the current architecture.
        architectures = [CurrentShell.Architecture]

        compiler_infos = [
            # ("Clang_8", None),
            ("Clang_10", "_ex"),
        ]

    d = OrderedDict()

    for boost_version in ["1.70.0"]:
        d[boost_version] = Configuration(
            "boost {} (No compiler dependencies)".format(boost_version),
            [
                Dependency(
                    "407DD743110A4FB1871AEF60CBEC99A0",
                    "Common_cpp_boost_{}".format(boost_version),
                    "standard",
                    "https://github.com/davidbrownell/Common_cpp_boost_{}.git".format(boost_version),
                ),
                Dependency(
                    "398F6BEC057C4FE4B724153DF4EB8AE4",
                    "Common_cpp_Helpers",
                    "standard",
                    "https://github.com/davidbrownell/Common_cpp_Helpers.git",
                ),
            ],
        )

        for config_name, architecture_configuration_suffix in compiler_infos:
            architecture_configuration_suffix = architecture_configuration_suffix or ""

            for architecture in architectures:
                this_config_name = "{}_{}_{}{}".format(boost_version, config_name, architecture, architecture_configuration_suffix)
                this_config_desc = "boost {} - {} ({}{})".format(boost_version, config_name, architecture, architecture_configuration_suffix)

                d[this_config_name] = Configuration(
                    this_config_desc,
                    [
                        Dependency(
                            "407DD743110A4FB1871AEF60CBEC99A0",
                            "Common_cpp_boost_{}".format(boost_version),
                            "{}_{}{}".format(config_name, architecture, architecture_configuration_suffix),
                            "https://github.com/davidbrownell/Common_cpp_boost_{}.git".format(boost_version),
                        ),
                        Dependency(
                            "398F6BEC057C4FE4B724153DF4EB8AE4",
                            "Common_cpp_Helpers",
                            "standard",
                            "https://github.com/davidbrownell/Common_cpp_Helpers.git",
                        ),
                    ],
                )

    return d
コード例 #12
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    d["standard"] = Configuration(
        "Standard configuration without a compiler dependency",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706",
                "Common_Environment",
                "python36",
                "https://github.com/davidbrownell/Common_Environment-v3.git",
            ),
        ],
    )

    repo_depedencies = []

    if CurrentShell.CategoryName == "Windows":
        repo_depedencies += [
            (
                "MSVC_2019",
                "Common_cpp_MSVC_2019",
                "AB7D87C49C2449F79D9F42E5195030FD",
                None,
            ),
            (
                "MSVC_2017",
                "Common_cpp_MSVC_2017",
                "8FC8ACE80A594D2EA996CAC5DBFFEBBC",
                None,
            ),
        ]

        architectures = ["x64", "x86"]
    else:
        architectures = [CurrentShell.Architecture]

    repo_depedencies += [
        (
            "Clang_10",
            "Common_cpp_Clang_10",
            "42DE100A1DAE4FFC9697F75566C63DEB",
            "_ex",
        ),
        (
            "Clang_8",
            "Common_cpp_Clang_8",
            "3DE9F3430E494A6C8429B26A1503C895",
            "_ex",
        ),
    ]

    for short_name, repo_name, repo_id, config_suffix in repo_depedencies:
        for architecture in architectures:
            d["{}_{}".format(short_name, architecture)] = Configuration(
                "{} - {}".format(short_name, architecture),
                [
                    Dependency(
                        repo_id,
                        repo_name,
                        "{}{}".format(architecture, config_suffix or ""),
                        "https://github.com/davidbrownell/{}.git".format(
                            repo_name),
                    ),
                ],
            )

    return d
コード例 #13
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    architectures = ["x64"]

    if CurrentShell.CategoryName == "Windows":
        architectures.append("x86")

    # Clang
    for version, guid in [("8", "3DE9F3430E494A6C8429B26A1503C895")]:
        for architecture in architectures:
            d["{}_Clang_{}".format(architecture, version)] = Configuration(
                "Builds using Clang {} for a {} architecture".format(
                    version,
                    architecture,
                ),
                [
                    Dependency(
                        guid,
                        "Common_cpp_Clang_{}".format(version),
                        "{}-ex".format(architecture),
                        "https://github.com/davidbrownell/Common_cpp_Clang_{}".format(
                            version,
                        ),
                    ),
                ],
            )

    # MSVC
    if CurrentShell.CategoryName == "Windows":
        for version, guid in [
            ("2019", "AB7D87C49C2449F79D9F42E5195030FD"),
            ("2017", "8FC8ACE80A594D2EA996CAC5DBFFEBBC"),
        ]:
            for architecture in architectures:
                d["{}_MSVC_{}".format(architecture, version)] = Configuration(
                    "Builds using MSVC {} for a {} architecture".format(
                        version,
                        architecture,
                    ),
                    [
                        Dependency(
                            guid,
                            "Common_cpp_MSVC_{}".format(version),
                            architecture,
                            "https://github.com/davidbrownell/Common_cpp_MSVC_{}.git".format(
                                version,
                            ),
                        ),
                    ],
                )

    # Misc
    d["system_compiler"] = Configuration(
        "Enables basic C++ tools (cmake, ninja, doxygen, etc.)",
        [
            Dependency(
                "F33C43DA6BB54336A7573B39509CDAD7",
                "Common_cpp_Common",
                "x64",
                "https://github.com/davidbrownell/Common_cpp_Common.git",
            ),
        ],
    )

    if CurrentShell.CategoryName == "Linux":
        d["universal_linux"] = Configuration(
            "Builds using the Holy Build Box Docker Image (phusion/holy-build-box-64). More info at http://phusion.github.io/holy-build-box/",
            [
                Dependency(
                    "F33C43DA6BB54336A7573B39509CDAD7",
                    "Common_cpp_Common",
                    "x64",
                    "https://github.com/davidbrownell/Common_cpp_Common.git",
                ),
            ],
        )

    # Set the defaults
    d["x64_Clang"] = d["x64_Clang_8"]
    if "x86" in architectures:
        d["x86_Clang"] = d["x86_Clang_8"]

    if CurrentShell.CategoryName == "Windows":
        d["x64_MSVC"] = d["x64_MSVC_2019"]
        d["x86_MSVC"] = d["x86_MSVC_2019"]

    d["x64"] = d["x64_Clang"]
    if "x86" in architectures:
        d["x86"] = d["x86_Clang"]

    return d
コード例 #14
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    d = OrderedDict()

    if CurrentShell.CategoryName == "Windows":
        architectures = ["x64", "x86"]

        # On Windows, clang requires MSVC
        additional_dependency_factories = [
            lambda arch: Dependency(
                "AB7D87C49C2449F79D9F42E5195030FD", "Common_cpp_MSVC_2019",
                arch,
                "https://github.com/davidbrownell/Common_cpp_MSVC_2019.git")
        ]
        native_linker_desc = "Augmented with MSVC"

    else:
        # Cross compiling on Linux is much more difficult on Linux than it is on
        # Windows. Only support the current architecture.
        architectures = [CurrentShell.Architecture]

        # Eventually, this code should depend on a custom build of GCC. However, this isn't
        # working as expected right now.
        #
        # On Linux, the following libraries must be installed:
        #   - libstdc++-7-dev
        #
        # additional_dependency_factories = [lambda arch: Dependency("A21B8960BF0347628EBCE72261DAFEA7", "Common_cpp_GCC", None, "https://github.com/davidbrownell/Common_cpp_GCC.git")]
        additional_dependency_factories = []

        native_linker_desc = "Augmented with GCC"

    for key_suffix, desc_suffix, dependency_factories in [
        (None, None, []),
        ("ex", native_linker_desc, additional_dependency_factories),
    ]:
        for architecture in architectures:
            if key_suffix is None:
                key = architecture
                desc = architecture
            else:
                key = "{}_{}".format(architecture, key_suffix)
                desc = "{} <{}>".format(architecture, desc_suffix)

            d[key] = Configuration(
                desc,
                [
                    Dependency(
                        "F33C43DA6BB54336A7573B39509CDAD7",
                        "Common_cpp_Common", architecture,
                        "https://github.com/davidbrownell/Common_cpp_Common.git"
                    )
                ] + [
                    dependency_factory(architecture)
                    for dependency_factory in dependency_factories
                ],
            )

    d["noop"] = Configuration(
        "Configuration that doesn't do anything; in Bootstrap repositories (where different versions of repositories conflict with each other (normally, the use of these repositories are mutually exclusive))",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706", "Common_Environment",
                "python36",
                "https://github.com/davidbrownell/Common_Environment_v3.git")
        ],
    )

    return d
コード例 #15
0
def GetDependencies():
    """
    Returns information about the dependencies required by this repository.

    The return value should be an OrderedDict if the repository supports multiple configurations
    (aka is configurable) or a single Configuration if not.
    """

    raise Exception(
        "Remove this exception once you have updated the configuration for your new repository (GetDependencies)."
    )

    # To support multiple configurations...
    return OrderedDict([
        (
            "Config1",
            Configuration(
                "A description of Config1; this configuration uses python36",
                [
                    Dependency(
                        "0EAA1DCF22804F90AD9F5A3B85A5D706",  # Id for Common_Environment; found in <Common_Environment>/__RepositoryId__
                        "Common_Environment",  # Name used if Common_Environment cannot be found during setup
                        "python36",  # Configuration value used when activating Common_Environment
                    ),
                    # Other dependencies go here (if any)
                ],
                # By default, the most recent version of all tools and libraries will be activated for this repository and its dependencies.
                # If necessary, you can override this behavior by specifying specific versions for tools that should be used when activating
                # this repository with this configuration.
                VersionSpecs(  # Tools
                    [
                        VersionInfo("Some Tool", "v0.0.1"),
                    ],
                    # Libraries, organized by language
                    {
                        "Python": [
                            VersionInfo("Some Library", "v1.2.3"),
                        ],
                    },
                ),
            )),
        (
            "Config2",
            Configuration(
                "A descrption of Config2; this configuration uses python27",
                [
                    Dependency(
                        "0EAA1DCF22804F90AD9F5A3B85A5D706",  # Id for Common_Environment; found in <Common_Environment>/__RepositoryId__
                        "Common_Environment",  # Name used if Common_Environment cannot be found during setup
                        "python27",  # Configuration value used when activating Common_Environment
                    ),
                    # Other dependencies go here (if any)
                ],
                # By default, the most recent version of all tools and libraries will be activated for this repository and its dependencies.
                # If necessary, you can override this behavior by specifying specific versions for tools that should be used when activating
                # this repository with this configuration.
                VersionSpecs(  # Tools
                    [
                        VersionInfo("Some Other Tool", "v0.2.1"),
                    ],
                    # Libraries, organized by language
                    {
                        "C++": [
                            VersionInfo("Some Library", "v1.2.3"),
                        ],
                    },
                ),
            )),
    ])

    # To support a single (unnamed) configuration...
    return Configuration(
        "A description of Config1; this configuration uses python36",
        [
            Dependency(
                "0EAA1DCF22804F90AD9F5A3B85A5D706",  # Id for Common_Environment; found in <Common_Environment>/__RepositoryId__
                "Common_Environment",  # Name used if Common_Environment cannot be found during setup
                "python36",  # Configuration value used when activating Common_Environment
            ),
            # Other dependencies go here (if any)
        ],
        # By default, the most recent version of all tools and libraries will be activated for this repository and its dependencies.
        # If necessary, you can override this behavior by specifying specific versions for tools that should be used when activating
        # this repository with this configuration.
        VersionSpecs(  # Tools
            [
                VersionInfo("Some Tool", "v0.0.1"),
            ],
            # Libraries, organized by language
            {
                "Python": [
                    VersionInfo("Some Library", "v1.2.3"),
                ],
            },
        ),
    )