mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 05:05:00 -07:00
build: give priority to /sw and /opt/local on Mac OS X
Unfortunately, we can't force the specific inclusion of a header file. So if anything add /opt/local/include to the include path--such as libintl--then other dependencies might be drawn from /opt/local at compile time, even though we detected them elsewhere at configure time. This, in turn, causes issues with mixed versions, such as the iconv.h header being pulled from /opt/local/include, but linked against the library in /usr/lib--which can be mismatched versions. So, despite CMake's best effort to treat /sw and /opt/local as just another system area, we really need to give them preferential treatment. To do this, we add them to CMAKE_PREFIX_PATH. This fixes an issue discovered while re-enabling iconv in #1370.
This commit is contained in:
parent
05f78d30ac
commit
203a5166a0
@ -12,6 +12,26 @@ set(DEPS_BIN_DIR "${DEPS_INSTALL_DIR}/bin")
|
|||||||
|
|
||||||
list(APPEND CMAKE_PREFIX_PATH ${DEPS_INSTALL_DIR})
|
list(APPEND CMAKE_PREFIX_PATH ${DEPS_INSTALL_DIR})
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
|
# CMake tries to treat /sw and /opt/local as extension of the system path, but
|
||||||
|
# that doesn't really work out very well. Once you have a dependency that
|
||||||
|
# resides there and have to add it as an include directory, then any other
|
||||||
|
# dependency that could be satisfied from there must be--otherwise you can end
|
||||||
|
# up with conflicting versions. So, let's make them more of a priority having
|
||||||
|
# them be included as one of the first places to look for dependencies.
|
||||||
|
list(APPEND CMAKE_PREFIX_PATH /sw /opt/local)
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
|
||||||
|
endif()
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Version tokens
|
# Version tokens
|
||||||
include(GetGitRevisionDescription)
|
include(GetGitRevisionDescription)
|
||||||
get_git_head_revision(GIT_REFSPEC NVIM_VERSION_COMMIT)
|
get_git_head_revision(GIT_REFSPEC NVIM_VERSION_COMMIT)
|
||||||
@ -31,17 +51,6 @@ endif()
|
|||||||
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
# 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.
|
|
||||||
if(APPLE)
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
|
|
||||||
endif()
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Default to -O2 on release builds.
|
# Default to -O2 on release builds.
|
||||||
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user