mirror of
https://github.com/neovim/neovim.git
synced 2024-09-17 20:58:20 -04:00
build: use cmake for all platforms for unibilium and libtermkey (#21926)
It's simpler to rely on the same build file, especially if there aren't any platform-specific workarounds like in this case.
This commit is contained in:
parent
fca39eeabb
commit
20a932cb72
@ -1,27 +1,3 @@
|
||||
if(WIN32)
|
||||
set(LIBTERMKEY_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt
|
||||
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
${BUILD_TYPE_STRING}
|
||||
# Hack to avoid -rdynamic in Mingw
|
||||
-DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS=""
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
|
||||
-DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(LIBTERMKEY_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
|
||||
set(LIBTERMKEY_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
set(LIBTERMKEY_BUILD_COMMAND "" BUILD_IN_SOURCE 1)
|
||||
set(LIBTERMKEY_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
|
||||
PREFIX=${DEPS_INSTALL_DIR} PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig
|
||||
CFLAGS=-fPIC LDFLAGS+=-static ${DEFAULT_MAKE_CFLAGS} install)
|
||||
endif()
|
||||
|
||||
if(USE_EXISTING_SRC_DIR)
|
||||
unset(LIBTERMKEY_URL)
|
||||
endif()
|
||||
@ -30,8 +6,17 @@ ExternalProject_Add(libtermkey
|
||||
URL_HASH SHA256=${LIBTERMKEY_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey
|
||||
CONFIGURE_COMMAND "${LIBTERMKEY_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${LIBTERMKEY_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${LIBTERMKEY_INSTALL_COMMAND}")
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" # Hack to avoid -rdynamic in Mingw
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
|
||||
-DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
${BUILD_TYPE_STRING})
|
||||
|
||||
list(APPEND THIRD_PARTY_DEPS libtermkey)
|
||||
|
@ -1,21 +1,3 @@
|
||||
if(WIN32)
|
||||
set(UNIBILIUM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt
|
||||
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
${BUILD_TYPE_STRING}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
set(UNIBILIUM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
|
||||
set(UNIBILIUM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
|
||||
else()
|
||||
set(UNIBILIUM_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
|
||||
PREFIX=${DEPS_INSTALL_DIR} CFLAGS=-fPIC LDFLAGS+=-static
|
||||
BUILD_IN_SOURCE 1)
|
||||
set(UNIBILIUM_INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install)
|
||||
endif()
|
||||
|
||||
if(USE_EXISTING_SRC_DIR)
|
||||
unset(UNIBILIUM_URL)
|
||||
endif()
|
||||
@ -24,8 +6,14 @@ ExternalProject_Add(unibilium
|
||||
URL_HASH SHA256=${UNIBILIUM_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium
|
||||
CONFIGURE_COMMAND "${UNIBILIUM_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${UNIBILIUM_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${UNIBILIUM_INSTALL_COMMAND}")
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${BUILD_TYPE_STRING})
|
||||
|
||||
list(APPEND THIRD_PARTY_DEPS unibilium)
|
||||
|
@ -7,16 +7,18 @@ set_target_properties(unibilium PROPERTIES PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/u
|
||||
VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
|
||||
|
||||
if(NOT WIN32)
|
||||
execute_process(COMMAND "shell ncursesw6-config --terminfo-dirs 2>/dev/null || \
|
||||
execute_process(COMMAND sh -c "ncursesw6-config --terminfo-dirs 2>/dev/null || \
|
||||
ncurses6-config --terminfo-dirs 2>/dev/null || \
|
||||
ncursesw5-config --terminfo-dirs 2>/dev/null || \
|
||||
ncurses5-config --terminfo-dirs 2>/dev/null || \
|
||||
echo '/etc/terminfo:/lib/terminfo:/usr/share/terminfo:/usr/lib/terminfo:/usr/local/share/terminfo:/usr/local/lib/terminfo'"
|
||||
OUTPUT_VARIABLE TERMINFO_DIRS)
|
||||
# Remove trailing newline
|
||||
string(STRIP "${TERMINFO_DIRS}" TERMINFO_DIRS)
|
||||
else()
|
||||
set(TERMINFO_DIRS "\"\"")
|
||||
set(TERMINFO_DIRS "")
|
||||
endif()
|
||||
target_compile_definitions(unibilium PUBLIC TERMINFO_DIRS=${TERMINFO_DIRS})
|
||||
target_compile_definitions(unibilium PUBLIC "TERMINFO_DIRS=\"${TERMINFO_DIRS}\"")
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS unibilium
|
||||
|
Loading…
Reference in New Issue
Block a user