mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Change to use cmake to build libuv
This commit is contained in:
		
							
								
								
									
										48
									
								
								third-party/cmake/BuildLibuv.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								third-party/cmake/BuildLibuv.cmake
									
									
									
									
										vendored
									
									
								
							| @@ -64,26 +64,20 @@ 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 AND MSVC) OR (MINGW AND CMAKE_GENERATOR MATCHES "Ninja")) | ||||||
|  |  | ||||||
|   if(CMAKE_GENERATOR MATCHES "Ninja") |  | ||||||
|     set(LIBUV_MAKE_PRG ${MAKE_PRG}) |  | ||||||
|   else() |  | ||||||
|     set(LIBUV_MAKE_PRG ${CMAKE_MAKE_PROGRAM}) |  | ||||||
|   endif() |  | ||||||
|   # Native MinGW |  | ||||||
|   BuildLibUv(BUILD_IN_SOURCE |  | ||||||
|     PATCH_COMMAND ${LIBUV_PATCH_COMMAND} |  | ||||||
|     BUILD_COMMAND ${LIBUV_MAKE_PRG} -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(INSTALL_CMD ${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() | ||||||
|  |     set(INSTALL_CMD ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) | ||||||
|  |   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 | ||||||
| @@ -96,13 +90,19 @@ elseif(WIN32 AND MSVC) | |||||||
|         -DBUILD_SHARED_LIBS=ON |         -DBUILD_SHARED_LIBS=ON | ||||||
|         -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 ${INSTALL_CMD}) | ||||||
|       # 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 | elseif(MINGW) | ||||||
|       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 |   # 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 make_directory ${DEPS_INSTALL_DIR}/include | ||||||
|       COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/libuv/include ${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}") | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								third-party/cmake/LibuvCMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								third-party/cmake/LibuvCMakeLists.txt
									
									
									
									
										vendored
									
									
								
							| @@ -4,11 +4,19 @@ 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}) | if(MSVC) | ||||||
| target_compile_definitions(libuv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600") |   set(LIBUV libuv) | ||||||
| target_link_libraries(libuv iphlpapi psapi shell32 userenv ws2_32) |   add_library(${LIBUV} ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN}) | ||||||
| target_include_directories(libuv PUBLIC ./include PRIVATE ./src) | else() | ||||||
| set_target_properties(libuv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED) |   set(LIBUV uv) | ||||||
|  |   add_library(${LIBUV} STATIC ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN}) | ||||||
|  | endif() | ||||||
|  | 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) | ||||||
|  | if(MSVC) | ||||||
|  |   set_target_properties(${LIBUV} PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| install(FILES | install(FILES | ||||||
|   include/tree.h |   include/tree.h | ||||||
| @@ -20,7 +28,7 @@ install(FILES | |||||||
|   DESTINATION include) |   DESTINATION include) | ||||||
|  |  | ||||||
| include(GNUInstallDirs) | include(GNUInstallDirs) | ||||||
| install(TARGETS libuv | install(TARGETS ${LIBUV} | ||||||
|   PUBLIC_HEADER |   PUBLIC_HEADER | ||||||
|   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||||
|   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 erw7
					erw7