Added
Link Here
|
1 |
--- CMakeLists.txt.orig 2022-05-10 11:02:12 UTC |
2 |
+++ CMakeLists.txt |
3 |
@@ -49,7 +49,9 @@ endif() |
4 |
|
5 |
if(USEPCRE) |
6 |
add_definitions(-DUSEPCRE) |
7 |
- list(APPEND EXTRA_TARGET_LINK_LIBRARIES pcre) |
8 |
+ find_package(PkgConfig REQUIRED) |
9 |
+ pkg_check_modules(_pcre REQUIRED libpcre) |
10 |
+ list(APPEND EXTRA_TARGET_LINK_LIBRARIES ${_pcre_LINK_LIBRARIES}) |
11 |
endif() |
12 |
|
13 |
set(RE2_SOURCES |
14 |
@@ -78,9 +80,13 @@ set(RE2_SOURCES |
15 |
) |
16 |
|
17 |
add_library(re2 ${RE2_SOURCES}) |
18 |
+add_library(re2_static STATIC ${RE2_SOURCES}) |
19 |
target_compile_features(re2 PUBLIC cxx_std_11) |
20 |
target_include_directories(re2 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) |
21 |
+target_include_directories(re2 PRIVATE ${CMAKE_SOURCE_DIR}) |
22 |
+target_include_directories(re2_static PRIVATE ${CMAKE_SOURCE_DIR}) |
23 |
set_target_properties(re2 PROPERTIES SOVERSION ${SONAME} VERSION ${SONAME}.0.0) |
24 |
+set_target_properties(re2_static PROPERTIES OUTPUT_NAME "re2") |
25 |
add_library(re2::re2 ALIAS re2) |
26 |
|
27 |
if(UNIX) |
28 |
@@ -102,6 +108,7 @@ if(RE2_BUILD_TESTING) |
29 |
add_library(testing STATIC ${TESTING_SOURCES}) |
30 |
target_compile_features(testing PUBLIC cxx_std_11) |
31 |
target_link_libraries(testing PUBLIC re2) |
32 |
+ target_include_directories(testing PRIVATE ${_pcre_INCLUDE_DIRS}) |
33 |
|
34 |
set(TEST_TARGETS |
35 |
charclass_test |
36 |
@@ -135,6 +142,7 @@ if(RE2_BUILD_TESTING) |
37 |
add_executable(${target} re2/testing/${target}.cc util/test.cc) |
38 |
target_compile_features(${target} PUBLIC cxx_std_11) |
39 |
target_link_libraries(${target} testing ${EXTRA_TARGET_LINK_LIBRARIES}) |
40 |
+ target_include_directories(${target} PRIVATE ${_pcre_INCLUDE_DIRS}) |
41 |
add_test(NAME ${target} COMMAND ${target}) |
42 |
endforeach() |
43 |
|
44 |
@@ -142,6 +150,7 @@ if(RE2_BUILD_TESTING) |
45 |
add_executable(${target} re2/testing/${target}.cc util/benchmark.cc) |
46 |
target_compile_features(${target} PUBLIC cxx_std_11) |
47 |
target_link_libraries(${target} testing ${EXTRA_TARGET_LINK_LIBRARIES}) |
48 |
+ target_include_directories(${target} PRIVATE ${_pcre_INCLUDE_DIRS}) |
49 |
endforeach() |
50 |
endif() |
51 |
|
52 |
@@ -152,6 +161,8 @@ set(RE2_HEADERS |
53 |
re2/stringpiece.h |
54 |
) |
55 |
|
56 |
+configure_file(re2.pc re2.pc @ONLY) |
57 |
+ |
58 |
install(FILES ${RE2_HEADERS} |
59 |
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/re2) |
60 |
install(TARGETS re2 EXPORT re2Targets |
61 |
@@ -159,6 +170,8 @@ install(TARGETS re2 EXPORT re2Targets |
62 |
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
63 |
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
64 |
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) |
65 |
+install(TARGETS re2_static |
66 |
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
67 |
install(EXPORT re2Targets |
68 |
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/re2 NAMESPACE re2::) |
69 |
|
70 |
@@ -174,3 +187,6 @@ write_basic_package_version_file(${CMAKE_CURRENT_BINAR |
71 |
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/re2Config.cmake |
72 |
${CMAKE_CURRENT_BINARY_DIR}/re2ConfigVersion.cmake |
73 |
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/re2) |
74 |
+ |
75 |
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/re2.pc |
76 |
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/libdata/pkgconfig) |