mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #8434 'win/build: prefer Ninja'
This commit is contained in:
commit
f711b63513
@ -31,11 +31,7 @@ if(LIBUV_USE_STATIC)
|
||||
"${CMAKE_STATIC_LIBRARY_PREFIX}uv${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif(LIBUV_USE_STATIC)
|
||||
|
||||
if(MSVC)
|
||||
list(APPEND LIBUV_NAMES libuv)
|
||||
else()
|
||||
list(APPEND LIBUV_NAMES uv)
|
||||
endif()
|
||||
list(APPEND LIBUV_NAMES uv)
|
||||
|
||||
find_library(LIBUV_LIBRARY NAMES ${LIBUV_NAMES}
|
||||
HINTS ${PC_LIBUV_LIBDIR} ${PC_LIBUV_LIBRARY_DIRS}
|
||||
|
9
third-party/CMakeLists.txt
vendored
9
third-party/CMakeLists.txt
vendored
@ -81,6 +81,15 @@ if(CMAKE_GENERATOR MATCHES "Makefiles")
|
||||
set(MAKE_PRG "$(MAKE)")
|
||||
endif()
|
||||
|
||||
if(MINGW AND CMAKE_GENERATOR MATCHES "Ninja")
|
||||
find_program(MAKE_PRG NAMES mingw32-make)
|
||||
if(NOT MAKE_PRG)
|
||||
message(FATAL_ERROR "GNU Make for mingw32 is required to build the dependecies.")
|
||||
else()
|
||||
message(STATUS "Found GNU Make for mingw32 at ${MAKE_PRG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ARG1)
|
||||
set(DEPS_C_COMPILER "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}")
|
||||
else()
|
||||
|
31
third-party/cmake/BuildLibuv.cmake
vendored
31
third-party/cmake/BuildLibuv.cmake
vendored
@ -64,21 +64,16 @@ elseif(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
CONFIGURE_COMMAND ${UNIX_CFGCMD} --host=${CROSS_TARGET}
|
||||
INSTALL_COMMAND ${MAKE_PRG} V=1 install)
|
||||
|
||||
elseif(MINGW)
|
||||
|
||||
# Native MinGW
|
||||
BuildLibUv(BUILD_IN_SOURCE
|
||||
PATCH_COMMAND ${LIBUV_PATCH_COMMAND}
|
||||
BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} -f Makefile.mingw
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/libuv/libuv.a ${DEPS_INSTALL_DIR}/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/libuv/include ${DEPS_INSTALL_DIR}/include
|
||||
)
|
||||
|
||||
elseif(WIN32 AND MSVC)
|
||||
elseif(WIN32)
|
||||
|
||||
set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE})
|
||||
if(MSVC)
|
||||
set(BUILD_SHARED ON)
|
||||
elseif(MINGW)
|
||||
set(BUILD_SHARED OFF)
|
||||
else()
|
||||
message(FATAL_ERROR "Trying to build libuv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
|
||||
endif()
|
||||
BuildLibUv(BUILD_IN_SOURCE
|
||||
PATCH_COMMAND ${LIBUV_PATCH_COMMAND}
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
@ -88,16 +83,10 @@ elseif(WIN32 AND MSVC)
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DBUILD_SHARED_LIBS=${BUILD_SHARED}
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}
|
||||
# Some applications (lua-client/luarocks) look for uv.lib instead of libuv.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${UV_OUTPUT_DIR}/libuv.lib ${DEPS_INSTALL_DIR}/lib/uv.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${UV_OUTPUT_DIR}/libuv.dll ${DEPS_INSTALL_DIR}/bin/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${UV_OUTPUT_DIR}/libuv.dll ${DEPS_INSTALL_DIR}/bin/uv.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/libuv/include ${DEPS_INSTALL_DIR}/include)
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "Trying to build libuv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
|
||||
|
10
third-party/cmake/BuildLuajit.cmake
vendored
10
third-party/cmake/BuildLuajit.cmake
vendored
@ -78,8 +78,12 @@ elseif(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
|
||||
elseif(MINGW)
|
||||
|
||||
|
||||
BuildLuaJit(BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} CC=${DEPS_C_COMPILER}
|
||||
if(CMAKE_GENERATOR MATCHES "Ninja")
|
||||
set(LUAJIT_MAKE_PRG ${MAKE_PRG})
|
||||
else()
|
||||
set(LUAJIT_MAKE_PRG ${CMAKE_MAKE_PROGRAM})
|
||||
endif()
|
||||
BuildLuaJit(BUILD_COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER}
|
||||
PREFIX=${DEPS_INSTALL_DIR}
|
||||
CFLAGS+=-DLUAJIT_DISABLE_JIT
|
||||
CFLAGS+=-DLUA_USE_APICHECK
|
||||
@ -87,7 +91,7 @@ elseif(MINGW)
|
||||
CCDEBUG+=-g
|
||||
BUILDMODE=static
|
||||
# Build a DLL too
|
||||
COMMAND ${CMAKE_MAKE_PROGRAM} CC=${DEPS_C_COMPILER} BUILDMODE=dynamic
|
||||
COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER} BUILDMODE=dynamic
|
||||
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
|
||||
|
6
third-party/cmake/BuildLuv.cmake
vendored
6
third-party/cmake/BuildLuv.cmake
vendored
@ -58,6 +58,12 @@ set(LUV_CONFIGURE_COMMAND_COMMON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_MODULE=OFF)
|
||||
|
||||
if(USE_BUNDLED_LIBUV)
|
||||
set(LUV_CONFIGURE_COMMAND_COMMON
|
||||
${LUV_CONFIGURE_COMMAND_COMMON}
|
||||
-DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR})
|
||||
endif()
|
||||
|
||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
|
||||
set(LUV_CONFIGURE_COMMAND
|
||||
|
15
third-party/cmake/LibuvCMakeLists.txt
vendored
15
third-party/cmake/LibuvCMakeLists.txt
vendored
@ -4,11 +4,13 @@ project(libuv LANGUAGES C)
|
||||
file(GLOB UV_SOURCES_COMMON src/*.c)
|
||||
file(GLOB UV_SOURCES_WIN src/win/*.c)
|
||||
|
||||
add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
|
||||
target_compile_definitions(libuv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600")
|
||||
target_link_libraries(libuv iphlpapi psapi shell32 userenv ws2_32)
|
||||
target_include_directories(libuv PUBLIC ./include PRIVATE ./src)
|
||||
set_target_properties(libuv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED)
|
||||
add_library(uv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
|
||||
target_compile_definitions(uv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600")
|
||||
target_link_libraries(uv iphlpapi psapi shell32 userenv ws2_32)
|
||||
target_include_directories(uv PUBLIC ./include PRIVATE ./src)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(uv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED)
|
||||
endif()
|
||||
|
||||
install(FILES
|
||||
include/tree.h
|
||||
@ -20,8 +22,9 @@ install(FILES
|
||||
DESTINATION include)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS libuv
|
||||
install(TARGETS uv
|
||||
PUBLIC_HEADER
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
Loading…
Reference in New Issue
Block a user