101101# 2021-08-28 PH added test for realpath()
102102# 2022-12-10 PH added support for pcre2posix_test
103103# 2023-01-15 Carlo added C99 as the minimum required
104- # 2023-06-03 Theodore used standard CMake constructs to export the library's targets.
105104# 2023-08-06 PH added support for setting variable length lookbehind maximum
106105
107106# Increased minimum to 3.5 to workaround deprecated backward compatibility
@@ -144,7 +143,6 @@ INCLUDE(CheckFunctionExists)
144143INCLUDE (CheckSymbolExists)
145144INCLUDE (CheckIncludeFile)
146145INCLUDE (CheckTypeSize)
147- INCLUDE (CMakePackageConfigHelpers)
148146INCLUDE (GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR
149147
150148CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
@@ -697,9 +695,7 @@ IF(PCRE2_BUILD_PCRE2_8)
697695 VERSION ${LIBPCRE2_8_VERSION}
698696 SOVERSION ${LIBPCRE2_8_SOVERSION} )
699697 TARGET_COMPILE_DEFINITIONS (pcre2-8-static PUBLIC PCRE2_STATIC)
700- TARGET_INCLUDE_DIRECTORIES (pcre2-8-static PUBLIC
701- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
702- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
698+ TARGET_INCLUDE_DIRECTORIES (pcre2-8-static PUBLIC ${PROJECT_BINARY_DIR} )
703699 IF (REQUIRE_PTHREAD)
704700 TARGET_LINK_LIBRARIES (pcre2-8-static Threads::Threads)
705701 ENDIF (REQUIRE_PTHREAD)
@@ -712,9 +708,7 @@ IF(PCRE2_BUILD_PCRE2_8)
712708 VERSION ${LIBPCRE2_POSIX_VERSION}
713709 SOVERSION ${LIBPCRE2_POSIX_SOVERSION} )
714710 TARGET_LINK_LIBRARIES (pcre2-posix-static pcre2-8-static )
715- TARGET_INCLUDE_DIRECTORIES (pcre2-posix-static PUBLIC
716- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
717- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
711+ TARGET_INCLUDE_DIRECTORIES (pcre2-posix-static PUBLIC ${PROJECT_BINARY_DIR} )
718712 set (targets ${targets} pcre2-posix-static )
719713
720714 IF (MSVC )
@@ -731,9 +725,7 @@ IF(PCRE2_BUILD_PCRE2_8)
731725
732726 IF (BUILD_SHARED_LIBS )
733727 ADD_LIBRARY (pcre2-8-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR} /config.h)
734- TARGET_INCLUDE_DIRECTORIES (pcre2-8-shared PUBLIC
735- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
736- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
728+ TARGET_INCLUDE_DIRECTORIES (pcre2-8-shared PUBLIC ${PROJECT_BINARY_DIR} )
737729 SET_TARGET_PROPERTIES (pcre2-8-shared PROPERTIES
738730 COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
739731 MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_8_MACHO_COMPATIBILITY_VERSION} "
@@ -747,9 +739,7 @@ IF(PCRE2_BUILD_PCRE2_8)
747739 set (targets ${targets} pcre2-8-shared)
748740
749741 ADD_LIBRARY (pcre2-posix-shared SHARED ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES} )
750- TARGET_INCLUDE_DIRECTORIES (pcre2-posix-shared PUBLIC
751- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
752- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
742+ TARGET_INCLUDE_DIRECTORIES (pcre2-posix-shared PUBLIC ${PROJECT_BINARY_DIR} )
753743 SET_TARGET_PROPERTIES (pcre2-posix-shared PROPERTIES
754744 COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
755745 MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_POSIX_MACHO_COMPATIBILITY_VERSION} "
@@ -788,9 +778,7 @@ ENDIF(PCRE2_BUILD_PCRE2_8)
788778IF (PCRE2_BUILD_PCRE2_16)
789779 IF (BUILD_STATIC_LIBS)
790780 ADD_LIBRARY (pcre2-16-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR} /config.h)
791- TARGET_INCLUDE_DIRECTORIES (pcre2-16-static PUBLIC
792- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
793- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
781+ TARGET_INCLUDE_DIRECTORIES (pcre2-16-static PUBLIC ${PROJECT_BINARY_DIR} )
794782 SET_TARGET_PROPERTIES (pcre2-16-static PROPERTIES UNITY_BUILD OFF
795783 COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
796784 MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION} "
@@ -815,9 +803,7 @@ IF(PCRE2_BUILD_PCRE2_16)
815803
816804 IF (BUILD_SHARED_LIBS )
817805 ADD_LIBRARY (pcre2-16-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR} /config.h)
818- TARGET_INCLUDE_DIRECTORIES (pcre2-16-shared PUBLIC
819- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
820- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
806+ TARGET_INCLUDE_DIRECTORIES (pcre2-16-shared PUBLIC ${PROJECT_BINARY_DIR} )
821807 SET_TARGET_PROPERTIES (pcre2-16-shared PROPERTIES UNITY_BUILD OFF
822808 COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
823809 MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION} "
@@ -854,9 +840,7 @@ ENDIF(PCRE2_BUILD_PCRE2_16)
854840IF (PCRE2_BUILD_PCRE2_32)
855841 IF (BUILD_STATIC_LIBS)
856842 ADD_LIBRARY (pcre2-32-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR} /config.h)
857- TARGET_INCLUDE_DIRECTORIES (pcre2-32-static PUBLIC
858- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
859- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
843+ TARGET_INCLUDE_DIRECTORIES (pcre2-32-static PUBLIC ${PROJECT_BINARY_DIR} )
860844 SET_TARGET_PROPERTIES (pcre2-32-static PROPERTIES UNITY_BUILD OFF
861845 COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=32
862846 MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION} "
@@ -881,9 +865,7 @@ IF(PCRE2_BUILD_PCRE2_32)
881865
882866 IF (BUILD_SHARED_LIBS )
883867 ADD_LIBRARY (pcre2-32-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR} /config.h)
884- TARGET_INCLUDE_DIRECTORIES (pcre2-32-shared PUBLIC
885- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} >
886- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
868+ TARGET_INCLUDE_DIRECTORIES (pcre2-32-shared PUBLIC ${PROJECT_BINARY_DIR} )
887869 SET_TARGET_PROPERTIES (pcre2-32-shared PROPERTIES UNITY_BUILD OFF
888870 COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=32
889871 MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION} "
@@ -1124,13 +1106,9 @@ ENDIF(PCRE2_BUILD_TESTS)
11241106SET (CMAKE_INSTALL_ALWAYS 1)
11251107
11261108INSTALL (TARGETS ${targets}
1127- EXPORT pcre2-targets
1128- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
1109+ RUNTIME DESTINATION bin
11291110 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
11301111 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
1131- INSTALL (EXPORT pcre2-targets
1132- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/pcre2
1133- NAMESPACE pcre2::)
11341112INSTALL (FILES ${pkg_config_files} DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
11351113INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR} /pcre2-config"
11361114 DESTINATION bin
@@ -1142,12 +1120,11 @@ INSTALL(FILES ${PCRE2_HEADERS} ${PCRE2POSIX_HEADERS} DESTINATION include)
11421120# CMake config files.
11431121set (PCRE2_CONFIG_IN ${CMAKE_CURRENT_SOURCE_DIR} /cmake/pcre2-config.cmake.in)
11441122set (PCRE2_CONFIG_OUT ${CMAKE_CURRENT_BINARY_DIR} /cmake/pcre2-config.cmake)
1145- configure_package_config_file(${PCRE2_CONFIG_IN} ${PCRE2_CONFIG_OUT} INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/pcre2)
1123+ configure_file (${PCRE2_CONFIG_IN} ${PCRE2_CONFIG_OUT} @ONLY)
1124+ set (PCRE2_CONFIG_VERSION_IN ${CMAKE_CURRENT_SOURCE_DIR} /cmake/pcre2-config-version .cmake.in)
11461125set (PCRE2_CONFIG_VERSION_OUT ${CMAKE_CURRENT_BINARY_DIR} /cmake/pcre2-config-version .cmake)
1147- write_basic_package_version_file(${PCRE2_CONFIG_VERSION_OUT}
1148- VERSION ${PCRE2_MAJOR} .${PCRE2_MINOR} .0
1149- COMPATIBILITY SameMajorVersion)
1150- install (FILES ${PCRE2_CONFIG_OUT} ${PCRE2_CONFIG_VERSION_OUT} DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/pcre2)
1126+ configure_file (${PCRE2_CONFIG_VERSION_IN} ${PCRE2_CONFIG_VERSION_OUT} @ONLY)
1127+ install (FILES ${PCRE2_CONFIG_OUT} ${PCRE2_CONFIG_VERSION_OUT} DESTINATION cmake)
11511128
11521129FILE (GLOB html ${PROJECT_SOURCE_DIR} /doc /html/*.html)
11531130FILE (GLOB man1 ${PROJECT_SOURCE_DIR} /doc /*.1)
0 commit comments