You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-10-31 18:30:33 +03:00
116 lines
4.5 KiB
CMake
116 lines
4.5 KiB
CMake
# Read value for a variable from VERSION.
|
|
macro(MYSQL_GET_CONFIG_VALUE keyword var)
|
|
if(NOT ${var})
|
|
file(STRINGS ${SERVER_SOURCE_DIR}/VERSION str REGEX "^[ ]*${keyword}=")
|
|
if(str)
|
|
string(REPLACE "${keyword}=" "" str ${str})
|
|
string(REGEX REPLACE "[ ].*" "" str "${str}")
|
|
set(${var} ${str})
|
|
endif()
|
|
endif()
|
|
endmacro()
|
|
|
|
function(get_linux_lsb_release_information)
|
|
# Try lsb_release first
|
|
find_program(LSB_RELEASE_EXEC lsb_release)
|
|
|
|
if(LSB_RELEASE_EXEC)
|
|
execute_process(
|
|
COMMAND "${LSB_RELEASE_EXEC}" --short --id
|
|
OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
string(TOLOWER "${LSB_RELEASE_ID_SHORT}" LSB_RELEASE_ID_SHORT)
|
|
|
|
execute_process(
|
|
COMMAND "${LSB_RELEASE_EXEC}" --short --release
|
|
OUTPUT_VARIABLE LSB_RELEASE_VERSION_SHORT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND "${LSB_RELEASE_EXEC}" --short --codename
|
|
OUTPUT_VARIABLE LSB_RELEASE_CODENAME_SHORT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
else()
|
|
# Fallback: parse /etc/os-release
|
|
if(EXISTS "/etc/os-release")
|
|
file(READ "/etc/os-release" OS_RELEASE_CONTENT)
|
|
|
|
string(REGEX MATCH "ID=([^\n]*)" _match "${OS_RELEASE_CONTENT}")
|
|
set(LSB_RELEASE_ID_SHORT "${CMAKE_MATCH_1}")
|
|
# Remove quotes if present
|
|
string(REGEX REPLACE "^\"(.*)\"$" "\\1" LSB_RELEASE_ID_SHORT "${LSB_RELEASE_ID_SHORT}")
|
|
string(TOLOWER "${LSB_RELEASE_ID_SHORT}" LSB_RELEASE_ID_SHORT)
|
|
|
|
string(REGEX MATCH "VERSION_ID=([^\n]*)" _match "${OS_RELEASE_CONTENT}")
|
|
set(LSB_RELEASE_VERSION_SHORT "${CMAKE_MATCH_1}")
|
|
# Remove quotes if present
|
|
string(REGEX REPLACE "^\"(.*)\"$" "\\1" LSB_RELEASE_VERSION_SHORT "${LSB_RELEASE_VERSION_SHORT}")
|
|
|
|
string(REGEX MATCH "VERSION_CODENAME=([^\n]*)" _match "${OS_RELEASE_CONTENT}")
|
|
if(CMAKE_MATCH_1)
|
|
set(LSB_RELEASE_CODENAME_SHORT "${CMAKE_MATCH_1}")
|
|
# Remove quotes if present
|
|
string(REGEX REPLACE "^\"(.*)\"$" "\\1" LSB_RELEASE_CODENAME_SHORT "${LSB_RELEASE_CODENAME_SHORT}")
|
|
else()
|
|
set(LSB_RELEASE_CODENAME_SHORT "")
|
|
endif()
|
|
else()
|
|
message(FATAL_ERROR "Could not detect lsb_release or /etc/os-release, cannot gather required information")
|
|
endif()
|
|
endif()
|
|
|
|
message(STATUS "LSB_RELEASE_ID_SHORT ${LSB_RELEASE_ID_SHORT}")
|
|
message(STATUS "LSB_RELEASE_VERSION_SHORT ${LSB_RELEASE_VERSION_SHORT}")
|
|
message(STATUS "LSB_RELEASE_CODENAME_SHORT ${LSB_RELEASE_CODENAME_SHORT}")
|
|
|
|
set(LSB_RELEASE_ID_SHORT
|
|
"${LSB_RELEASE_ID_SHORT}"
|
|
PARENT_SCOPE
|
|
)
|
|
set(LSB_RELEASE_VERSION_SHORT
|
|
"${LSB_RELEASE_VERSION_SHORT}"
|
|
PARENT_SCOPE
|
|
)
|
|
set(LSB_RELEASE_CODENAME_SHORT
|
|
"${LSB_RELEASE_CODENAME_SHORT}"
|
|
PARENT_SCOPE
|
|
)
|
|
endfunction()
|
|
|
|
# Read mysql version for configure script
|
|
macro(GET_MYSQL_VERSION)
|
|
mysql_get_config_value("MYSQL_VERSION_MAJOR" MAJOR_VERSION)
|
|
mysql_get_config_value("MYSQL_VERSION_MINOR" MINOR_VERSION)
|
|
mysql_get_config_value("MYSQL_VERSION_PATCH" PATCH_VERSION)
|
|
mysql_get_config_value("MYSQL_VERSION_EXTRA" EXTRA_VERSION)
|
|
mysql_get_config_value("SERVER_MATURITY" SERVER_MATURITY)
|
|
|
|
if(NOT "${MAJOR_VERSION}" MATCHES "[0-9]+"
|
|
OR NOT "${MINOR_VERSION}" MATCHES "[0-9]+"
|
|
OR NOT "${PATCH_VERSION}" MATCHES "[0-9]+"
|
|
)
|
|
message(FATAL_ERROR "VERSION file cannot be parsed.")
|
|
endif()
|
|
if((NOT TINY_VERSION) AND (EXTRA_VERSION MATCHES "[\\-][0-9]+"))
|
|
string(REPLACE "-" "" TINY_VERSION "${EXTRA_VERSION}")
|
|
else()
|
|
set(TINY_VERSION "0")
|
|
endif()
|
|
set(VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EXTRA_VERSION}")
|
|
set(SERVER_VERSION ${VERSION})
|
|
message(STATUS "MariaDB ${VERSION}")
|
|
set(MYSQL_BASE_VERSION
|
|
"${MAJOR_VERSION}.${MINOR_VERSION}"
|
|
CACHE INTERNAL "MySQL Base version"
|
|
)
|
|
set(MYSQL_NO_DASH_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
|
|
math(EXPR MYSQL_VERSION_ID "10000*${MAJOR_VERSION} + 100*${MINOR_VERSION} + ${PATCH_VERSION}")
|
|
mark_as_advanced(VERSION MYSQL_VERSION_ID MYSQL_BASE_VERSION)
|
|
set(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION})
|
|
set(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION})
|
|
set(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION}${EXTRA_VERSION})
|
|
endmacro()
|