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.
This commit is contained in:
Markus Makela
2015-11-30 10:31:27 +02:00
parent 3cd648fa09
commit ce20c638fc

View File

@ -5,18 +5,17 @@
# need to add a dependeny on the 'pcre2' target by adding add_dependencies(<target> 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})