Pcre2 is dealt with pkg-config. Yuyi Wang (2): Fix CMakeLists.txt on Linux. Add pcre2 support for cmake build system. contrib/buildsystems/CMakeLists.txt | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) base-commit: 277cf0bc36094f6dc4297d8c9cef79df045b735d Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1267%2FBerrysoft%2Fcmake%2Fpcre2-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1267/Berrysoft/cmake/pcre2-v2 Pull-Request: https://github.com/git/git/pull/1267 Range-diff vs v1: -: ----------- > 1: 29cb31e5c50 Fix CMakeLists.txt on Linux. 1: 679e5dd46d0 ! 2: b828585b205 Add pcre2 support for cmake build system. @@ Commit message This commit fixes one of the TODOs listed in the CMakeLists.txt. - There's also some small fix to ensure it builds successfully. + As pcre2 doesn't provide cmake find module, we find it with pkgconf. + This patch also works with vcpkg on Windows, with pkgconf and pcre2 + installed. + + Pkgconf and pcre2 is detected automatically just like curl, expat + and iconv. The output of CMake indicates whether pcre2 is found. Signed-off-by: Yuyi Wang <Strawberry_Str@xxxxxxxxxxx> ## contrib/buildsystems/CMakeLists.txt ## -@@ contrib/buildsystems/CMakeLists.txt: set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) - - option(USE_VCPKG "Whether or not to use vcpkg for obtaining dependencies. Only applicable to Windows platforms" ON) - if(NOT WIN32) -- set(USE_VCPKG OFF CACHE BOOL FORCE) -+ set(USE_VCPKG OFF CACHE BOOL "" FORCE) - endif() - - if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS) @@ contrib/buildsystems/CMakeLists.txt: project(git #TODO gitk git-gui gitweb @@ contrib/buildsystems/CMakeLists.txt: endif() if(WIN32 AND NOT MSVC)#not required for visual studio builds -@@ contrib/buildsystems/CMakeLists.txt: if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") - add_compile_definitions(PROCFS_EXECUTABLE_PATH="/proc/self/exe" HAVE_DEV_TTY ) -- list(APPEND compat_SOURCES unix-socket.c unix-stream-server.c) -+ list(APPEND compat_SOURCES unix-socket.c unix-stream-server.c compat/linux/procinfo.c) - endif() - - if(CMAKE_SYSTEM_NAME STREQUAL "Windows") @@ contrib/buildsystems/CMakeLists.txt: endif() if(Iconv_FOUND) target_link_libraries(common-main ${Iconv_LIBRARIES}) endif() +if(PCRE2_FOUND) + target_link_libraries(common-main ${PCRE2_LIBRARIES}) ++ target_link_directories(common-main PUBLIC ${PCRE2_LIBRARY_DIRS}) +endif() if(WIN32) target_link_libraries(common-main ws2_32 ntdll ${CMAKE_BINARY_DIR}/git.res) -- gitgitgadget