mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Merge #8434 'win/build: prefer Ninja'
This commit is contained in:
		@@ -31,11 +31,7 @@ if(LIBUV_USE_STATIC)
 | 
				
			|||||||
    "${CMAKE_STATIC_LIBRARY_PREFIX}uv${CMAKE_STATIC_LIBRARY_SUFFIX}")
 | 
					    "${CMAKE_STATIC_LIBRARY_PREFIX}uv${CMAKE_STATIC_LIBRARY_SUFFIX}")
 | 
				
			||||||
endif(LIBUV_USE_STATIC)
 | 
					endif(LIBUV_USE_STATIC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(MSVC)
 | 
					list(APPEND LIBUV_NAMES uv)
 | 
				
			||||||
  list(APPEND LIBUV_NAMES libuv)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  list(APPEND LIBUV_NAMES uv)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_library(LIBUV_LIBRARY NAMES ${LIBUV_NAMES}
 | 
					find_library(LIBUV_LIBRARY NAMES ${LIBUV_NAMES}
 | 
				
			||||||
  HINTS ${PC_LIBUV_LIBDIR} ${PC_LIBUV_LIBRARY_DIRS}
 | 
					  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)")
 | 
					  set(MAKE_PRG "$(MAKE)")
 | 
				
			||||||
endif()
 | 
					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)
 | 
					if(CMAKE_C_COMPILER_ARG1)
 | 
				
			||||||
  set(DEPS_C_COMPILER "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}")
 | 
					  set(DEPS_C_COMPILER "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}")
 | 
				
			||||||
else()
 | 
					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}
 | 
					    CONFIGURE_COMMAND ${UNIX_CFGCMD} --host=${CROSS_TARGET}
 | 
				
			||||||
    INSTALL_COMMAND ${MAKE_PRG} V=1 install)
 | 
					    INSTALL_COMMAND ${MAKE_PRG} V=1 install)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
elseif(MINGW)
 | 
					elseif(WIN32)
 | 
				
			||||||
 | 
					 | 
				
			||||||
  # 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)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE})
 | 
					  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
 | 
					  BuildLibUv(BUILD_IN_SOURCE
 | 
				
			||||||
    PATCH_COMMAND ${LIBUV_PATCH_COMMAND}
 | 
					    PATCH_COMMAND ${LIBUV_PATCH_COMMAND}
 | 
				
			||||||
    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
 | 
					    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
 | 
				
			||||||
@@ -88,16 +83,10 @@ elseif(WIN32 AND MSVC)
 | 
				
			|||||||
        -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					        -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
				
			||||||
        -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
 | 
					        -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
 | 
				
			||||||
        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
 | 
					        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
 | 
				
			||||||
        -DBUILD_SHARED_LIBS=ON
 | 
					        -DBUILD_SHARED_LIBS=${BUILD_SHARED}
 | 
				
			||||||
        -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
 | 
					        -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
 | 
				
			||||||
    BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
 | 
					    BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
 | 
				
			||||||
    INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --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)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
  message(FATAL_ERROR "Trying to build libuv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
 | 
					  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)
 | 
					elseif(MINGW)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(CMAKE_GENERATOR MATCHES "Ninja")
 | 
				
			||||||
	BuildLuaJit(BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} CC=${DEPS_C_COMPILER}
 | 
					    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}
 | 
					                                PREFIX=${DEPS_INSTALL_DIR}
 | 
				
			||||||
                                CFLAGS+=-DLUAJIT_DISABLE_JIT
 | 
					                                CFLAGS+=-DLUAJIT_DISABLE_JIT
 | 
				
			||||||
                                CFLAGS+=-DLUA_USE_APICHECK
 | 
					                                CFLAGS+=-DLUA_USE_APICHECK
 | 
				
			||||||
@@ -87,7 +91,7 @@ elseif(MINGW)
 | 
				
			|||||||
                                CCDEBUG+=-g
 | 
					                                CCDEBUG+=-g
 | 
				
			||||||
                                BUILDMODE=static
 | 
					                                BUILDMODE=static
 | 
				
			||||||
                      # Build a DLL too
 | 
					                      # 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
 | 
					          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
 | 
						    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_SHARED_LIBS=OFF
 | 
				
			||||||
  -DBUILD_MODULE=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)
 | 
					if(MINGW AND CMAKE_CROSSCOMPILING)
 | 
				
			||||||
  get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
 | 
					  get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
 | 
				
			||||||
  set(LUV_CONFIGURE_COMMAND
 | 
					  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_COMMON src/*.c)
 | 
				
			||||||
file(GLOB UV_SOURCES_WIN src/win/*.c)
 | 
					file(GLOB UV_SOURCES_WIN src/win/*.c)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
 | 
					add_library(uv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
 | 
				
			||||||
target_compile_definitions(libuv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600")
 | 
					target_compile_definitions(uv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600")
 | 
				
			||||||
target_link_libraries(libuv iphlpapi psapi shell32 userenv ws2_32)
 | 
					target_link_libraries(uv iphlpapi psapi shell32 userenv ws2_32)
 | 
				
			||||||
target_include_directories(libuv PUBLIC ./include PRIVATE ./src)
 | 
					target_include_directories(uv PUBLIC ./include PRIVATE ./src)
 | 
				
			||||||
set_target_properties(libuv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED)
 | 
					if(BUILD_SHARED_LIBS)
 | 
				
			||||||
 | 
					  set_target_properties(uv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(FILES
 | 
					install(FILES
 | 
				
			||||||
  include/tree.h
 | 
					  include/tree.h
 | 
				
			||||||
@@ -20,8 +22,9 @@ install(FILES
 | 
				
			|||||||
  DESTINATION include)
 | 
					  DESTINATION include)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include(GNUInstallDirs)
 | 
					include(GNUInstallDirs)
 | 
				
			||||||
install(TARGETS libuv
 | 
					install(TARGETS uv
 | 
				
			||||||
  PUBLIC_HEADER
 | 
					  PUBLIC_HEADER
 | 
				
			||||||
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
				
			||||||
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
				
			||||||
 | 
					  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | 
				
			||||||
  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 | 
					  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user