mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
Merge pull request #1437 from jszakmeister/build-search-fixes
A few fixes for some build-related issues.
This commit is contained in:
commit
dcccc1a50d
@ -12,6 +12,26 @@ set(DEPS_BIN_DIR "${DEPS_INSTALL_DIR}/bin")
|
||||
|
||||
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
|
||||
include(GetGitRevisionDescription)
|
||||
get_git_head_revision(GIT_REFSPEC NVIM_VERSION_COMMIT)
|
||||
@ -31,17 +51,6 @@ endif()
|
||||
|
||||
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.
|
||||
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||
|
||||
@ -135,7 +144,12 @@ include_directories(SYSTEM ${LUAJIT_INCLUDE_DIRS})
|
||||
|
||||
find_package(LibIntl)
|
||||
if(LibIntl_FOUND)
|
||||
include_directories(SYSTEM ${LibIntl_INCLUDE_DIR})
|
||||
include_directories(SYSTEM ${LibIntl_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
find_package(Iconv)
|
||||
if(Iconv_FOUND)
|
||||
include_directories(SYSTEM ${Iconv_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
# Determine platform's threading library. Set CMAKE_THREAD_PREFER_PTHREAD
|
||||
|
18
cmake/FindIconv.cmake
Normal file
18
cmake/FindIconv.cmake
Normal file
@ -0,0 +1,18 @@
|
||||
# - Try to find iconv
|
||||
# Once done, this will define
|
||||
#
|
||||
# Iconv_FOUND - system has iconv
|
||||
# Iconv_INCLUDE_DIRS - the iconv include directories
|
||||
# Iconv_LIBRARIES - link these to use iconv
|
||||
|
||||
include(LibFindMacros)
|
||||
|
||||
find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
|
||||
find_library(ICONV_LIBRARY NAMES iconv)
|
||||
|
||||
set(Iconv_PROCESS_INCLUDES ICONV_INCLUDE_DIR)
|
||||
if(ICONV_LIBRARY)
|
||||
set(Iconv_PROCESS_LIBS ICONV_LIBRARY)
|
||||
endif()
|
||||
|
||||
libfind_process(Iconv)
|
@ -44,12 +44,9 @@ check_function_exists(getpwent HAVE_GETPWENT)
|
||||
check_function_exists(getpwnam HAVE_GETPWNAM)
|
||||
check_function_exists(getpwuid HAVE_GETPWUID)
|
||||
|
||||
check_include_files(iconv.h HAVE_ICONV_H)
|
||||
check_library_exists(iconv iconv "" HAVE_ICONV_LIB)
|
||||
if(HAVE_ICONV_LIB)
|
||||
set(CMAKE_REQUIRED_LIBRARIES iconv)
|
||||
if(Iconv_FOUND)
|
||||
set(HAVE_ICONV 1)
|
||||
endif()
|
||||
check_function_exists(iconv HAVE_ICONV)
|
||||
|
||||
check_function_exists(lstat HAVE_LSTAT)
|
||||
if(NOT HAVE_LSTAT)
|
||||
|
@ -158,8 +158,8 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(HAVE_ICONV_LIB)
|
||||
list(APPEND NVIM_LINK_LIBRARIES iconv)
|
||||
if(Iconv_LIBRARIES)
|
||||
list(APPEND NVIM_LINK_LIBRARIES ${Iconv_LIBRARIES})
|
||||
endif()
|
||||
|
||||
# Put these last on the link line, since multiple things may depend on them.
|
||||
|
Loading…
Reference in New Issue
Block a user