You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +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()
 |