neovim/cmake.deps/cmake/BuildLpeg.cmake
Enan Ajmain 1bf29a0ae1
build: add system lua include dir for lpeg
Problem: Lpeg requires Lua headers.  Currently the include directories
for Lpeg are set only to the bundled deps folder, so if the user wants
to use system Lua/Luajit, Lpeg will not find the system headers and will
fail to build.

Solution: Add system Lua/Luajit include directories when USE_BUNDLED_LUA
and USE_BUNDLED_LUAJIT are turned off.

Fixes #23469
2023-05-07 00:47:45 +02:00

33 lines
973 B
CMake

set(LPEG_INCLUDE_FLAGS ${DEPS_INCLUDE_FLAGS})
if(NOT USE_BUNDLED_LUAJIT AND NOT USE_BUNDLED_LUA)
find_package(Luajit)
if(LUAJIT_FOUND)
string(CONCAT LPEG_INCLUDE_FLAGS ${DEPS_INCLUDE_FLAGS} " -I${LUAJIT_INCLUDE_DIR}")
else()
find_package(Lua 5.1 EXACT)
if(LUA_FOUND)
string(CONCAT LPEG_INCLUDE_FLAGS ${DEPS_INCLUDE_FLAGS} " -I${LUA_INCLUDE_DIR}")
endif()
endif()
endif()
list(APPEND LPEG_CMAKE_ARGS -DCMAKE_C_FLAGS=${LPEG_INCLUDE_FLAGS})
ExternalProject_Add(lpeg
URL ${LPEG_URL}
URL_HASH SHA256=${LPEG_SHA256}
DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lpeg
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LpegCMakeLists.txt
${DEPS_BUILD_DIR}/src/lpeg/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LPEG_CMAKE_ARGS}
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
if(USE_BUNDLED_LUAJIT)
add_dependencies(lpeg luajit)
elseif(USE_BUNDLED_LUA)
add_dependencies(lpeg lua)
endif()