diff --git a/mpcdf_common.py b/mpcdf_common.py index b1144b0f9601933d8fdffcfee6840c53ff642b79..c7f20327b00104effa4c798f408d3908b813ec65 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -294,6 +294,13 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r default_mpis = try_get_attribute(None, "default_mpi") default_cudas = try_get_attribute(None, "default_cuda") + def sort_key(string): + name, *version = string.split("_") + return (name,) + tuple(map(int, version)) + + latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=sort_key)[-1] + latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=sort_key)[-1] + def enable(name): if any(filtered_repo in name for filtered_repo in filter_repos): return @@ -305,7 +312,7 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r print("Enabling", name) def actual_compilers(): - for compiler in (c for c in compilers if c in all_compilers + ["default_compiler", "intel", "gcc"]): + for compiler in (c for c in compilers if c in all_compilers + ["default_compiler", "intel", "gcc", "latest_intel", "latest_gcc"]): if compiler == "intel": for intel_compiler in [cc for cc in all_compilers if cc.startswith("intel")]: yield intel_compiler @@ -315,6 +322,10 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r elif compiler == "default_compiler": for default_compiler in default_compilers: yield default_compiler + elif compiler == "latest_intel": + yield latest_intel + elif compiler == "latest_gcc": + yield latest_gcc else: yield compiler