From 33f183938eb5ae7c5c1ecae9e9fd3ab628b40fae Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sun, 22 Mar 2015 15:46:53 -0400 Subject: [PATCH] Allow for system pcre to take precedence. --- CMake/Modules/FindPcre.cmake | 17 +++++++++++++++++ CMakeLists.txt | 5 +++++ extern/CMakeLists.txt | 4 +++- src/CMakeLists.txt | 12 +++++++++++- 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 CMake/Modules/FindPcre.cmake diff --git a/CMake/Modules/FindPcre.cmake b/CMake/Modules/FindPcre.cmake new file mode 100644 index 0000000000..493f006329 --- /dev/null +++ b/CMake/Modules/FindPcre.cmake @@ -0,0 +1,17 @@ +# Find pcre using standard tools. + +# The following will be set: + +# PCRE_INCLUDE_DIR +# PCRE_LIBRARY +# PCRE_FOUND + +find_path(PCRE_INCLUDE_DIR NAMES pcre.h) +find_library(PCRE_LIBRARY NAMES pcre) + +# Properly pass QUIETLY and REQUIRED. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(PCRE DEFAULT_MSG PCRE_INCLUDE_DIR PCRE_LIBRARY) + +mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARY) + diff --git a/CMakeLists.txt b/CMakeLists.txt index 614e3c8255..e6db967839 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,6 +106,7 @@ set(ENDIANNESS "ENDIAN_LITTLE") if(WIN32) set(HAS_OGG TRUE) set(HAS_MP3 TRUE) + set(SYSTEM_PCRE_FOUND FALSE) find_package(DirectX REQUIRED) # FFMPEG...it can be evil. @@ -131,6 +132,7 @@ if(WIN32) elseif(MACOSX) set(HAS_OGG TRUE) set(HAS_MP3 TRUE) + set(SYSTEM_PCRE_FOUND FALSE) set(WITH_CRASH_HANDLER TRUE) # Apple Archs needs to be 32-bit for now. # When SDL2 is introduced, this may change. @@ -189,6 +191,9 @@ elseif(LINUX) find_package(X11) + find_package(Pcre) + set(SYSTEM_PCRE_FOUND ${PCRE_FOUND}) + find_package("BZip2") if (NOT(${BZIP2_FOUND})) message(FATAL_ERROR "Bzip2 support required.") diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt index 0620eb04d2..3570229ad7 100644 --- a/extern/CMakeLists.txt +++ b/extern/CMakeLists.txt @@ -1,7 +1,9 @@ include(CMakeProject-lua.cmake) include(CMakeProject-glew.cmake) include(CMakeProject-json.cmake) -include(CMakeProject-pcre.cmake) +if (NOT SYSTEM_PCRE_FOUND) + include(CMakeProject-pcre.cmake) +endif() include(CMakeProject-tomcrypt.cmake) include(CMakeProject-tommath.cmake) if (APPLE OR MSVC) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 38f4b43543..8aeb6a95e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -296,10 +296,13 @@ list(APPEND SMDATA_LINK_LIB "mad" "png" "glew" - "pcre" "jpeg" ) +if (NOT SYSTEM_PCRE_FOUND) + list(INSERT SMDATA_LINK_LIB 8 "pcre") +endif() + if (WIN32) list(APPEND SMDATA_LINK_LIB # The misc libraries are here. @@ -444,6 +447,10 @@ else() # Unix / Linux list(APPEND SMDATA_LINK_LIB ${X11_LIBRARIES}) endif() + if(PCRE_FOUND) + list(APPEND SMDATA_LINK_LIB ${PCRE_LIBRARY}) + endif() + list(APPEND SMDATA_LINK_LIB ${XRANDR_LIBRARIES} ) @@ -481,6 +488,9 @@ if(NOT APPLE) if (X11_FOUND) list(APPEND SM_INCLUDE_DIRS "${X11_INCLUDE_DIR}") endif() + if (PCRE_FOUND) + list(APPEND SM_INCLUDE_DIRS "${PCRE_INCLUDE_DIR}") + endif() endif() else() list(APPEND SM_INCLUDE_DIRS