Make maxutils a standalone library
The only way to cleanly separate the maxutils library from the MaxScale CMake project is to make it a standalone CMake project. With the help of ExternalProject, it should be relatively easy to use.
This commit is contained in:
parent
b96228f95c
commit
7254a7c525
@ -57,6 +57,10 @@ include_directories(BEFORE ${MARIADB_CONNECTOR_INCLUDE_DIR})
|
||||
include(cmake/BuildJansson.cmake)
|
||||
include(cmake/BuildMicroHttpd.cmake)
|
||||
|
||||
# Build the MaxUtils libraries
|
||||
include(cmake/BuildMaxUtils.cmake)
|
||||
include_directories(${MAXUTILS_INCLUDE_DIR})
|
||||
|
||||
include_directories(${JANSSON_INCLUDE_DIR})
|
||||
|
||||
if(NOT OPENSSL_FOUND)
|
||||
@ -166,7 +170,6 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${DEBUG_FLAGS} -DSS_DEBUG -D
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-deprecated-declarations -Wno-uninitialized -std=c++11")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -ggdb -Wno-deprecated-declarations -Wno-uninitialized -std=c++11")
|
||||
|
||||
include_directories(maxutils/maxbase/include)
|
||||
include_directories(include)
|
||||
include_directories(server/inih)
|
||||
include_directories(server/modules/include)
|
||||
@ -178,7 +181,6 @@ if (BUILD_CDC)
|
||||
add_subdirectory(avro)
|
||||
endif()
|
||||
|
||||
add_subdirectory(maxutils)
|
||||
add_subdirectory(plugins)
|
||||
add_subdirectory(query_classifier)
|
||||
add_subdirectory(server)
|
||||
|
9
cmake/BuildMaxUtils.cmake
Normal file
9
cmake/BuildMaxUtils.cmake
Normal file
@ -0,0 +1,9 @@
|
||||
# Build the maxutils library
|
||||
|
||||
ExternalProject_Add(maxutils
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/maxutils
|
||||
BINARY_DIR ${CMAKE_BINARY_DIR}/maxutils
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/maxutils/install)
|
||||
|
||||
set(MAXUTILS_INCLUDE_DIR ${CMAKE_BINARY_DIR}/maxutils/install/include CACHE INTERNAL "")
|
||||
set(MAXUTILS_LIBRARIES ${CMAKE_BINARY_DIR}/maxutils/install/lib/libmaxbase.a CACHE INTERNAL "")
|
@ -1 +1,4 @@
|
||||
project(maxutils)
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
set(CMAKE_CXX_FLAGS "-fPIC -std=c++11 -ggdb -Wall -Werror -Wno-unused-function")
|
||||
add_subdirectory(maxbase)
|
||||
|
@ -1,4 +1,3 @@
|
||||
include_directories(include)
|
||||
add_library(maxbase SHARED src/eventcount.cc src/stopwatch.cc)
|
||||
set_target_properties(maxbase PROPERTIES VERSION "1.0.0")
|
||||
install_module(maxbase core)
|
||||
add_subdirectory(include/maxbase)
|
||||
add_subdirectory(src)
|
||||
|
10
maxutils/maxbase/include/maxbase/CMakeLists.txt
Normal file
10
maxutils/maxbase/include/maxbase/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
set(TYPES "*.h" "*.hh")
|
||||
foreach(type ${TYPES})
|
||||
file(GLOB HEADERS ${type})
|
||||
foreach(var ${HEADERS})
|
||||
get_filename_component(header ${var} NAME)
|
||||
install(FILES ${header} DESTINATION include/maxbase)
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
|
3
maxutils/maxbase/src/CMakeLists.txt
Normal file
3
maxutils/maxbase/src/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
add_library(maxbase STATIC eventcount.cc stopwatch.cc)
|
||||
set_target_properties(maxbase PROPERTIES VERSION "1.0.0" LINK_FLAGS -Wl,-z,defs)
|
||||
install(TARGETS maxbase DESTINATION lib)
|
@ -66,6 +66,7 @@ endif()
|
||||
|
||||
target_link_libraries(maxscale-common
|
||||
${MARIADB_CONNECTOR_LIBRARIES}
|
||||
${MAXUTILS_LIBRARIES}
|
||||
${LZMA_LINK_FLAGS}
|
||||
${PCRE2_LIBRARIES}
|
||||
${JANSSON_LIBRARIES}
|
||||
|
@ -1,4 +1,4 @@
|
||||
add_library(throttlefilter SHARED throttlefilter.cc throttlesession.cc)
|
||||
target_link_libraries(throttlefilter maxbase maxscale-common mysqlcommon)
|
||||
target_link_libraries(throttlefilter maxscale-common mysqlcommon)
|
||||
set_target_properties(throttlefilter PROPERTIES VERSION "1.0.0")
|
||||
install_module(throttlefilter core)
|
||||
|
Loading…
x
Reference in New Issue
Block a user