diff --git a/Project.toml b/Project.toml index 6bec7b1..492ce25 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ObjectiveC" uuid = "e86c9b32-1129-44ac-8ea0-90d5bb39ded9" -version = "3.4.1" +version = "3.4.2" [deps] CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82" diff --git a/src/version.jl b/src/version.jl index 16515d7..90c175d 100644 --- a/src/version.jl +++ b/src/version.jl @@ -23,7 +23,7 @@ end const darwin_version = OncePerProcess{VersionNumber}() do _syscall_version("kern.osrelease") end - const macos_version = OncePerProcess{VersionNumber}() do + const _macos_version = OncePerProcess{VersionNumber}() do _syscall_version("kern.osproductversion") end else @@ -35,15 +35,24 @@ else _darwin_version[] end - const _macos_version = Ref{VersionNumber}() - function macos_version() - if !isassigned(_macos_version) - _macos_version[] = _syscall_version("kern.osproductversion") + const __macos_version = Ref{VersionNumber}() + function _macos_version() + if !isassigned(__macos_version) + __macos_version[] = _syscall_version("kern.osproductversion") end - _macos_version[] + __macos_version[] end end +function macos_version(normalize=true) + ver = _macos_version() + if normalize && ver.major == 16 + # on older SDKs, macOS Tahoe (26) is reported as v16. + # normalize this to v26 regardless of the SDK to simplify use. + return VersionNumber(26, ver.minor, ver.patch) + end + return ver +end @doc """ ObjectiveC.darwin_version()::VersionNumber