From 8fcce90d511e8546432fb75f304522251473daf1 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 31 May 2020 10:21:47 +0200 Subject: [PATCH 1/3] cmake: don't FATAL_ERROR if prerequisites are not found skip building the plugin instead --- CMakeLists.txt | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a11483145..794dd8771 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,8 +123,17 @@ ENDIF () SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${CMAKE_CURRENT_BINARY_DIR}/external) LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) -FIND_PACKAGE(Boost 1.53.0 REQUIRED COMPONENTS system filesystem thread regex date_time chrono atomic) -FIND_PACKAGE(BISON REQUIRED) +FIND_PACKAGE(Boost 1.53.0 COMPONENTS system filesystem thread regex date_time chrono atomic) +IF (NOT Boost_FOUND) + message(WARNING "Required Boost libraries not found!") + return() +ENDIF() + +FIND_PACKAGE(BISON) +IF (NOT BISON_FOUND) + message(WARNING "bison not found!") + return() +ENDIF() check_cxx_source_compiles("#include \n void main(){}" HAS_STD_FILESYSTEM) check_cxx_source_compiles("#include \n void main(){}" HAS_STD_EXPERIMENTAL_FILESYSTEM) @@ -149,24 +158,28 @@ FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the flex executable") if(NOT LEX_EXECUTABLE) FIND_PROGRAM(LEX_EXECUTABLE lex DOC "path to the lex executable") if(NOT LEX_EXECUTABLE) - message(FATAL_ERROR "flex/lex not found!") + message(WARNING "flex/lex not found!") + return() endif() endif() FIND_PACKAGE(LibXml2) if (NOT LIBXML2_FOUND) - MESSAGE(FATAL_ERROR "Could not find a usable libxml2 development environment!") + MESSAGE(WARNING "Could not find a usable libxml2 development environment!") + return() endif() INCLUDE (FindSnappy) if (NOT SNAPPY_FOUND) - MESSAGE(FATAL_ERROR "Snappy not found please install snappy-devel for CentOS/RedHat or libsnappy-dev for Ubuntu/Debian") + MESSAGE(WARNING "Snappy not found please install snappy-devel for CentOS/RedHat or libsnappy-dev for Ubuntu/Debian") + return() endif() FIND_PROGRAM(AWK_EXECUTABLE awk DOC "path to the awk executable") if(NOT AWK_EXECUTABLE) - message(FATAL_ERROR "awk not found!") + message(WARNING "awk not found!") + return() endif() IF (NOT INSTALL_LAYOUT) From 2384328d4c87bbdb1952d2d379c5f5dc3ccf34ea Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 31 May 2020 10:23:47 +0200 Subject: [PATCH 2/3] cmake: output cleanup 1. reduce the number of cmake warnings 2. remove unused OLD policies 3. only warn about missing prerequisites once 4. start cmake output from columnstore version --- CMakeLists.txt | 75 +++++++++++---------------------- cmake/FindSnappy.cmake | 4 ++ cmake/columnstore_version.cmake | 2 +- utils/libmarias3/CMakeLists.txt | 16 ------- 4 files changed, 30 insertions(+), 67 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 794dd8771..6f1976254 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,41 +1,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) -# Avoid warnings in higher versions -if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.6) - CMAKE_POLICY(VERSION 2.8) -endif() - -# explicitly set the policy to OLD -# (cannot use NEW, not everyone is on cmake-2.8.12 yet) -IF(POLICY CMP0022) - CMAKE_POLICY(SET CMP0022 OLD) -ENDIF() - -# We use the LOCATION target property (CMP0026) -# and get_target_property() for non-existent targets (CMP0045) -# and INSTALL_NAME_DIR (CMP0042) -IF(CMAKE_VERSION VERSION_EQUAL "3.0.0" OR - CMAKE_VERSION VERSION_GREATER "3.0.0") - CMAKE_POLICY(SET CMP0026 OLD) - CMAKE_POLICY(SET CMP0045 OLD) - CMAKE_POLICY(SET CMP0042 OLD) -ENDIF() - -MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}") - -OPTION(USE_CCACHE "reduce compile time with ccache." FALSE) -if(NOT USE_CCACHE) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "") - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "") -else() - find_program(CCACHE_FOUND ccache) - if(CCACHE_FOUND) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) - endif(CCACHE_FOUND) -endif() - IF(NOT INSTALL_LAYOUT) IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RELWITHDEBINFO CACHE STRING @@ -123,25 +88,37 @@ ENDIF () SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${CMAKE_CURRENT_BINARY_DIR}/external) LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) +SET (ENGINE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + +INCLUDE(columnstore_version) + +OPTION(USE_CCACHE "reduce compile time with ccache." FALSE) +if(NOT USE_CCACHE) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "") + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "") +else() + find_program(CCACHE_FOUND ccache) + if(CCACHE_FOUND) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) + endif(CCACHE_FOUND) +endif() + FIND_PACKAGE(Boost 1.53.0 COMPONENTS system filesystem thread regex date_time chrono atomic) IF (NOT Boost_FOUND) - message(WARNING "Required Boost libraries not found!") + MESSAGE_ONCE(CS_NO_BOOST "Required Boost libraries not found!") return() ENDIF() FIND_PACKAGE(BISON) IF (NOT BISON_FOUND) - message(WARNING "bison not found!") + MESSAGE_ONCE(CS_NO_BISON "bison not found!") return() ENDIF() check_cxx_source_compiles("#include \n void main(){}" HAS_STD_FILESYSTEM) check_cxx_source_compiles("#include \n void main(){}" HAS_STD_EXPERIMENTAL_FILESYSTEM) -SET (ENGINE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - -INCLUDE(columnstore_version) - SET (PACKAGE columnstore) SET (PACKAGE_NAME columnstore) SET (PACKAGE_TARNAME columnstore) @@ -152,13 +129,11 @@ SET (PACKAGE_STRING columnstore-${PACKAGE_VERSION}) INCLUDE (configureEngine) - - FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the flex executable") if(NOT LEX_EXECUTABLE) FIND_PROGRAM(LEX_EXECUTABLE lex DOC "path to the lex executable") if(NOT LEX_EXECUTABLE) - message(WARNING "flex/lex not found!") + MESSAGE_ONCE(CS_NO_LEX "flex/lex not found!") return() endif() endif() @@ -166,19 +141,19 @@ endif() FIND_PACKAGE(LibXml2) if (NOT LIBXML2_FOUND) - MESSAGE(WARNING "Could not find a usable libxml2 development environment!") + MESSAGE_ONCE(CS_NO_LIBXML "Could not find a usable libxml2 development environment!") return() endif() -INCLUDE (FindSnappy) +find_package(Snappy) if (NOT SNAPPY_FOUND) - MESSAGE(WARNING "Snappy not found please install snappy-devel for CentOS/RedHat or libsnappy-dev for Ubuntu/Debian") + MESSAGE_ONCE(CS_NO_SNAPPY "Snappy not found please install snappy-devel for CentOS/RedHat or libsnappy-dev for Ubuntu/Debian") return() endif() FIND_PROGRAM(AWK_EXECUTABLE awk DOC "path to the awk executable") if(NOT AWK_EXECUTABLE) - message(WARNING "awk not found!") + MESSAGE_ONCE(CS_NO_AWK "awk not found!") return() endif() @@ -253,8 +228,8 @@ IF (NOT SERVER_BUILD_DIR) SET (SERVER_BUILD_DIR ${SERVER_SOURCE_ROOT_DIR}) ENDIF() -MESSAGE("SERVER_BUILD_INCLUDE_DIR = ${SERVER_BUILD_INCLUDE_DIR}") -MESSAGE("SERVER_SOURCE_ROOT_DIR = ${SERVER_SOURCE_ROOT_DIR}") +MESSAGE_ONCE(SERVER_BUILD_INCLUDE_DIR "SERVER_BUILD_INCLUDE_DIR = ${SERVER_BUILD_INCLUDE_DIR}") +MESSAGE_ONCE(SERVER_SOURCE_ROOT_DIR "SERVER_SOURCE_ROOT_DIR = ${SERVER_SOURCE_ROOT_DIR}") IF (INSTALL_LAYOUT) SET (MARIADB_CLIENT_LIBS libmariadb) diff --git a/cmake/FindSnappy.cmake b/cmake/FindSnappy.cmake index 6aaf92229..7f8f551ec 100644 --- a/cmake/FindSnappy.cmake +++ b/cmake/FindSnappy.cmake @@ -17,6 +17,10 @@ # SNAPPY_LIBRARIES The snappy library/libraries # SNAPPY_INCLUDE_DIR The location of snappy headers +if(DEFINED SNAPPY_ROOT_DIR) + set(Snappy_FIND_QUIET) +endif() + find_path(SNAPPY_ROOT_DIR NAMES include/snappy.h ) diff --git a/cmake/columnstore_version.cmake b/cmake/columnstore_version.cmake index 5acdcc8a6..fe373a82d 100644 --- a/cmake/columnstore_version.cmake +++ b/cmake/columnstore_version.cmake @@ -34,7 +34,7 @@ IF(NOT "${CS_MAJOR_VERSION}" MATCHES "[0-9]+" OR ENDIF() SET(VERSION "${CS_MAJOR_VERSION}.${CS_MINOR_VERSION}.${CS_PATCH_VERSION}${CS_EXTRA_VERSION}") - MESSAGE(STATUS "MariaDB-Columnstore ${VERSION}") + MESSAGE("== MariaDB-Columnstore ${VERSION}") IF (NOT INSTALL_LAYOUT) SET(CPACK_PACKAGE_VERSION_MAJOR ${CS_MAJOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MINOR ${CS_MINOR_VERSION}) diff --git a/utils/libmarias3/CMakeLists.txt b/utils/libmarias3/CMakeLists.txt index 1be7f11e6..5de4533a5 100644 --- a/utils/libmarias3/CMakeLists.txt +++ b/utils/libmarias3/CMakeLists.txt @@ -1,21 +1,5 @@ set(S3API_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libmarias3 CACHE INTERNAL "S3API_DIR") -find_package(Git QUIET) - -if(GIT_FOUND AND EXISTS ${ENGINE_SRC_DIR}/.git) -# Update submodules as needed - option(GIT_SUBMODULE "Check submodules during build" ON) - if(GIT_SUBMODULE) - message(STATUS "Submodule update") - execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive - WORKING_DIRECTORY ${ENGINE_SRC_DIR} - RESULT_VARIABLE GIT_SUBMOD_RESULT) - if(NOT GIT_SUBMOD_RESULT EQUAL "0") - message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules") - endif() - endif() -endif() - SET(S3_SOURCES ${S3API_DIR}/src/debug.c ${S3API_DIR}/src/error.c ${S3API_DIR}/src/marias3.c From 87efbea4b92eb8d731107ccbc6717c9ed6cdefa8 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 31 May 2020 11:19:32 +0200 Subject: [PATCH 3/3] .gitignore --- .gitignore | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.gitignore b/.gitignore index 7328f65e5..02fe345cb 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ CMakeCache.txt CMakeFiles CMakeScripts Makefile +VERSION.dep cmake_install.cmake install_manifest.txt CTestTestfile.cmake @@ -133,8 +134,18 @@ oam/install_scripts/columnstore.service oam/install_scripts/columnstoreSyslogSetup.sh oam/install_scripts/columnstore_module_installer.sh oam/install_scripts/disable-rep-columnstore.sh +oam/install_scripts/mariadb-columnstore.service oam/install_scripts/mariadb-command-line.sh oam/install_scripts/master-rep-columnstore.sh +oam/install_scripts/mcs-controllernode.service +oam/install_scripts/mcs-ddlproc.service +oam/install_scripts/mcs-dmlproc.service +oam/install_scripts/mcs-exemgr.service +oam/install_scripts/mcs-loadbrm.service +oam/install_scripts/mcs-primproc.service +oam/install_scripts/mcs-stop-controllernode.sh +oam/install_scripts/mcs-workernode.service +oam/install_scripts/mcs-writeengineserver.service oam/install_scripts/mcs_module_installer.sh oam/install_scripts/slave-rep-columnstore.sh oam/install_scripts/startupTests.sh @@ -147,4 +158,5 @@ bin external gitversionEngine mcsconfig.h +storage-manager/testS3Connection storage-manager/unit_tests