From ce20c638fcbaf98a786722e59c40ab4881a4b706 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Mon, 30 Nov 2015 10:31:27 +0200 Subject: [PATCH] Cleaned up PCRE2 build process Switched to ExternalProject CMake module to make the inclusion of external CMake projects easier. This removes the rebuilding of the pcre2 libraries each time the project is reconfigured. --- cmake/BuildPCRE2.cmake | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/cmake/BuildPCRE2.cmake b/cmake/BuildPCRE2.cmake index f1b636be9..98e13acdd 100644 --- a/cmake/BuildPCRE2.cmake +++ b/cmake/BuildPCRE2.cmake @@ -5,18 +5,17 @@ # need to add a dependeny on the 'pcre2' target by adding add_dependencies( pcre2) # to the CMakeLists.txt -set(PCRE_ROOT_DIR ${CMAKE_SOURCE_DIR}/pcre2/) -set(PCRE_BUILD_DIR ${CMAKE_BINARY_DIR}/pcre2/) -set(PCRE2_LIBRARIES ${CMAKE_BINARY_DIR}/pcre2/libpcre2-8.so CACHE STRING "PCRE2 dynamic libraries" FORCE) -execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${PCRE_BUILD_DIR}) -execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${PCRE_ROOT_DIR} ${PCRE_BUILD_DIR}) +include(ExternalProject) -add_custom_target(pcre2 COMMAND ${CMAKE_COMMAND} ${PCRE_BUILD_DIR} - -DBUILD_SHARED_LIBS=Y - -DPCRE2_BUILD_PCRE2GREP=N - -DPCRE2_BUILD_TESTS=N - COMMAND make - WORKING_DIRECTORY ${PCRE_BUILD_DIR}) +set(PCRE2_ROOT_DIR ${CMAKE_SOURCE_DIR}/pcre2/) +set(PCRE2_BUILD_DIR ${CMAKE_BINARY_DIR}/pcre2/) +set(PCRE2_LIBRARIES ${CMAKE_BINARY_DIR}/pcre2/libpcre2-8.so CACHE STRING "PCRE2 dynamic libraries" FORCE) + +ExternalProject_Add(pcre2 SOURCE_DIR ${PCRE2_ROOT_DIR} + CMAKE_ARGS -DBUILD_SHARED_LIBS=Y -DPCRE2_BUILD_PCRE2GREP=N -DPCRE2_BUILD_TESTS=N + BINARY_DIR ${PCRE2_BUILD_DIR} + BUILD_COMMAND make + INSTALL_COMMAND "") include_directories(${CMAKE_BINARY_DIR}/pcre2/) install(PROGRAMS ${PCRE2_LIBRARIES} DESTINATION ${MAXSCALE_LIBDIR})