#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os, sys import configparser def get_l_option_section(config): """List of options chosen by the user""" l = [o for o in ['OPENMP'] if config.getboolean("OPTION", o)] l.append(config.get("OPTION", "MODE").strip()) return l def get_compilation_option(pwd_cfg, flag_name): """ Return the flag compilation of a compile.cfg located in pwd_cfg """ if not os.path.isfile(pwd_cfg): print("Configuration file %s not found"%(pwd_cfg)) sys.exit(1) config = configparser.ConfigParser(inline_comment_prefixes=(';','#')) config.read(pwd_cfg) if flag_name == "FC" and config.getboolean("OPTION","CACHE"): l = ["cache_compile.py"] else: l = [] l_option_section = get_l_option_section(config) for section in ["COMMON"] + l_option_section: try: l.extend(config.get(section, flag_name).split()) except configparser.NoOptionError: pass return " ".join(l) if __name__ == '__main__': qpackage_root = os.environ['QP_ROOT'] pwd_cfg = os.path.join(qpackage_root, "config/ifort_gpi2.cfg") print(get_compilation_option(pwd_cfg, "FC")) print(get_compilation_option(pwd_cfg, "FCFLAGS"))