Create default release feature collection
function default_release_feature() result(collection) type(feature_collection_t) :: collection ! Initialize base feature with release settings collection%base%name = 'release' collection%base%platform%compiler = id_all collection%base%platform%os_type = OS_ALL collection%base%default = .true. ! Add release variants for different compilers call collection%push_variant(default_variant('release', id_caf, OS_ALL, & ' -O3 -Wimplicit-interface -fPIC -fmax-errors=1 -funroll-loops')) call collection%push_variant(default_variant('release', id_gcc, OS_ALL, & ' -O3 -Wimplicit-interface -fPIC -fmax-errors=1 -funroll-loops -fcoarray=single')) call collection%push_variant(default_variant('release', id_f95, OS_ALL, & ' -O3 -Wimplicit-interface -fPIC -fmax-errors=1 -ffast-math -funroll-loops')) call collection%push_variant(default_variant('release', id_nvhpc, OS_ALL, & ' -Mbackslash')) call collection%push_variant(default_variant('release', id_intel_classic_nix, OS_LINUX, & ' -fp-model precise -pc64 -align all -error-limit 1 -reentrancy& & threaded -nogen-interfaces -assume byterecl')) call collection%push_variant(default_variant('release', id_intel_classic_windows, & OS_WINDOWS, ' /fp:precise /align:all /error-limit:1 /reentrancy:threaded& & /nogen-interfaces /assume:byterecl')) call collection%push_variant(default_variant('release', id_intel_llvm_nix, & OS_LINUX, ' -fp-model=precise -pc64 -align all -error-limit 1 -reentrancy threaded& & -nogen-interfaces -assume byterecl')) call collection%push_variant(default_variant('release', id_intel_llvm_nix, & OS_WINDOWS, ' /fp:precise /align:all /error-limit:1 /reentrancy:threaded& & /nogen-interfaces /assume:byterecl')) call collection%push_variant(default_variant('release', id_nag, OS_ALL, & ' -O4 -coarray=single -PIC')) call collection%push_variant(default_variant('release', id_lfortran, OS_ALL, & ' flag_lfortran_opt')) end function default_release_feature