aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Scogland <tom.scogland@gmail.com>2024-10-10 11:14:23 -0700
committerdundargoc <33953936+dundargoc@users.noreply.github.com>2024-10-22 14:29:20 +0200
commite178331488a0fb6a9c48152511a21a3f95d66750 (patch)
treee33ac4d63afc461671f8a84317e0b182fa428ea5
parent573bcb2aaf3e2421e0d2593b048f684ee05251a6 (diff)
downloadrneovim-e178331488a0fb6a9c48152511a21a3f95d66750.tar.gz
rneovim-e178331488a0fb6a9c48152511a21a3f95d66750.tar.bz2
rneovim-e178331488a0fb6a9c48152511a21a3f95d66750.zip
build(lpeg): search for lpeg.so on MacOS
Problem: Currently Neovim only searches for lpeg.dylib, liblpeg.dylib, etc. on MacOS, but a normal installation of lpeg will produce lpeg.so instead. There are explicit workarounds for this by modifying lpeg's package in Homebrew, and will shortly be another in spack. Solution: also search for lpeg.so even if that's not the platform default, because Lua and luarocks use it anyway.
-rw-r--r--cmake/FindLpeg.cmake11
1 files changed, 10 insertions, 1 deletions
diff --git a/cmake/FindLpeg.cmake b/cmake/FindLpeg.cmake
index 3d0ff5929d..7657bdac9e 100644
--- a/cmake/FindLpeg.cmake
+++ b/cmake/FindLpeg.cmake
@@ -1,4 +1,13 @@
-find_library2(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a lpeg${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
+find_library2(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a lpeg.so lpeg${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
+if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND LPEG_LIBRARY MATCHES ".so$")
+ execute_process(
+ COMMAND otool -hv "${LPEG_LIBRARY}"
+ OUTPUT_VARIABLE LPEG_HEADER
+ )
+ if(LPEG_HEADER MATCHES ".* BUNDLE .*")
+ message(FATAL_ERROR "lpeg library found at ${LPEG_LIBRARY} but built as a bundle rather than a dylib, please rebuild with `-dynamiclib` rather than `-bundle`")
+ endif()
+endif()
find_package_handle_standard_args(Lpeg DEFAULT_MSG LPEG_LIBRARY)
mark_as_advanced(LPEG_LIBRARY)