git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/2] Add pcre2 support for cmake build system.

From
Yuyi Wang via GitGitGadget <gitgitgadget@gmail.com>
Date
May 24, 2022, 06:38 UTC
Message-ID
<b828585b2050b3ce114abf304a60bb7eaecd8b14.1653374328.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.1267.v2.git.git.1653374328.gitgitgadget@gmail.com>
From: Yuyi Wang <Strawberry_Str@hotmail.com>
This commit fixes one of the TODOs listed in the CMakeLists.txt.

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@hotmail.com>
---
 contrib/buildsystems/CMakeLists.txt | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
index 7f333e303c2..2844dd6c88d 100644
--- a/contrib/buildsystems/CMakeLists.txt
+++ b/contrib/buildsystems/CMakeLists.txt
@@ -108,7 +108,6 @@ project(git
 
 #TODO gitk git-gui gitweb
 #TODO Enable NLS on windows natively
-#TODO Add pcre support
 
 #macros for parsing the Makefile for sources and scripts
 macro(parse_makefile_for_sources list_var regex)
@@ -160,6 +159,14 @@ if(NOT (WIN32 AND (CMAKE_C_COMPILER_ID STREQUAL "MSVC" OR CMAKE_C_COMPILER_ID ST
 	find_package(Intl)
 endif()
 
+find_package(PkgConfig)
+if(PkgConfig_FOUND)
+	pkg_check_modules(PCRE2 libpcre2-8)
+	if(PCRE2_FOUND)
+		add_compile_definitions(USE_LIBPCRE2)
+	endif()
+endif()
+
 if(NOT Intl_FOUND)
 	add_compile_definitions(NO_GETTEXT)
 	if(NOT Iconv_FOUND)
@@ -180,6 +187,9 @@ endif()
 if(Intl_FOUND)
 	include_directories(SYSTEM ${Intl_INCLUDE_DIRS})
 endif()
+if(PCRE2_FOUND)
+	include_directories(SYSTEM ${PCRE2_INCLUDE_DIRS})
+endif()
 
 
 if(WIN32 AND NOT MSVC)#not required for visual studio builds
@@ -700,6 +710,10 @@ 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)
 	add_dependencies(common-main git-rc)
-- 
gitgitgadget
Previous: Junio C Hamano
Message 9 of 9 in “Add pcre2 support for cmake build system.”
  1. Add pcre2 support for cmake build system.Yuyi Wang via GitGitGadget, May 18, 2022
  2. Junio C HamanoMay 18, 2022
  3. Yuyi WangMay 19, 2022
  4. Derrick StoleeMay 23, 2022
  5. Derrick StoleeMay 23, 2022
  6. 0/2 Add pcre2 support for cmake build system.Yuyi Wang via GitGitGadget, May 24, 2022
  7. 1/2 Fix CMakeLists.txt on Linux.Yuyi Wang via GitGitGadget, May 24, 2022
  8. Junio C HamanoMay 24, 2022
  9. 2/2 Add pcre2 support for cmake build system.Yuyi Wang via GitGitGadget, May 24, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.