1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

Merge pull request #1243 from vuvova/cmake-fixes

cmake fixes
This commit is contained in:
Patrick LeBlanc
2020-06-01 10:16:33 -05:00
committed by GitHub
5 changed files with 55 additions and 67 deletions

12
.gitignore vendored
View File

@ -21,6 +21,7 @@ CMakeCache.txt
CMakeFiles CMakeFiles
CMakeScripts CMakeScripts
Makefile Makefile
VERSION.dep
cmake_install.cmake cmake_install.cmake
install_manifest.txt install_manifest.txt
CTestTestfile.cmake CTestTestfile.cmake
@ -133,8 +134,18 @@ oam/install_scripts/columnstore.service
oam/install_scripts/columnstoreSyslogSetup.sh oam/install_scripts/columnstoreSyslogSetup.sh
oam/install_scripts/columnstore_module_installer.sh oam/install_scripts/columnstore_module_installer.sh
oam/install_scripts/disable-rep-columnstore.sh oam/install_scripts/disable-rep-columnstore.sh
oam/install_scripts/mariadb-columnstore.service
oam/install_scripts/mariadb-command-line.sh oam/install_scripts/mariadb-command-line.sh
oam/install_scripts/master-rep-columnstore.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/mcs_module_installer.sh
oam/install_scripts/slave-rep-columnstore.sh oam/install_scripts/slave-rep-columnstore.sh
oam/install_scripts/startupTests.sh oam/install_scripts/startupTests.sh
@ -147,4 +158,5 @@ bin
external external
gitversionEngine gitversionEngine
mcsconfig.h mcsconfig.h
storage-manager/testS3Connection
storage-manager/unit_tests storage-manager/unit_tests

View File

