1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-07 03:22:57 +03:00

libcpp and msan to external projects

This commit is contained in:
Leonid Fedorov
2025-07-15 19:36:52 +00:00
parent 1be8b08dc8
commit 8677c69cd2
3 changed files with 21 additions and 15 deletions

View File

@@ -15,6 +15,8 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
set(_toolset "intel-linux") set(_toolset "intel-linux")
endif() endif()
message("${_toolset} will be used for Boost compilation with compiler ${CMAKE_CXX_COMPILER_ID}")
set(INSTALL_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/.boost/boost-lib) set(INSTALL_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/.boost/boost-lib)
set(BOOST_ROOT "${INSTALL_LOCATION}") set(BOOST_ROOT "${INSTALL_LOCATION}")
set(Boost_INCLUDE_DIRS "${INSTALL_LOCATION}/include") set(Boost_INCLUDE_DIRS "${INSTALL_LOCATION}/include")
@@ -22,17 +24,18 @@ set(Boost_LIBRARY_DIRS "${INSTALL_LOCATION}/lib")
link_directories("${Boost_LIBRARY_DIRS}") link_directories("${Boost_LIBRARY_DIRS}")
set(_cxxargs "-fPIC -DBOOST_NO_AUTO_PTR -fvisibility=default") set(_cxxargs "-fPIC -DBOOST_NO_AUTO_PTR -fvisibility=default")
set(_linkflags "")
if(WITH_MSAN) if(WITH_MSAN)
set(_cxxargs "${_cxxargs} -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE") set(_cxxargs "${_cxxargs} -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE")
endif() set(_linkflags "-stdlib=libc++")
elseif(COLUMNSTORE_WITH_LIBCPP)
if(COLUMNSTORE_WITH_LIBCPP)
set(_cxxargs "${_cxxargs} -stdlib=libc++") set(_cxxargs "${_cxxargs} -stdlib=libc++")
set(_linkflags "-stdlib=libc++")
endif() endif()
set(_b2args cxxflags=${_cxxargs};cflags=-fPIC;threading=multi;${_extra};toolset=${_toolset} set(_b2args cxxflags=${_cxxargs};cflags=-fPIC;threading=multi;${_extra};toolset=${_toolset}
--without-mpi;--without-charconv;--without-python;--prefix=${INSTALL_LOCATION} --without-mpi;--without-charconv;--without-python;--prefix=${INSTALL_LOCATION} linkflags=${_linkflags}
) )
set(byproducts) set(byproducts)
@@ -57,8 +60,7 @@ ExternalProject_Add(
BUILD_COMMAND ./b2 -q ${_b2args} BUILD_COMMAND ./b2 -q ${_b2args}
BUILD_IN_SOURCE TRUE BUILD_IN_SOURCE TRUE
INSTALL_COMMAND ./b2 -q install ${_b2args} INSTALL_COMMAND ./b2 -q install ${_b2args}
#LOG_BUILD TRUE # LOG_BUILD TRUE LOG_INSTALL TRUE
#LOG_INSTALL TRUE
EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_ALL TRUE
${byproducts} ${byproducts}
) )

View File

@@ -35,12 +35,13 @@ set(THRIFT_LIBRARY ${THRIFT_LIBRARY_DIRS}/${CMAKE_STATIC_LIBRARY_PREFIX}thrift${
set(cxxflags -fPIC) set(cxxflags -fPIC)
set(linkflags "")
if(WITH_MSAN) if(WITH_MSAN)
set(cxxflags "'${cxxflags} -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -stdlib=libc++'") set(cxxflags "'${cxxflags} -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -stdlib=libc++'")
endif() set(linkflags "'${linkflags} -stdlib=libc++'")
elseif(COLUMNSTORE_WITH_LIBCPP)
if(COLUMNSTORE_WITH_LIBCPP AND NOT DEFINED WITH_MSAN)
set(cxxflags "'${cxxflags} -stdlib=libc++'") set(cxxflags "'${cxxflags} -stdlib=libc++'")
set(linkflags "'${linkflags} -stdlib=libc++'")
endif() endif()
ExternalProject_Add( ExternalProject_Add(
@@ -64,6 +65,9 @@ ExternalProject_Add(
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${cxxflags} -DCMAKE_CXX_FLAGS:STRING=${cxxflags}
-DBOOST_ROOT=${BOOST_ROOT} -DBOOST_ROOT=${BOOST_ROOT}
-DCMAKE_EXE_LINKER_FLAGS=${linkflags}
-DCMAKE_SHARED_LINKER_FLAGS=${linkflags}
-DCMAKE_MODULE_LINKER_FLAGS=${linkflags}
BUILD_BYPRODUCTS "${THRIFT_LIBRARY_DIRS}/${CMAKE_STATIC_LIBRARY_PREFIX}thrift${CMAKE_STATIC_LIBRARY_SUFFIX}" BUILD_BYPRODUCTS "${THRIFT_LIBRARY_DIRS}/${CMAKE_STATIC_LIBRARY_PREFIX}thrift${CMAKE_STATIC_LIBRARY_SUFFIX}"
EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_ALL TRUE
) )

View File

@@ -9,21 +9,21 @@ if(WITH_UNITTESTS)
cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0054 NEW)
set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/external) set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/external)
set(cxxflags "") set(cxxflags "")
set(linkflags "")
if(WITH_MSAN) if(WITH_MSAN)
set(cxxflags "'${cxxflags} -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -stdlib=libc++'") set(cxxflags "'${cxxflags} -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -stdlib=libc++'")
endif() set(linkflags "'${linkflags} -stdlib=libc++'")
elseif(COLUMNSTORE_WITH_LIBCPP)
if(COLUMNSTORE_WITH_LIBCPP AND NOT DEFINED WITH_MSAN)
set(cxxflags "'${cxxflags} -stdlib=libc++'") set(cxxflags "'${cxxflags} -stdlib=libc++'")
set(linkflags "'${linkflags} -stdlib=libc++'")
endif() endif()
ExternalProject_Add( ExternalProject_Add(
googletest googletest
GIT_REPOSITORY https://github.com/google/googletest GIT_REPOSITORY https://github.com/google/googletest
GIT_TAG release-1.12.0 GIT_TAG release-1.12.0
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} -DBUILD_SHARED_LIBS=ON CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} -DBUILD_SHARED_LIBS=ON
-DCMAKE_CXX_FLAGS:STRING=${cxxflags} -DCMAKE_CXX_FLAGS:STRING=${cxxflags} -DCMAKE_EXE_LINKER_FLAGS=${linkflags}
-DCMAKE_SHARED_LINKER_FLAGS=${linkflags} -DCMAKE_MODULE_LINKER_FLAGS=${linkflags}
) )
# this is a workaround for gtest's bug still not closed https://github.com/google/googletest/issues/3659 # this is a workaround for gtest's bug still not closed https://github.com/google/googletest/issues/3659