def compile_less(path_name, main_file_name, parsed_args): match = re.compile(r'.*\.less$') base = shakaBuildHelpers.get_source_base() main_less_src = os.path.join(base, path_name, main_file_name + '.less') all_less_srcs = shakaBuildHelpers.get_all_files( os.path.join(base, path_name), match) output = os.path.join(base, 'dist', main_file_name + '.css') less = compiler.Less(main_less_src, all_less_srcs, output) return less.compile(parsed_args.force)
def main(args): parser = argparse.ArgumentParser( description='User facing build script for building the Shaka' ' Player Project.') parser.add_argument('--fix', help='Automatically fix style violations.', action='store_true') parser.add_argument( '--force', '-f', help='Force building the library even if no files have changed.', action='store_true') parser.add_argument( '--debug', help='Limit which build types to build. Will at least build the debug ' 'version.', action='store_true') parser.add_argument( '--release', help='Limit which build types to build. Will at least build the ' 'release version.', action='store_true') parsed_args = parser.parse_args(args) if gendeps.main([]) != 0: return 1 check_args = [] if parsed_args.fix: check_args += ['--fix'] if parsed_args.force: check_args += ['--force'] if check.main(check_args) != 0: return 1 docs_args = [] if parsed_args.force: docs_args += ['--force'] if docs.main(docs_args) != 0: return 1 src = os.path.join(shakaBuildHelpers.get_source_base(), 'ui', 'controls.less') output = os.path.join(shakaBuildHelpers.get_source_base(), 'dist', 'controls.css') less = compiler.Less([src], output) if not less.compile(parsed_args.force): return 1 build_args_with_ui = ['--name', 'ui', '+@complete'] build_args_without_ui = ['--name', 'compiled', '+@complete', '-@ui'] if parsed_args.force: build_args_with_ui += ['--force'] build_args_without_ui += ['--force'] # Create the list of build modes to build with. If the list is empty # by the end, then populate it with every mode. modes = [] modes += ['debug'] if parsed_args.debug else [] modes += ['release'] if parsed_args.release else [] # If --debug or --release are not given, build with everything. if not modes: modes += ['debug', 'release'] for mode in modes: # Complete build includes the UI library, but it is optional and player lib # should build and work without it as well. # First, build the full build (UI included) and then build excluding UI. for build_args in [build_args_with_ui, build_args_without_ui]: if build.main(build_args + ['--mode', mode]) != 0: return 1 is_debug = mode == 'debug' if not apps.build_all(parsed_args.force, is_debug): return 1 return 0
def main(args): parser = argparse.ArgumentParser( description='User facing build script for building the Shaka' ' Player Project.') parser.add_argument( '--locales', type=str, nargs='+', default=generateLocalizations.DEFAULT_LOCALES, help='The list of locales to compile in (default %(default)r)') parser.add_argument('--fix', help='Automatically fix style violations.', action='store_true') parser.add_argument( '--force', '-f', help='Force building the library even if no files have changed.', action='store_true') parser.add_argument( '--debug', help='Limit which build types to build. Will at least build the debug ' 'version.', action='store_true') parser.add_argument( '--release', help='Limit which build types to build. Will at least build the ' 'release version.', action='store_true') parsed_args = parser.parse_args(args) # Make the dist/ folder, ignore errors. base = shakaBuildHelpers.get_source_base() try: os.mkdir(os.path.join(base, 'dist')) except OSError: pass # Generate localizations before running gendeps, so the output is available # to the deps system. # TODO(#1858): It might be time to look at a third-party build system. localizations = compiler.GenerateLocalizations(parsed_args.locales) if not localizations.generate(parsed_args.force): return 1 if gendeps.main([]) != 0: return 1 check_args = [] if parsed_args.fix: check_args += ['--fix'] if parsed_args.force: check_args += ['--force'] if check.main(check_args) != 0: return 1 docs_args = [] if parsed_args.force: docs_args += ['--force'] if docs.main(docs_args) != 0: return 1 match = re.compile(r'.*\.less$') main_less_src = os.path.join(base, 'ui', 'controls.less') all_less_srcs = shakaBuildHelpers.get_all_files(os.path.join(base, 'ui'), match) output = os.path.join(base, 'dist', 'controls.css') less = compiler.Less(main_less_src, all_less_srcs, output) if not less.compile(parsed_args.force): return 1 build_args_with_ui = ['--name', 'ui', '+@complete'] build_args_with_ui += ['--locales'] + parsed_args.locales build_args_without_ui = ['--name', 'compiled', '+@complete', '-@ui'] if parsed_args.force: build_args_with_ui += ['--force'] build_args_without_ui += ['--force'] # Create the list of build modes to build with. If the list is empty # by the end, then populate it with every mode. modes = [] modes += ['debug'] if parsed_args.debug else [] modes += ['release'] if parsed_args.release else [] # If --debug or --release are not given, build with everything. if not modes: modes += ['debug', 'release'] for mode in modes: # Complete build includes the UI library, but it is optional and player lib # should build and work without it as well. # First, build the full build (UI included) and then build excluding UI. for build_args in [build_args_with_ui, build_args_without_ui]: if build.main(build_args + ['--mode', mode]) != 0: return 1 is_debug = mode == 'debug' if not apps.build_all(parsed_args.force, is_debug): return 1 return 0