neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 01fc5097d3b6921fce5c159e5c772dc1590eb847
parent 998dc07288c174937347b006ebe918fe0eb57f52
Author: Justin M. Keyes <justinkz@gmail.com>
Date:   Wed, 29 Jun 2022 03:41:40 +0200

Merge #19139 build(cmake): fix static libintl on macOS


Diffstat:
M.github/workflows/release.yml | 1+
Mcmake/FindLibIntl.cmake | 13+++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml @@ -102,6 +102,7 @@ jobs: brew uninstall $(brew uses --installed --recursive gettext) brew unlink gettext ln -sf "$(brew --prefix)/opt/$(readlink "${GETTEXT_PREFIX}")/bin"/* /usr/local/bin/ + ln -sf "$(brew --prefix)/opt/$(readlink "${GETTEXT_PREFIX}")/include"/* /usr/local/include/ rm -f "$GETTEXT_PREFIX" - name: Build release run: | diff --git a/cmake/FindLibIntl.cmake b/cmake/FindLibIntl.cmake @@ -41,6 +41,16 @@ endif() if (MSVC) list(APPEND CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) endif() + +# On macOS, if libintl is a static library then we also need +# to link libiconv and CoreFoundation. +get_filename_component(LibIntl_EXT "${LibIntl_LIBRARY}" EXT) +if (APPLE AND (LibIntl_EXT STREQUAL ".a")) + set(LibIntl_STATIC TRUE) + find_library(CoreFoundation_FRAMEWORK CoreFoundation) + list(APPEND CMAKE_REQUIRED_LIBRARIES "${ICONV_LIBRARY}" "${CoreFoundation_FRAMEWORK}") +endif() + check_c_source_compiles(" #include <libintl.h> @@ -54,6 +64,9 @@ int main(int argc, char** argv) { if (MSVC) list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY}) endif() +if (LibIntl_STATIC) + list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${ICONV_LIBRARY}" "${CoreFoundation_FRAMEWORK}") +endif() if (LibIntl_INCLUDE_DIR) list(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}") endif()