예제 #1
0
    def main():
        name = os.path.basename(os.getcwd())

        # Parse arguments
        parser = argparse.ArgumentParser(
            prog='Pygling',
            description='Pygling C++ workspace generator.',
            prefix_chars='--',
            formatter_class=argparse.ArgumentDefaultsHelpFormatter)

        parser.add_argument("action",
                            type=str,
                            help="Action",
                            choices=["configure", "build", "install"])
        parser.add_argument("-p",
                            "--platform",
                            default='all',
                            type=str,
                            help="Target platform")
        parser.add_argument("-s",
                            "--source",
                            default='.',
                            type=str,
                            help="Project source path")
        parser.add_argument("-o",
                            "--output",
                            default='projects',
                            type=str,
                            help="Output path")
        parser.add_argument("-n",
                            "--name",
                            default=name,
                            type=str,
                            help="Workspace (solution) name")
        parser.add_argument("-a",
                            "--arch",
                            default='default',
                            type=str,
                            help="Target build architecture")
        parser.add_argument("-x",
                            "--std",
                            default='cxx98',
                            type=str,
                            help="C++ standard",
                            choices=['cxx99', 'cxx11'])
        parser.add_argument("-c",
                            "--configuration",
                            default='Release',
                            type=str,
                            help="Build configuration")
        parser.add_argument("--package",
                            type=str,
                            help="Application package identifier")
        parser.add_argument("--platformSdk",
                            type=str,
                            help="Platform SDK identifier")
        parser.add_argument("--xcteam",
                            type=str,
                            help="Xcode provisioning profile to be used")

        # Check action
        args, unknown = parser.parse_known_args()

        workspace = Workspace(args.name, args.source, args.output, args,
                              unknown)

        if args.action == 'configure': workspace.configure(args.platform)
        elif args.action == 'build': workspace.build(args.platform)
        elif args.action == 'install': workspace.install(args.platform)