diff options
Diffstat (limited to 'pcre/CMakeLists.txt')
-rw-r--r-- | pcre/CMakeLists.txt | 73 |
1 files changed, 64 insertions, 9 deletions
diff --git a/pcre/CMakeLists.txt b/pcre/CMakeLists.txt index 858a34bd063..16d89ff2365 100644 --- a/pcre/CMakeLists.txt +++ b/pcre/CMakeLists.txt @@ -67,16 +67,23 @@ # 2013-11-05 PH added support for PARENS_NEST_LIMIT # 2016-03-01 PH applied Chris Wilson's patch for MSVC static build # 2016-06-24 PH applied Chris Wilson's revised patch (adds a separate option) +# 2021-06-14 PH changed CMAKE_MODULE_PATH definition to add, not replace +# 2021-06-14 PH applied Wolfgang Stöggl's patch for generating pcre-config and +# libpcre*.pc files (Bugzilla #2583) PROJECT(PCRE C CXX) -# Increased minimum to 2.8.0 to support newer add_test features. Set policy +# Increased minimum to 2.8.5 to support GNUInstallDirs. Set policy # CMP0026 to avoid warnings for the use of LOCATION in GET_TARGET_PROPERTY. -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5) CMAKE_POLICY(SET CMP0026 OLD) -SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake +# For FindReadline.cmake. This was changed to allow setting CMAKE_MODULE_PATH +# on the command line. +# SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake + +LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # external packages FIND_PACKAGE( BZip2 ) @@ -90,6 +97,7 @@ INCLUDE(CheckIncludeFile) INCLUDE(CheckIncludeFileCXX) INCLUDE(CheckFunctionExists) INCLUDE(CheckTypeSize) +INCLUDE(GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) @@ -406,7 +414,7 @@ foreach(configure_line ${configure_lines}) foreach(_substitution_variable ${SEARCHED_VARIABLES}) string(TOUPPER ${_substitution_variable} _substitution_variable_upper) if (NOT ${_substitution_variable_upper}) - string(REGEX MATCH "m4_define\\(${_substitution_variable}, \\[(.*)\\]" MACTHED_STRING ${configure_line}) + string(REGEX MATCH "m4_define\\(${_substitution_variable}, \\[(.*)\\]" MATCHED_STRING ${configure_line}) if (CMAKE_MATCH_1) set(${_substitution_variable_upper} ${CMAKE_MATCH_1}) endif() @@ -418,8 +426,6 @@ CONFIGURE_FILE(pcre.h.in ${PROJECT_BINARY_DIR}/pcre.h @ONLY) -# What about pcre-config and libpcre.pc? - IF(PCRE_BUILD_PCRECPP) CONFIGURE_FILE(pcre_stringpiece.h.in ${PROJECT_BINARY_DIR}/pcre_stringpiece.h @@ -430,6 +436,49 @@ IF(PCRE_BUILD_PCRECPP) @ONLY) ENDIF(PCRE_BUILD_PCRECPP) +# Generate pkg-config files +SET(PACKAGE_VERSION "${PCRE_MAJOR}.${PCRE_MINOR}") +SET(prefix "${CMAKE_INSTALL_PREFIX}") +SET(exec_prefix "\${prefix}") +SET(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +SET(includedir "\${prefix}/include") +IF(NOT BUILD_SHARED_LIBS) + SET(PCRE_STATIC_CFLAG "-DPCRE_STATIC") +ENDIF(NOT BUILD_SHARED_LIBS) +# TO-DO: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ + +CONFIGURE_FILE(libpcreposix.pc.in ${PROJECT_BINARY_DIR}/libpcreposix.pc @ONLY) + +IF(PCRE_BUILD_PCRE8) + CONFIGURE_FILE(libpcre.pc.in ${PROJECT_BINARY_DIR}/libpcre.pc @ONLY) + SET(enable_pcre8 "yes") +ELSE() + SET(enable_pcre8 "no") +ENDIF() + +IF(PCRE_BUILD_PCRE16) + CONFIGURE_FILE(libpcre16.pc.in ${PROJECT_BINARY_DIR}/libpcre16.pc @ONLY) + SET(enable_pcre16 "yes") +ELSE() + SET(enable_pcre16 "no") +ENDIF() + +IF(PCRE_BUILD_PCRE32) + CONFIGURE_FILE(libpcre32.pc.in ${PROJECT_BINARY_DIR}/libpcre32.pc @ONLY) + SET(enable_pcre32 "yes") +ELSE() + SET(enable_pcre32 "no") +ENDIF() + +IF(PCRE_BUILD_PCRECPP) + CONFIGURE_FILE(libpcrecpp.pc.in ${PROJECT_BINARY_DIR}/libpcrecpp.pc @ONLY) + SET(enable_cpp "yes") +ELSE() + SET(enable_cpp "no") +ENDIF() + +CONFIGURE_FILE(pcre-config.in pcre-config @ONLY) + # Character table generation OPTION(PCRE_REBUILD_CHARTABLES "Rebuild char tables" OFF) @@ -887,14 +936,15 @@ SET(CMAKE_INSTALL_ALWAYS 1) INSTALL(TARGETS ${targets} RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) INSTALL(FILES ${PCRE_HEADERS} ${PCREPOSIX_HEADERS} DESTINATION include) FILE(GLOB html ${PROJECT_SOURCE_DIR}/doc/html/*.html) FILE(GLOB man1 ${PROJECT_SOURCE_DIR}/doc/*.1) FILE(GLOB man3 ${PROJECT_SOURCE_DIR}/doc/*.3) +FILE(GLOB pc ${PROJECT_BINARY_DIR}/*.pc) IF(PCRE_BUILD_PCRECPP) INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include) @@ -912,6 +962,11 @@ ENDIF(PCRE_BUILD_PCRECPP) INSTALL(FILES ${man1} DESTINATION man/man1) INSTALL(FILES ${man3} DESTINATION man/man3) INSTALL(FILES ${html} DESTINATION share/doc/pcre/html) +INSTALL(FILES ${pc} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/pcre-config" + DESTINATION bin + # Set 0755 permissions + PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) IF(MSVC AND INSTALL_MSVC_PDB) INSTALL(FILES ${PROJECT_BINARY_DIR}/pcre.pdb @@ -941,7 +996,7 @@ IF(PCRE_SHOW_REPORT) ENDIF(CMAKE_CXX_FLAGS) MESSAGE(STATUS "") MESSAGE(STATUS "") - MESSAGE(STATUS "PCRE configuration summary:") + MESSAGE(STATUS "PCRE-${PCRE_MAJOR}.${PCRE_MINOR} configuration summary:") MESSAGE(STATUS "") MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}") MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}") |