# ------------------------------------------------------------------------------
# PostgreSQL Patch Scripts
# ------------------------------------------------------------------------------
configure_file(Versions_8_4_and_below.sh.in Versions_8_4_and_below.sh @ONLY)
# Version 8.4 of PostgreSQL and below ship with server/nodes/parsenodes.h
# and server/nodes/primnodes.h that have C++ keywords as identifiers.
# We need to patch this.
message(STATUS "PostgreSQL versions before 9.0 have header files that "
"need a patch for C++ compatibility. Will apply patch for versions "
"below 9.0.")
add_custom_command(
OUTPUT
"${CMAKE_CURRENT_BINARY_DIR}/server/nodes/parsenodes.h"
"${CMAKE_CURRENT_BINARY_DIR}/server/nodes/primnodes.h"
"${CMAKE_CURRENT_BINARY_DIR}/server/utils/builtins.h"
COMMAND
"${CMAKE_CURRENT_BINARY_DIR}/Versions_8_4_and_below.sh"
DEPENDS
"${POSTGRESQL_8_4_SERVER_INCLUDE_DIR}/nodes/parsenodes.h"
"${POSTGRESQL_8_4_SERVER_INCLUDE_DIR}/nodes/primnodes.h"
"${POSTGRESQL_8_4_SERVER_INCLUDE_DIR}/utils/builtins.h"
"${CMAKE_CURRENT_BINARY_DIR}/Versions_8_4_and_below.sh"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Patching parsenodes.h, primnodes.h, builtins.h, memnodes.h: Renaming identifiers that are C++ keywords."
)
add_custom_target(patches_postgresql_8_4
ALL DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/server/nodes/parsenodes.h"
"${CMAKE_CURRENT_BINARY_DIR}/server/nodes/primnodes.h"
"${CMAKE_CURRENT_BINARY_DIR}/server/utils/builtins.h"
)
add_dependencies(madlib_postgresql_8_4 patches_postgresql_8_4)