; docformat = 'rst'
;+
; Returns the IDL version number as a string or a boolean indicating whether
; a required version is met.
;
; :Examples:
; For example, try::
;
; IDL> print, mg_idlversion()
; 8.0.1
; IDL> print, mg_idlversion(require='8.0.1')
; 1
;
; Also, try the main-level program at the end of this file::
;
; IDL> .run mg_idlversion
; Version: 8.0.1
; Can require 6.4: yes
; Can require 7.1: yes
; Can require 7.2: yes
;
; :Returns:
; string version number or boolean
;
; :Keywords:
; require : in, optional, type=string
; IDL version required; if set, `MG_IDLVERSION` returns a boolean of
; whether the version requirement is met
;-
function mg_idlversion, require=require
compile_opt strictarr
version = (strsplit(!version.release, /extract))[0]
if (n_elements(require) gt 0L) then begin
return, mg_cmp_version(version, require) ge 0B
endif else begin
return, version
endelse
end
; main-level example
print, mg_idlversion(), format='(%"Version: %s")'
print, mg_idlversion(require='6.4') ? 'yes' : 'no', $
format='(%"Can require 6.4: %s")'
print, mg_idlversion(require='7.1') ? 'yes' : 'no', $
format='(%"Can require 7.1: %s")'
print, mg_idlversion(require='7.2') ? 'yes' : 'no', $
format='(%"Can require 7.2: %s")'
end