deps: update libuv to 1.52.1 · nodejs/node@493ac40
@@ -24,6 +24,7 @@ set(CMAKE_C_STANDARD 11)
24242525set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
262627+2728option(LIBUV_BUILD_SHARED "Build shared lib" ON)
28292930cmake_dependent_option(LIBUV_BUILD_TESTS
@@ -700,6 +701,8 @@ if(LIBUV_BUILD_TESTS)
700701 test/test-udp-send-immediate.c
701702 test/test-udp-sendmmsg-error.c
702703 test/test-udp-send-unreachable.c
704+ test/test-udp-recv-cb-close-pollerr.c
705+ test/test-udp-recvmsg-unreachable-error.c
703706 test/test-udp-try-send.c
704707 test/test-udp-recv-in-a-row.c
705708 test/test-udp-reuseport.c
@@ -747,6 +750,14 @@ if(LIBUV_BUILD_TESTS)
747750"$<TARGET_FILE:uv_run_tests_a>"
748751"$<TARGET_FILE_DIR:uv_run_tests_a>/uv_run_tests_a_no_ext")
749752 endif()
753+754+if(QNX)
755+install(TARGETS uv_run_tests uv_run_tests_a uv_run_benchmarks_a
756+DESTINATION ${CMAKE_INSTALL_BINDIR}/libuv_tests)
757+758+install(DIRECTORY test/fixtures
759+DESTINATION ${CMAKE_INSTALL_BINDIR}/libuv_tests)
760+ endif()
750761endif()
751762752763# Now for some gibbering horrors from beyond the stars...
@@ -774,6 +785,11 @@ install(TARGETS uv_a EXPORT libuvConfig
774785install(EXPORT libuvConfig
775786DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv
776787NAMESPACE libuv::)
788+write_basic_package_version_file(libuvConfigVersion.cmake
789+VERSION ${PACKAGE_VERSION}
790+COMPATIBILITY SameMajorVersion)
791+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libuvConfigVersion.cmake
792+DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv)
777793778794if(LIBUV_BUILD_SHARED)
779795# The version in the filename is mirroring the behaviour of autotools.
@@ -814,3 +830,77 @@ message(STATUS "summary of build options:
814830 C compiler: ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID})
815831 CFLAGS: ${CMAKE_C_FLAGS_${_build_type}} ${CMAKE_C_FLAGS}
816832")
833+834+# clang-tidy support
835+option(ENABLE_CLANG_TIDY "Enable clang-tidy checks" ON)
836+if(ENABLE_CLANG_TIDY)
837+find_program(CLANG_TIDY_EXE NAMES "clang-tidy")
838+if(CLANG_TIDY_EXE)
839+set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXE}")
840+message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
841+ else()
842+set(CMAKE_C_CLANG_TIDY "clang-tidy")
843+message(STATUS "clang-tidy not found: install clang-tidy or set -DCLANG_TIDY_EXE to run tidy analysis on this platform")
844+ endif()
845+846+# Collect source files from existing targets (deduplicated)
847+set(ALL_SOURCE_FILES)
848+set(SRC_TARGETS)
849+set(TEST_TARGETS)
850+set(TIDY_TARGETS)
851+852+# Add main library sources
853+list(APPEND ALL_SOURCE_FILES ${uv_sources})
854+855+# Add test sources if tests are enabled
856+if(LIBUV_BUILD_TESTS)
857+list(APPEND ALL_SOURCE_FILES ${uv_test_sources})
858+ endif()
859+860+# Remove duplicates and non-existent files
861+list(REMOVE_DUPLICATES ALL_SOURCE_FILES)
862+863+foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
864+# Create a clean target name
865+string(REPLACE "/" "-" TARGET_NAME ${SOURCE_FILE})
866+string(REGEX REPLACE "\\.[^.]*$" "" TARGET_NAME ${TARGET_NAME})
867+set(FULL_TARGET_NAME "tidy-${TARGET_NAME}")
868+869+# Create individual target for this source file
870+add_custom_target(${FULL_TARGET_NAME}
871+COMMAND ${CMAKE_C_CLANG_TIDY} -p "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}"
872+COMMENT "Running clang-tidy on ${SOURCE_FILE}"
873+VERBATIM)
874+875+# Add to appropriate folder list
876+if(SOURCE_FILE MATCHES "^src/")
877+list(APPEND SRC_TARGETS ${FULL_TARGET_NAME})
878+elseif(SOURCE_FILE MATCHES "^test/")
879+list(APPEND TEST_TARGETS ${FULL_TARGET_NAME})
880+ endif()
881+882+# Add to list of all tidy targets
883+list(APPEND TIDY_TARGETS ${FULL_TARGET_NAME})
884+ endforeach()
885+886+# Create folder-based targets
887+if(SRC_TARGETS)
888+add_custom_target(tidy-src
889+COMMENT "Running clang-tidy on src files"
890+VERBATIM)
891+add_dependencies(tidy-src ${SRC_TARGETS})
892+ endif()
893+894+if(TEST_TARGETS)
895+add_custom_target(tidy-test
896+COMMENT "Running clang-tidy on test files"
897+VERBATIM)
898+add_dependencies(tidy-test ${TEST_TARGETS})
899+ endif()
900+901+# Create main tidy target that depends on all individual targets
902+add_custom_target(tidy
903+COMMENT "Running clang-tidy on all source files"
904+VERBATIM)
905+add_dependencies(tidy ${TIDY_TARGETS})
906+endif()