@ -1,41 +1,6 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) 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 INSTALL_LAYOUT)
IF(NOT CMAKE_BUILD_TYPE) IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE RELWITHDEBINFO CACHE STRING SET(CMAKE_BUILD_TYPE RELWITHDEBINFO CACHE STRING
@ -123,16 +88,37 @@ ENDIF ()
SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${CMAKE_CURRENT_BINARY_DIR}/external) SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${CMAKE_CURRENT_BINARY_DIR}/external)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) 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)
check_cxx_source_compiles("#include <filesystem>\n void main(){}" HAS_STD_FILESYSTEM)
check_cxx_source_compiles("#include <experimental/filesystem>\n void main(){}" HAS_STD_EXPERIMENTAL_FILESYSTEM)
SET (ENGINE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) SET (ENGINE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
INCLUDE(columnstore_version) 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_ONCE(CS_NO_BOOST "Required Boost libraries not found!")
return()
ENDIF()
FIND_PACKAGE(BISON)
IF (NOT BISON_FOUND)
MESSAGE_ONCE(CS_NO_BISON "bison not found!")
return()
ENDIF()
check_cxx_source_compiles("#include <filesystem>\n void main(){}" HAS_STD_FILESYSTEM)
check_cxx_source_compiles("#include <experimental/filesystem>\n void main(){}" HAS_STD_EXPERIMENTAL_FILESYSTEM)
SET (PACKAGE columnstore) SET (PACKAGE columnstore)
SET (PACKAGE_NAME columnstore) SET (PACKAGE_NAME columnstore)
SET (PACKAGE_TARNAME columnstore) SET (PACKAGE_TARNAME columnstore)
@ -143,30 +129,32 @@ SET (PACKAGE_STRING columnstore-${PACKAGE_VERSION})
INCLUDE (configureEngine) INCLUDE (configureEngine)
FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the flex executable") FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the flex executable")
if(NOT LEX_EXECUTABLE) if(NOT LEX_EXECUTABLE)
FIND_PROGRAM(LEX_EXECUTABLE lex DOC "path to the lex executable") FIND_PROGRAM(LEX_EXECUTABLE lex DOC "path to the lex executable")
if(NOT LEX_EXECUTABLE) if(NOT LEX_EXECUTABLE)
message(FATAL_ERROR "flex/lex not found!") MESSAGE_ONCE(CS_NO_LEX "flex/lex not found!")
return()
endif() endif()
endif() endif()
FIND_PACKAGE(LibXml2) FIND_PACKAGE(LibXml2)
if (NOT LIBXML2_FOUND) if (NOT LIBXML2_FOUND)
MESSAGE(FATAL_ERROR "Could not find a usable libxml2 development environment!") MESSAGE_ONCE(CS_NO_LIBXML "Could not find a usable libxml2 development environment!")
return()
endif() endif()
INCLUDE (FindSnappy) find_package(Snappy)
if (NOT SNAPPY_FOUND) if (NOT SNAPPY_FOUND)
MESSAGE(FATAL_ERROR "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() endif()
FIND_PROGRAM(AWK_EXECUTABLE awk DOC "path to the awk executable") FIND_PROGRAM(AWK_EXECUTABLE awk DOC "path to the awk executable")
if(NOT AWK_EXECUTABLE) if(NOT AWK_EXECUTABLE)
message(FATAL_ERROR "awk not found!") MESSAGE_ONCE(CS_NO_AWK "awk not found!")
return()
endif() endif()
IF (NOT INSTALL_LAYOUT) IF (NOT INSTALL_LAYOUT)
@ -240,8 +228,8 @@ IF (NOT SERVER_BUILD_DIR)
SET (SERVER_BUILD_DIR ${SERVER_SOURCE_ROOT_DIR}) SET (SERVER_BUILD_DIR ${SERVER_SOURCE_ROOT_DIR})
ENDIF() ENDIF()
MESSAGE("SERVER_BUILD_INCLUDE_DIR = ${SERVER_BUILD_INCLUDE_DIR}") MESSAGE_ONCE(SERVER_BUILD_INCLUDE_DIR "SERVER_BUILD_INCLUDE_DIR = ${SERVER_BUILD_INCLUDE_DIR}")
MESSAGE("SERVER_SOURCE_ROOT_DIR = ${SERVER_SOURCE_ROOT_DIR}") MESSAGE_ONCE(SERVER_SOURCE_ROOT_DIR "SERVER_SOURCE_ROOT_DIR = ${SERVER_SOURCE_ROOT_DIR}")
IF (INSTALL_LAYOUT) IF (INSTALL_LAYOUT)
SET (MARIADB_CLIENT_LIBS libmariadb) SET (MARIADB_CLIENT_LIBS libmariadb)

View File

@ -17,6 +17,10 @@
# SNAPPY_LIBRARIES The snappy library/libraries # SNAPPY_LIBRARIES The snappy library/libraries
# SNAPPY_INCLUDE_DIR The location of snappy headers # SNAPPY_INCLUDE_DIR The location of snappy headers
if(DEFINED SNAPPY_ROOT_DIR)
set(Snappy_FIND_QUIET)
endif()
find_path(SNAPPY_ROOT_DIR find_path(SNAPPY_ROOT_DIR
NAMES include/snappy.h NAMES include/snappy.h
) )

View File

@ -34,7 +34,7 @@ IF(NOT "${CS_MAJOR_VERSION}" MATCHES "[0-9]+" OR
ENDIF() ENDIF()
SET(VERSION "${CS_MAJOR_VERSION}.${CS_MINOR_VERSION}.${CS_PATCH_VERSION}${CS_EXTRA_VERSION}") 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) IF (NOT INSTALL_LAYOUT)
SET(CPACK_PACKAGE_VERSION_MAJOR ${CS_MAJOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MAJOR ${CS_MAJOR_VERSION})
SET(CPACK_PACKAGE_VERSION_MINOR ${CS_MINOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MINOR ${CS_MINOR_VERSION})

View File

@ -1,21 +1,5 @@
set(S3API_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libmarias3 CACHE INTERNAL "S3API_DIR") 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 SET(S3_SOURCES ${S3API_DIR}/src/debug.c
${S3API_DIR}/src/error.c ${S3API_DIR}/src/error.c
${S3API_DIR}/src/marias3.c ${S3API_DIR}/src/marias3.c