diff --git a/update.py b/update.py index 335630d..5e6a71f 100755 --- a/update.py +++ b/update.py @@ -267,13 +267,15 @@ def fetch_modules(config, relative_path): parse_doc = False if parse_doc: with open(file_name, 'r') as f: - config_docopt, config_define, config_export = parse_cmake_module(f.read()) + config_docopt, config_define, config_export, config_fetch = parse_cmake_module(f.read()) if config_docopt: config.set(section, 'docopt', config_docopt) if config_define: config.set(section, 'define', config_define) if config_export: config.set(section, 'export', config_export) + if config_fetch: + config.set(section, 'fetch', config_fetch) modules.append(Module(path=path, name=name)) i += 1 print_progress_bar( @@ -282,6 +284,10 @@ def fetch_modules(config, relative_path): total=n, width=30 ) + if config.has_option(section, 'fetch'): + for src in config.get(section, 'fetch').split('\n'): + dst = os.path.join(download_directory, os.path.basename(src)) + fetch_url(src, dst) print('') return modules @@ -365,9 +371,10 @@ def parse_cmake_module(s_in): config_docopt = None config_define = None config_export = None + config_fetch = None if 'autocmake.cfg configuration::' not in s_in: - return config_docopt, config_define, config_export + return config_docopt, config_define, config_export, config_fetch s_out = [] is_rst_line = False @@ -400,8 +407,10 @@ def parse_cmake_module(s_in): config_define = config.get(section, 'define') if config.has_option(section, 'export'): config_export = config.get(section, 'export') + if config.has_option(section, 'fetch'): + config_fetch = config.get(section, 'fetch') - return config_docopt, config_define, config_export + return config_docopt, config_define, config_export, config_fetch # ------------------------------------------------------------------------------ @@ -425,7 +434,7 @@ if(NOT DEFINED CMAKE_C_COMPILER_ID) message(FATAL_ERROR "CMAKE_C_COMPILER_ID variable is not defined!") endif()''' - config_docopt, config_define, config_export = parse_cmake_module(s) + config_docopt, config_define, config_export, config_fetch = parse_cmake_module(s) assert config_docopt == "--cxx= C++ compiler [default: g++].\n--extra-cxx-flags= Extra C++ compiler flags [default: '']." @@ -441,7 +450,7 @@ if(NOT DEFINED CMAKE_C_COMPILER_ID) message(FATAL_ERROR "CMAKE_C_COMPILER_ID variable is not defined!") endif()''' - config_docopt, config_define, config_export = parse_cmake_module(s) + config_docopt, config_define, config_export, config_fetch = parse_cmake_module(s) assert config_docopt is None