mirror of
https://github.com/neovim/neovim
synced 2025-07-15 16:51:49 +00:00
[Backport release-0.7] build(macos): use consistent MACOSX_DEPLOYMENT_TARGET (#19435)
build(macos): use consistent MACOSX_DEPLOYMENT_TARGET
Use the same logic for both deps (including LuaJIT, for which setting
this variable is mandatory) and Nvim: either the eponymous environment
variable if set, or the current software version if not.
Removes annoying warnings when building locally on macOS.
(cherry picked from commit aefccc613c
)
Co-authored-by: Christian Clason <c.clason@uni-graz.at>
This commit is contained in:
committed by
GitHub
parent
4a12e40066
commit
68d2bb4070
@ -86,6 +86,16 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
# them be included as one of the first places to look for dependencies.
|
||||
list(APPEND CMAKE_PREFIX_PATH /sw /opt/local)
|
||||
|
||||
# If the macOS deployment target is not set manually (via $MACOSX_DEPLOYMENT_TARGET),
|
||||
# fall back to local system version. Needs to be done both here and in cmake.deps.
|
||||
if(NOT CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
execute_process(COMMAND sw_vers -productVersion
|
||||
OUTPUT_VARIABLE MACOS_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "${MACOS_VERSION}")
|
||||
endif()
|
||||
message("Using deployment target ${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
|
||||
# Work around some old, broken detection by CMake for knowing when to use the
|
||||
# isystem flag. Apple's compilers have supported this for quite some time
|
||||
# now.
|
||||
|
12
third-party/CMakeLists.txt
vendored
12
third-party/CMakeLists.txt
vendored
@ -137,6 +137,18 @@ if(CMAKE_OSX_ARCHITECTURES)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# If the macOS deployment target is not set manually (via $MACOSX_DEPLOYMENT_TARGET),
|
||||
# fall back to local system version. Needs to be done here and in top-level CMakeLists.txt.
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(NOT CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
execute_process(COMMAND sw_vers -productVersion
|
||||
OUTPUT_VARIABLE MACOS_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "${MACOS_VERSION}")
|
||||
endif()
|
||||
message("-- Using deployment target ${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
|
||||
set(HOSTDEPS_INSTALL_DIR "${DEPS_INSTALL_DIR}")
|
||||
set(HOSTDEPS_BIN_DIR "${DEPS_BIN_DIR}")
|
||||
set(HOSTDEPS_LIB_DIR "${DEPS_LIB_DIR}")
|
||||
|
13
third-party/cmake/BuildLuajit.cmake
vendored
13
third-party/cmake/BuildLuajit.cmake
vendored
@ -60,17 +60,10 @@ set(BUILDCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC
|
||||
CCDEBUG+=-g
|
||||
Q=)
|
||||
|
||||
# Setting MACOSX_DEPLOYMENT_TARGET is mandatory for LuaJIT; use version set by
|
||||
# cmake.deps/CMakeLists.txt (either environment variable or current system version).
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
else()
|
||||
execute_process(COMMAND sw_vers -productVersion
|
||||
OUTPUT_VARIABLE MACOS_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${MACOS_VERSION}")
|
||||
endif()
|
||||
else()
|
||||
set(DEPLOYMENT_TARGET "")
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
|
||||
if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES))
|
||||
|
Reference in New Issue
Block a user