From a7a9ccf889b8de4ec40f00f6aaf1986a98ed5a76 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 15 Aug 2022 12:35:30 +0200 Subject: [PATCH] Serg dev (#2504) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * more build dependencies * fix for cmake < 3.11 It cannot do ADD_LIBRARY(... ALIAS ...) on IMPORTED targets * another fix for cmake 3.10.2 It doesn't know about CMAKE_CXX_STANDARD=20, let's add the correct flag manually * gcc 8 on aarch64 utils/common/simd_arm.h:241:16: error: need ‘typename’ before ‘simd::TypeToVecWrapperType::WrapperType’ because ‘simd::TypeToVecWrapperType’ is a dependent scope --- CMakeLists.txt | 12 +++++++++--- cmake/boost.cmake | 1 - storage-manager/CMakeLists.txt | 6 +----- tests/CMakeLists.txt | 1 - tools/rebuildEM/CMakeLists.txt | 2 +- utils/common/CMakeLists.txt | 2 +- utils/common/simd_arm.h | 2 +- utils/idbdatafile/CMakeLists.txt | 2 +- utils/regr/CMakeLists.txt | 1 + utils/threadpool/CMakeLists.txt | 4 ++-- 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e79a38349..0be025103 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,8 +28,14 @@ endif() INCLUDE(ExternalProject) INCLUDE(CheckCXXSourceCompiles) -SET(CMAKE_CXX_STANDARD 20) -SET(CMAKE_CXX_STANDARD_REQUIRED TRUE) +MY_CHECK_CXX_COMPILER_FLAG("-std=c++20") +IF (have_CXX__std_c__20) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20") +ELSE() + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++2a") +ENDIF() + +UNSET(CMAKE_CXX_STANDARD) SET(CMAKE_CXX_EXTENSIONS FALSE) SET(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) SET(CMAKE_POSITION_INDEPENDENT_CODE TRUE) @@ -219,7 +225,7 @@ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-deprecated-copy" DEBUG RELEASE RELWITHDEBIN MY_CHECK_AND_SET_COMPILER_FLAG("-Werror -Wall") SET (ENGINE_LDFLAGS "-Wl,--no-as-needed -Wl,--add-needed") SET (ENGINE_DT_LIB datatypes) -SET (ENGINE_COMMON_LIBS messageqcpp loggingcpp configcpp idbboot Boost::thread 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_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}) diff --git a/cmake/boost.cmake b/cmake/boost.cmake index ada42a73d..76d35191d 100644 --- a/cmake/boost.cmake +++ b/cmake/boost.cmake @@ -19,7 +19,6 @@ set(_b2args cxxflags=${_cxxargs};cflags=-fPIC;threading=multi; toolset=${_toolse 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}) diff --git a/storage-manager/CMakeLists.txt b/storage-manager/CMakeLists.txt index 695d02d03..c0570369b 100755 --- a/storage-manager/CMakeLists.txt +++ b/storage-manager/CMakeLists.txt @@ -62,12 +62,10 @@ set(CMAKE_INSTALL_RPATH $ORIGIN $ORIGIN/../lib) add_library(storagemanager SHARED ${storagemanager_SRCS}) add_dependencies(storagemanager marias3) target_compile_definitions(storagemanager PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) -target_link_libraries(storagemanager Boost::chrono Boost::system Boost::thread Boost::filesystem Boost::regex pthread ${S3API_DEPS}) -set_property(TARGET storagemanager PROPERTY CXX_STANDARD 20) +target_link_libraries(storagemanager boost_chrono boost_system boost_thread boost_filesystem boost_regex pthread ${S3API_DEPS}) add_executable(StorageManager src/main.cpp) target_link_libraries(StorageManager storagemanager) -set_property(TARGET StorageManager PROPERTY CXX_STANDARD 20) set(TMPDIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) @@ -75,12 +73,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_executable(unit_tests src/unit_tests.cpp) target_compile_definitions(unit_tests PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) target_link_libraries(unit_tests storagemanager) -set_property(TARGET unit_tests PROPERTY CXX_STANDARD 20) add_executable(testS3Connection src/testS3Connection.cpp) target_compile_definitions(testS3Connection PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) target_link_libraries(testS3Connection storagemanager) -set_property(TARGET testS3Connection PROPERTY CXX_STANDARD 11) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TMPDIR}) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b4215a8af..4f760200f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,6 +1,5 @@ include_directories( ${ENGINE_COMMON_INCLUDES} ${ENGINE_BLOCKCACHE_INCLUDE} ${ENGINE_PRIMPROC_INCLUDE} ) cmake_policy(SET CMP0054 NEW) -SET(CMAKE_CXX_STANDARD 20) if (WITH_UNITTESTS) set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/external) diff --git a/tools/rebuildEM/CMakeLists.txt b/tools/rebuildEM/CMakeLists.txt index 5d27c2f00..fc8053ff6 100644 --- a/tools/rebuildEM/CMakeLists.txt +++ b/tools/rebuildEM/CMakeLists.txt @@ -2,5 +2,5 @@ include_directories(${ENGINE_COMMON_INCLUDES}) set(rebuildEM_SRCS main.cpp rebuildEM.cpp) add_executable(mcsRebuildEM ${rebuildEM_SRCS}) -target_link_libraries(mcsRebuildEM ${ENGINE_LDFLAGS} ${ENGINE_WRITE_LIBS} ${MARIADB_CLIENT_LIBS} Boost::system Boost::filesystem) +target_link_libraries(mcsRebuildEM ${ENGINE_LDFLAGS} ${ENGINE_WRITE_LIBS} ${MARIADB_CLIENT_LIBS} boost_system boost_filesystem) install(TARGETS mcsRebuildEM DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine) diff --git a/utils/common/CMakeLists.txt b/utils/common/CMakeLists.txt index 59e072ec1..17d78d476 100644 --- a/utils/common/CMakeLists.txt +++ b/utils/common/CMakeLists.txt @@ -16,7 +16,7 @@ set(common_LIB_SRCS add_library(common SHARED ${common_LIB_SRCS}) -target_link_libraries(common Boost::filesystem) +target_link_libraries(common boost_filesystem) add_dependencies(common loggingcpp) diff --git a/utils/common/simd_arm.h b/utils/common/simd_arm.h index a32618aa4..a4387561b 100644 --- a/utils/common/simd_arm.h +++ b/utils/common/simd_arm.h @@ -238,7 +238,7 @@ struct IntegralToSIMD struct IntegralToSIMD::type> { - using type = TypeToVecWrapperType::WrapperType; + using type = typename TypeToVecWrapperType::WrapperType; }; template diff --git a/utils/idbdatafile/CMakeLists.txt b/utils/idbdatafile/CMakeLists.txt index a4b62074f..1793f23c0 100644 --- a/utils/idbdatafile/CMakeLists.txt +++ b/utils/idbdatafile/CMakeLists.txt @@ -15,7 +15,7 @@ set(idbdatafile_LIB_SRCS add_library(idbdatafile SHARED ${idbdatafile_LIB_SRCS}) -target_link_libraries(idbdatafile ${NETSNMP_LIBRARIES} ${ENGINE_OAM_LIBS} Boost::filesystem Boost::system) +target_link_libraries(idbdatafile ${NETSNMP_LIBRARIES} ${ENGINE_OAM_LIBS} boost_filesystem boost_system) target_compile_definitions(idbdatafile PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) diff --git a/utils/regr/CMakeLists.txt b/utils/regr/CMakeLists.txt index 68756286d..a4ed6cd0e 100755 --- a/utils/regr/CMakeLists.txt +++ b/utils/regr/CMakeLists.txt @@ -19,6 +19,7 @@ install(TARGETS regr DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine) set(regr_mysql_LIB_SRCS regrmysql.cpp modamysql.cpp) add_library(regr_mysql SHARED ${regr_mysql_LIB_SRCS}) +add_dependencies(regr_mysql external_boost) install(TARGETS regr_mysql DESTINATION ${MARIADB_PLUGINDIR} COMPONENT columnstore-engine) diff --git a/utils/threadpool/CMakeLists.txt b/utils/threadpool/CMakeLists.txt index dd96304de..7e4f92eb7 100644 --- a/utils/threadpool/CMakeLists.txt +++ b/utils/threadpool/CMakeLists.txt @@ -7,5 +7,5 @@ include_directories( ${ENGINE_COMMON_INCLUDES} ) set(threadpool_LIB_SRCS weightedthreadpool.cpp threadpool.cpp prioritythreadpool.cpp fair_threadpool.cpp) add_library(threadpool SHARED ${threadpool_LIB_SRCS}) add_dependencies(threadpool loggingcpp) -target_link_libraries(threadpool Boost::chrono) -install(TARGETS threadpool DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine) \ No newline at end of file +target_link_libraries(threadpool boost_chrono) +install(TARGETS threadpool DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine)