default_release_feature Function

public function default_release_feature() result(collection)

Create default release feature collection

Arguments

None

Return Value type(feature_collection_t)


Source Code

    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