You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-10-30 07:25:34 +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()
 |