You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
Serg dev (#2502)
* build boost during build phase, not during configure
* add dependency for generated header files errorids.h messageids.h
see 7e868bc588
* set explicit dependencies on external_boost for #include's
* clang-14 compatibility fix
This commit is contained in:
@ -214,11 +214,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|||||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-register")
|
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-register")
|
||||||
endif()
|
endif()
|
||||||
|
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-deprecated-copy" DEBUG RELEASE RELWITHDEBINFO MINSIZEREL)
|
||||||
|
|
||||||
MY_CHECK_AND_SET_COMPILER_FLAG("-Werror -Wall")
|
MY_CHECK_AND_SET_COMPILER_FLAG("-Werror -Wall")
|
||||||
SET (ENGINE_LDFLAGS "-Wl,--no-as-needed -Wl,--add-needed")
|
SET (ENGINE_LDFLAGS "-Wl,--no-as-needed -Wl,--add-needed")
|
||||||
SET (ENGINE_DT_LIB datatypes)
|
SET (ENGINE_DT_LIB datatypes)
|
||||||
SET (ENGINE_COMMON_LIBS messageqcpp loggingcpp configcpp idbboot ${Boost_LIBRARIES} xml2 pthread rt libmysql_client ${ENGINE_DT_LIB})
|
SET (ENGINE_COMMON_LIBS messageqcpp loggingcpp configcpp idbboot Boost::thread xml2 pthread rt libmysql_client ${ENGINE_DT_LIB})
|
||||||
SET (ENGINE_OAM_LIBS oamcpp)
|
SET (ENGINE_OAM_LIBS oamcpp)
|
||||||
SET (ENGINE_BRM_LIBS brm idbdatafile cacheutils rwlock ${ENGINE_OAM_LIBS} ${ENGINE_COMMON_LIBS})
|
SET (ENGINE_BRM_LIBS brm idbdatafile cacheutils rwlock ${ENGINE_OAM_LIBS} ${ENGINE_COMMON_LIBS})
|
||||||
SET (ENGINE_EXEC_LIBS joblist execplan windowfunction joiner rowgroup funcexp udfsdk regr dataconvert common compress querystats querytele thrift threadpool ${ENGINE_BRM_LIBS})
|
SET (ENGINE_EXEC_LIBS joblist execplan windowfunction joiner rowgroup funcexp udfsdk regr dataconvert common compress querystats querytele thrift threadpool ${ENGINE_BRM_LIBS})
|
||||||
@ -317,7 +318,7 @@ SET (ENGINE_UTILS_UDFSDK_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/udfsdk"
|
|||||||
|
|
||||||
SET (ENGINE_DEFAULT_INCLUDES ${CMAKE_CURRENT_BINARY_DIR} "." "../" "../../" ${SERVER_BUILD_INCLUDE_DIR})
|
SET (ENGINE_DEFAULT_INCLUDES ${CMAKE_CURRENT_BINARY_DIR} "." "../" "../../" ${SERVER_BUILD_INCLUDE_DIR})
|
||||||
|
|
||||||
SET (ENGINE_COMMON_INCLUDES ${ENGINE_DEFAULT_INCLUDES} ${Boost_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} ${ENGINE_UTILS_MESSAGEQCPP_INCLUDE} ${ENGINE_WE_SHARED_INCLUDE} ${ENGINE_UTILS_IDBDATAFILE_INCLUDE} ${ENGINE_UTILS_LOGGINGCPP_INCLUDE} ${ENGINE_UTILS_CONFIGCPP_INCLUDE} ${ENGINE_UTILS_COMPRESS_INCLUDE} ${ENGINE_VERSIONING_BRM_INCLUDE} ${ENGINE_UTILS_ROWGROUP_INCLUDE} ${ENGINE_UTILS_COMMON_INCLUDE} ${ENGINE_UTILS_DATACONVERT_INCLUDE} ${ENGINE_UTILS_RWLOCK_INCLUDE} ${ENGINE_UTILS_FUNCEXP_INCLUDE} ${ENGINE_OAMAPPS_ALARMMANAGER_INCLUDE} ${ENGINE_UTILS_INCLUDE} ${ENGINE_OAM_OAMCPP_INCLUDE} ${ENGINE_DBCON_DDLPKGPROC_INCLUDE} ${ENGINE_DBCON_DDLPKG_INCLUDE} ${ENGINE_DBCON_EXECPLAN_INCLUDE} ${ENGINE_UTILS_STARTUP_INCLUDE} ${ENGINE_DBCON_JOBLIST_INCLUDE} ${ENGINE_WE_WRAPPER_INCLUDE} ${ENGINE_WE_SERVER_INCLUDE} ${ENGINE_DBCON_DMLPKG_INCLUDE} ${ENGINE_WE_CLIENT_INCLUDE} ${ENGINE_DBCON_DMLPKGPROC_INCLUDE} ${ENGINE_UTILS_CACHEUTILS_INCLUDE} ${ENGINE_UTILS_MYSQLCL_INCLUDE} ${ENGINE_UTILS_QUERYTELE_INCLUDE} ${ENGINE_UTILS_THRIFT_INCLUDE} ${ENGINE_UTILS_JOINER_INCLUDE} ${ENGINE_UTILS_THREADPOOL_INCLUDE} ${ENGINE_UTILS_BATCHLDR_INCLUDE} ${ENGINE_UTILS_DDLCLEANUP_INCLUDE} ${ENGINE_UTILS_QUERYSTATS_INCLUDE} ${ENGINE_WE_CONFIGCPP_INCLUDE} ${ENGINE_SERVER_SQL_INCLUDE} ${ENGINE_SERVER_INCLUDE_INCLUDE} ${ENGINE_SERVER_PCRE_INCLUDE} ${ENGINE_SERVER_WSREP_API_INCLUDE} ${ENGINE_SERVER_WSREP_INCLUDE} ${ENGINE_UTILS_UDFSDK_INCLUDE} ${ENGINE_UTILS_LIBMYSQL_CL_INCLUDE} ${ENGINE_DATATYPES_INCLUDE})
|
SET (ENGINE_COMMON_INCLUDES ${ENGINE_DEFAULT_INCLUDES} ${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${ENGINE_UTILS_MESSAGEQCPP_INCLUDE} ${ENGINE_WE_SHARED_INCLUDE} ${ENGINE_UTILS_IDBDATAFILE_INCLUDE} ${ENGINE_UTILS_LOGGINGCPP_INCLUDE} ${ENGINE_UTILS_CONFIGCPP_INCLUDE} ${ENGINE_UTILS_COMPRESS_INCLUDE} ${ENGINE_VERSIONING_BRM_INCLUDE} ${ENGINE_UTILS_ROWGROUP_INCLUDE} ${ENGINE_UTILS_COMMON_INCLUDE} ${ENGINE_UTILS_DATACONVERT_INCLUDE} ${ENGINE_UTILS_RWLOCK_INCLUDE} ${ENGINE_UTILS_FUNCEXP_INCLUDE} ${ENGINE_OAMAPPS_ALARMMANAGER_INCLUDE} ${ENGINE_UTILS_INCLUDE} ${ENGINE_OAM_OAMCPP_INCLUDE} ${ENGINE_DBCON_DDLPKGPROC_INCLUDE} ${ENGINE_DBCON_DDLPKG_INCLUDE} ${ENGINE_DBCON_EXECPLAN_INCLUDE} ${ENGINE_UTILS_STARTUP_INCLUDE} ${ENGINE_DBCON_JOBLIST_INCLUDE} ${ENGINE_WE_WRAPPER_INCLUDE} ${ENGINE_WE_SERVER_INCLUDE} ${ENGINE_DBCON_DMLPKG_INCLUDE} ${ENGINE_WE_CLIENT_INCLUDE} ${ENGINE_DBCON_DMLPKGPROC_INCLUDE} ${ENGINE_UTILS_CACHEUTILS_INCLUDE} ${ENGINE_UTILS_MYSQLCL_INCLUDE} ${ENGINE_UTILS_QUERYTELE_INCLUDE} ${ENGINE_UTILS_THRIFT_INCLUDE} ${ENGINE_UTILS_JOINER_INCLUDE} ${ENGINE_UTILS_THREADPOOL_INCLUDE} ${ENGINE_UTILS_BATCHLDR_INCLUDE} ${ENGINE_UTILS_DDLCLEANUP_INCLUDE} ${ENGINE_UTILS_QUERYSTATS_INCLUDE} ${ENGINE_WE_CONFIGCPP_INCLUDE} ${ENGINE_SERVER_SQL_INCLUDE} ${ENGINE_SERVER_INCLUDE_INCLUDE} ${ENGINE_SERVER_PCRE_INCLUDE} ${ENGINE_SERVER_WSREP_API_INCLUDE} ${ENGINE_SERVER_WSREP_INCLUDE} ${ENGINE_UTILS_UDFSDK_INCLUDE} ${ENGINE_UTILS_LIBMYSQL_CL_INCLUDE} ${ENGINE_DATATYPES_INCLUDE})
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(dbcon/mysql)
|
ADD_SUBDIRECTORY(dbcon/mysql)
|
||||||
IF(NOT TARGET columnstore)
|
IF(NOT TARGET columnstore)
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION @CMAKE_VERSION@)
|
|
||||||
project (BoostExternal)
|
|
||||||
include(ExternalProject)
|
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
||||||
set(_toolset "gcc")
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
|
|
||||||
set(_toolset "clang")
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
set(_toolset "intel-linux")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(INSTALL_LOCATION ${CMAKE_BINARY_DIR}/boost-lib)
|
|
||||||
|
|
||||||
set(_cxxargs "-fPIC -DBOOST_NO_AUTO_PTR -fvisibility=default")
|
|
||||||
set(_b2args cxxflags=${_cxxargs};cflags=-fPIC;threading=multi; toolset=${_toolset} --without-python;--prefix=${INSTALL_LOCATION})
|
|
||||||
|
|
||||||
ExternalProject_Add(external_boost
|
|
||||||
PREFIX boost
|
|
||||||
URL https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2
|
|
||||||
URL_HASH SHA256=475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39
|
|
||||||
CONFIGURE_COMMAND ./bootstrap.sh
|
|
||||||
UPDATE_COMMAND ""
|
|
||||||
BUILD_COMMAND ./b2 -q ${_b2args}
|
|
||||||
LOG_BUILD TRUE
|
|
||||||
BUILD_IN_SOURCE TRUE
|
|
||||||
INSTALL_COMMAND ./b2 -q install ${_b2args}
|
|
||||||
LOG_INSTALL TRUE
|
|
||||||
)
|
|
||||||
|
|
||||||
unset(_b2args)
|
|
||||||
unset(_toolset)
|
|
@ -1,44 +1,41 @@
|
|||||||
|
include(ExternalProject)
|
||||||
|
|
||||||
# boost super build (see superbuild.md)
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
|
set(_toolset "gcc")
|
||||||
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
|
||||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/boost.CMakeLists.txt.in ${CMAKE_CURRENT_BINARY_DIR}/.boost/CMakeLists.txt @ONLY)
|
set(_toolset "clang")
|
||||||
SET(BOOST_ROOT ${CMAKE_CURRENT_BINARY_DIR}/.boost/boost-lib)
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
||||||
|
set(_toolset "intel-linux")
|
||||||
message ("-- External: Configuring Boost")
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${CMAKE_COMMAND} .
|
|
||||||
-G "${CMAKE_GENERATOR}"
|
|
||||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
|
||||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.boost
|
|
||||||
RESULT_VARIABLE _exec_ret
|
|
||||||
)
|
|
||||||
|
|
||||||
if(${_exec_ret})
|
|
||||||
message(FATAL_ERROR "Error ${_exec_ret} configuring boost dependency.")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message ("-- External: Building Boost")
|
set(INSTALL_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/.boost/boost-lib)
|
||||||
execute_process(
|
SET(Boost_INCLUDE_DIRS "${INSTALL_LOCATION}/include")
|
||||||
COMMAND ${CMAKE_COMMAND} --build .
|
SET(Boost_LIBRARY_DIRS "${INSTALL_LOCATION}/lib")
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.boost
|
LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}")
|
||||||
RESULT_VARIABLE _exec_ret
|
|
||||||
|
set(_cxxargs "-fPIC -DBOOST_NO_AUTO_PTR -fvisibility=default")
|
||||||
|
set(_b2args cxxflags=${_cxxargs};cflags=-fPIC;threading=multi; toolset=${_toolset} --without-python;--prefix=${INSTALL_LOCATION})
|
||||||
|
|
||||||
|
FOREACH(name chrono filesystem program_options regex system thread)
|
||||||
|
SET(lib boost_${name})
|
||||||
|
ADD_LIBRARY(${lib} STATIC IMPORTED GLOBAL)
|
||||||
|
ADD_LIBRARY(Boost::${name} ALIAS ${lib})
|
||||||
|
ADD_DEPENDENCIES(${lib} external_boost)
|
||||||
|
SET (loc "${Boost_LIBRARY_DIRS}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||||
|
SET(byproducts ${byproducts} BUILD_BYPRODUCTS ${loc})
|
||||||
|
SET_TARGET_PROPERTIES(${lib} PROPERTIES IMPORTED_LOCATION ${loc})
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
ExternalProject_Add(external_boost
|
||||||
|
PREFIX .boost
|
||||||
|
URL https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2
|
||||||
|
URL_HASH SHA256=475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39
|
||||||
|
CONFIGURE_COMMAND ./bootstrap.sh
|
||||||
|
UPDATE_COMMAND ""
|
||||||
|
BUILD_COMMAND ./b2 -q ${_b2args}
|
||||||
|
BUILD_IN_SOURCE TRUE
|
||||||
|
INSTALL_COMMAND ./b2 -q install ${_b2args}
|
||||||
|
LOG_BUILD TRUE
|
||||||
|
LOG_INSTALL TRUE
|
||||||
|
${byproducts}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${_exec_ret})
|
|
||||||
message(FATAL_ERROR "Error ${_exec_ret} building boost dependency: ${_exec_ret}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
unset(_exec_ret)
|
|
||||||
|
|
||||||
|
|
||||||
message("Boost installed localy at ${BOOST_ROOT}")
|
|
||||||
|
|
||||||
|
|
||||||
SET(Boost_USE_STATIC_LIBS ON)
|
|
||||||
FIND_PACKAGE(Boost 1.78.0 COMPONENTS system filesystem thread regex date_time chrono atomic)
|
|
||||||
IF (NOT Boost_FOUND)
|
|
||||||
MESSAGE_ONCE(CS_NO_BOOST "Required Boost libraries not found!")
|
|
||||||
return()
|
|
||||||
ENDIF()
|
|
||||||
|
@ -5,6 +5,7 @@ set(datatypes_LIB_SRCS
|
|||||||
mcs_decimal.cpp)
|
mcs_decimal.cpp)
|
||||||
|
|
||||||
add_library(datatypes SHARED ${datatypes_LIB_SRCS})
|
add_library(datatypes SHARED ${datatypes_LIB_SRCS})
|
||||||
|
add_dependencies(datatypes external_boost)
|
||||||
|
|
||||||
install(TARGETS datatypes DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
install(TARGETS datatypes DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ set(compress_LIB_SRCS
|
|||||||
add_definitions(-DNDEBUG)
|
add_definitions(-DNDEBUG)
|
||||||
|
|
||||||
add_library(compress SHARED ${compress_LIB_SRCS})
|
add_library(compress SHARED ${compress_LIB_SRCS})
|
||||||
|
add_dependencies(compress loggingcpp external_boost)
|
||||||
|
|
||||||
target_link_libraries(compress ${SNAPPY_LIBRARIES})
|
target_link_libraries(compress ${SNAPPY_LIBRARIES})
|
||||||
IF(HAVE_LZ4)
|
IF(HAVE_LZ4)
|
||||||
|
@ -29,6 +29,7 @@ add_library(loggingcpp SHARED
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}/messageids.h
|
${CMAKE_CURRENT_BINARY_DIR}/messageids.h
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/errorids.h
|
${CMAKE_CURRENT_BINARY_DIR}/errorids.h
|
||||||
)
|
)
|
||||||
|
add_dependencies(loggingcpp external_boost)
|
||||||
|
|
||||||
install(TARGETS loggingcpp DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
install(TARGETS loggingcpp DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ set(querytele_LIB_SRCS
|
|||||||
queryteleprotoimpl.cpp)
|
queryteleprotoimpl.cpp)
|
||||||
|
|
||||||
add_library(querytele SHARED ${querytele_LIB_SRCS})
|
add_library(querytele SHARED ${querytele_LIB_SRCS})
|
||||||
|
add_dependencies(querytele external_boost)
|
||||||
|
|
||||||
install(TARGETS querytele DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
install(TARGETS querytele DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ include_directories( ${ENGINE_COMMON_INCLUDES} )
|
|||||||
set(rwlock_LIB_SRCS rwlock.cpp rwlock_local.cpp)
|
set(rwlock_LIB_SRCS rwlock.cpp rwlock_local.cpp)
|
||||||
|
|
||||||
add_library(rwlock SHARED ${rwlock_LIB_SRCS})
|
add_library(rwlock SHARED ${rwlock_LIB_SRCS})
|
||||||
|
add_dependencies(rwlock external_boost)
|
||||||
|
|
||||||
install(TARGETS rwlock DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
install(TARGETS rwlock DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ include_directories( ${ENGINE_COMMON_INCLUDES} )
|
|||||||
ADD_DEFINITIONS(-fPIC -DPIC)
|
ADD_DEFINITIONS(-fPIC -DPIC)
|
||||||
|
|
||||||
add_library(idbboot STATIC installdir.cpp)
|
add_library(idbboot STATIC installdir.cpp)
|
||||||
|
add_dependencies(idbboot external_boost)
|
||||||
|
|
||||||
INSTALL(TARGETS idbboot DESTINATION ${ENGINE_LIBDIR})
|
INSTALL(TARGETS idbboot DESTINATION ${ENGINE_LIBDIR})
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ set(thrift_LIB_SRCS
|
|||||||
add_definitions(-DTHRIFT_SQUELCH_CONSOLE_OUTPUT)
|
add_definitions(-DTHRIFT_SQUELCH_CONSOLE_OUTPUT)
|
||||||
|
|
||||||
add_library(thrift SHARED ${thrift_LIB_SRCS})
|
add_library(thrift SHARED ${thrift_LIB_SRCS})
|
||||||
|
add_dependencies(thrift external_boost)
|
||||||
|
|
||||||
install(TARGETS thrift DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
install(TARGETS thrift DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user