Skip to content

Commit 184689b

Browse files
committed
fix: Properly detect default macOS deployment target from sw_vers
1 parent 035011e commit 184689b

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

cmake/XRay.Compiler.GNULike.cmake

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,28 @@ if (APPLE)
55
if ($ENV{MACOSX_DEPLOYMENT_TARGET})
66
set(CMAKE_OSX_DEPLOYMENT_TARGET $ENV{MACOSX_DEPLOYMENT_TARGET})
77
else()
8-
message(NOTICE "CMAKE_OSX_DEPLOYMENT_TARGET is not set, defaulting it to your system's version: ${CMAKE_SYSTEM_VERSION}")
9-
set(CMAKE_OSX_DEPLOYMENT_TARGET ${CMAKE_SYSTEM_VERSION})
8+
execute_process(
9+
COMMAND sw_vers -productVersion
10+
OUTPUT_VARIABLE XRAY_MACOS_PRODUCT_VERSION
11+
RESULT_VARIABLE XRAY_SW_VERS_RESULT
12+
OUTPUT_STRIP_TRAILING_WHITESPACE
13+
ERROR_QUIET
14+
)
15+
16+
if (XRAY_SW_VERS_RESULT STREQUAL "0" AND XRAY_MACOS_PRODUCT_VERSION MATCHES "^([0-9]+)")
17+
set(CMAKE_OSX_DEPLOYMENT_TARGET "${CMAKE_MATCH_1}.0")
18+
message(NOTICE "CMAKE_OSX_DEPLOYMENT_TARGET is not set, defaulting it to macOS ${CMAKE_OSX_DEPLOYMENT_TARGET}")
19+
elseif (CMAKE_SYSTEM_VERSION MATCHES "^([0-9]+)")
20+
set(XRAY_DARWIN_VERSION_MAJOR "${CMAKE_MATCH_1}")
21+
if (XRAY_DARWIN_VERSION_MAJOR GREATER_EQUAL 20)
22+
math(EXPR XRAY_MACOS_VERSION_MAJOR "${XRAY_DARWIN_VERSION_MAJOR} - 9")
23+
set(CMAKE_OSX_DEPLOYMENT_TARGET "${XRAY_MACOS_VERSION_MAJOR}.0")
24+
message(NOTICE "CMAKE_OSX_DEPLOYMENT_TARGET is not set, defaulting it to macOS ${CMAKE_OSX_DEPLOYMENT_TARGET}")
25+
else()
26+
message(NOTICE "CMAKE_OSX_DEPLOYMENT_TARGET is not set, defaulting it to 10.15")
27+
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15)
28+
endif()
29+
endif()
1030
endif()
1131
endif()
1232
message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")

0 commit comments

Comments
 (0)