
GCC on CentOS6 thinks there is an array-bounds error in the sqlite code. As that code is outside our hands, it is easiest to instruct GCC not to treat it as an error.
38 lines
1.8 KiB
CMake
38 lines
1.8 KiB
CMake
if(NOT ${CMAKE_VERSION} VERSION_LESS 3.0.0)
|
|
cmake_policy(SET CMP0046 OLD)
|
|
endif()
|
|
|
|
include(ExternalProject)
|
|
|
|
ExternalProject_Add(maxscale_sqlite
|
|
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/sqlite-src-3110100
|
|
BINARY_DIR ${CMAKE_BINARY_DIR}/sqlite-bld-3110100
|
|
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/sqlite-src-3110100/configure --with-pic --enable-maxscale
|
|
BUILD_COMMAND make sqlite3.c
|
|
INSTALL_COMMAND "")
|
|
add_dependencies(maxscale_sqlite ${CMAKE_CURRENT_SOURCE_DIR}/sqlite-src-3110100/src/parse.y)
|
|
|
|
include_directories(${CMAKE_BINARY_DIR}/sqlite-bld-3110100/tsrc)
|
|
include_directories(${CMAKE_BINARY_DIR}/sqlite-bld-3110100)
|
|
include_directories(${MARIADB_CONNECTOR_INCLUDE_DIR})
|
|
|
|
# GCC thinks there is an array-bounds error in sqlite code.
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=array-bounds")
|
|
|
|
add_library(qc_sqlite SHARED qc_sqlite.c qc_sqlite3.c builtin_functions.c)
|
|
add_dependencies(qc_sqlite maxscale_sqlite)
|
|
add_definitions(-DMAXSCALE -DSQLITE_THREADSAFE=0 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_OMIT_ATTACH -DSQLITE_OMIT_REINDEX -DSQLITE_OMIT_AUTOVACUUM -DSQLITE_OMIT_PRAGMA)
|
|
|
|
set_target_properties(qc_sqlite PROPERTIES VERSION "1.0.0")
|
|
set_target_properties(qc_sqlite PROPERTIES LINK_FLAGS -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/qc_sqlite.map)
|
|
# NOTE: If libqc_sqlite is linked with the link-flags -Wl,-z,defs - that is, all
|
|
# NOTE: symbols are resolved at compile time - then for whatever reason, sqlite3_prepare
|
|
# NOTE: is *not* taken from sqlite3.c built into this library, but from the sqlite3
|
|
# NOTE: shared library on the system. Libmaxscale-common depends on the libsqlite, but
|
|
# NOTE: reason is not entirelly understood.
|
|
#
|
|
# target_link_libraries(qc_sqlite maxscale-common)
|
|
# set_target_properties(qc_sqlite PROPERTIES LINK_FLAGS -Wl,-z,defs)
|
|
|
|
install_module(qc_sqlite core)
|