aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2022-07-19 16:10:59 +0200
committerGitHub <noreply@github.com>2022-07-19 16:10:59 +0200
commit9e15bdde3ba8c84177d6d912eef3c0e056a76bb9 (patch)
treeab4aa3618e35d658702ac5c7e89521db9b3001be
parent871ff8d62f336e0d11aeab4f44e4318caefc51e4 (diff)
downloadrneovim-9e15bdde3ba8c84177d6d912eef3c0e056a76bb9.tar.gz
rneovim-9e15bdde3ba8c84177d6d912eef3c0e056a76bb9.tar.bz2
rneovim-9e15bdde3ba8c84177d6d912eef3c0e056a76bb9.zip
build(macos): use consistent MACOSX_DEPLOYMENT_TARGET (#19430)
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.
-rw-r--r--CMakeLists.txt10
-rw-r--r--cmake.deps/CMakeLists.txt12
-rw-r--r--cmake.deps/cmake/BuildLuajit.cmake13
3 files changed, 25 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b996a8fb0c..6c54e5749b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -89,6 +89,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.
diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt
index fc0eb30a92..07f414b431 100644
--- a/cmake.deps/CMakeLists.txt
+++ b/cmake.deps/CMakeLists.txt
@@ -132,6 +132,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}")
diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake
index c8d5b39398..9b393310d6 100644
--- a/cmake.deps/cmake/BuildLuajit.cmake
+++ b/cmake.deps/cmake/BuildLuajit.cmake
@@ -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))