 eab4ec1768
			
		
	
	eab4ec1768
	
	
	
		
			
			The package descriptions, summaries and licenses now use a generic mechanism. This makes it easier to add new components that only include small parts or use a different license. Also updated the descriptions, the license versions and package summaries for the main packages.
		
			
				
	
	
		
			110 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # Common packaging configuration
 | |
| 
 | |
| execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE)
 | |
| 
 | |
| # Check target
 | |
| set(PACK_TARGETS "core" "devel" "experimental" "cdc-connector" "all")
 | |
| if(DEFINED TARGET_COMPONENT AND NOT TARGET_COMPONENT STREQUAL "")
 | |
|   set(LIST_INDEX -1)
 | |
|   list(FIND PACK_TARGETS ${TARGET_COMPONENT} LIST_INDEX)
 | |
|   if (${LIST_INDEX} EQUAL -1)
 | |
|     message(FATAL_ERROR "Unrecognized TARGET_COMPONENT value. Allowed values: ${PACK_TARGETS}.")
 | |
|   endif()
 | |
| else()
 | |
|   set(TARGET_COMPONENT "core")
 | |
|   message(STATUS "No TARGET_COMPONENT defined, using default value 'core'")
 | |
| endif()
 | |
| 
 | |
| # Generic CPack configuration variables
 | |
| set(CPACK_SET_DESTDIR ON)
 | |
| set(CPACK_PACKAGE_RELOCATABLE FALSE)
 | |
| set(CPACK_STRIP_FILES FALSE)
 | |
| set(CPACK_PACKAGE_VERSION_MAJOR "${MAXSCALE_VERSION_MAJOR}")
 | |
| set(CPACK_PACKAGE_VERSION_MINOR "${MAXSCALE_VERSION_MINOR}")
 | |
| set(CPACK_PACKAGE_VERSION_PATCH "${MAXSCALE_VERSION_PATCH}")
 | |
| set(CPACK_PACKAGE_CONTACT "MariaDB Corporation Ab")
 | |
| set(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
 | |
| set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
 | |
| 
 | |
| # Descriptions for the main packages
 | |
| set(core_PACKAGE_SUMMARY "MaxScale - An intelligent database proxy")
 | |
| set(core_PACKAGE_DESCRIPTION "
 | |
| The MariaDB Corporation MaxScale is an intelligent proxy that allows forwarding of
 | |
| database statements to one or more database servers using complex rules,
 | |
| a semantic understanding of the database statements and the roles of
 | |
| the various servers within the backend cluster of databases.
 | |
| 
 | |
| MaxScale is designed to provide load balancing and high availability
 | |
| functionality transparently to the applications. In addition it provides
 | |
| a highly scalable and flexible architecture, with plugin components to
 | |
| support different protocols and routing decisions.")
 | |
| 
 | |
| set(devel_PACKAGE_SUMMARY "MaxScale plugin development headers")
 | |
| set(devel_PACKAGE_DESCRIPTION "
 | |
| This package contains header files required for plugin module development for
 | |
| MariaDB MaxScale. The source of MariaDB MaxScale is not required.")
 | |
| 
 | |
| set(experimental_PACKAGE_SUMMARY "MaxScale experimental modules")
 | |
| set(experimental_PACKAGE_DESCRIPTION "
 | |
| This package contains experimental and community contributed modules for MariaDB
 | |
| MaxScale. The packages are not fully supported parts of MaxScale and should be
 | |
| considered as alpha quality software.")
 | |
| 
 | |
| set(all_PACKAGE_SUMMARY ${core_PACKAGE_SUMMARY})
 | |
| set(all_PACKAGE_DESCRIPTION ${core_PACKAGE_DESCRIPTION})
 | |
| 
 | |
| # Set the package description for this component
 | |
| if (${TARGET_COMPONENT}_PACKAGE_DESCRIPTION AND ${TARGET_COMPONENT}_PACKAGE_SUMMARY)
 | |
|   set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${${TARGET_COMPONENT}_PACKAGE_SUMMARY})
 | |
|   set(CPACK_PACKAGE_DESCRIPTION ${${TARGET_COMPONENT}_PACKAGE_DESCRIPTION})
 | |
|   set(DESCRIPTION_TEXT ${${TARGET_COMPONENT}_PACKAGE_DESCRIPTION})
 | |
| 
 | |
| elseif((${TARGET_COMPONENT}_PACKAGE_DESCRIPTION OR ${TARGET_COMPONENT}_PACKAGE_SUMMARY))
 | |
|   message(FATAL_ERROR "Component '${TARGET_COMPONENT}' does not define both "
 | |
|     "${TARGET_COMPONENT}_PACKAGE_DESCRIPTION and ${TARGET_COMPONENT}_PACKAGE_SUMMARY variables.")
 | |
| endif()
 | |
| 
 | |
| # If we're building something other than the main package, append the target name
 | |
| # to the package name.
 | |
| if(DEFINED TARGET_COMPONENT AND NOT TARGET_COMPONENT STREQUAL "core" AND NOT TARGET_COMPONENT STREQUAL "")
 | |
|   set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}-${TARGET_COMPONENT}")
 | |
| else()
 | |
|   set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}")
 | |
| endif()
 | |
| 
 | |
| if(DISTRIB_SUFFIX)
 | |
|   set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${MAXSCALE_VERSION}-${MAXSCALE_BUILD_NUMBER}.${DISTRIB_SUFFIX}.${CMAKE_SYSTEM_PROCESSOR}")
 | |
| else()
 | |
|   set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${MAXSCALE_VERSION}-${MAXSCALE_BUILD_NUMBER}.${CMAKE_SYSTEM_PROCESSOR}")
 | |
| endif()
 | |
| 
 | |
| # See if we are on a RPM-capable or DEB-capable system
 | |
| find_program(RPMBUILD rpmbuild)
 | |
| find_program(DEBBUILD dpkg-buildpackage)
 | |
| 
 | |
| if(TARBALL)
 | |
|   include(cmake/package_tgz.cmake)
 | |
| 
 | |
| elseif(${RPMBUILD} MATCHES "NOTFOUND" AND ${DEBBUILD} MATCHES "NOTFOUND")
 | |
|   message(FATAL_ERROR "Could not automatically resolve the package generator and no generators "
 | |
|     "defined on the command line. Please install distribution specific packaging software or "
 | |
|     "define -DTARBALL=Y to build tar.gz packages.")
 | |
| else()
 | |
| 
 | |
|   if(${DEBBUILD} MATCHES "NOTFOUND")
 | |
|     # No DEB packaging tools found, must be an RPM system
 | |
|     include(cmake/package_rpm.cmake)
 | |
|   else()
 | |
|     # We have DEB packaging tools, must be a DEB system
 | |
|     if (NOT ${RPMBUILD} MATCHES "NOTFOUND")
 | |
|       # Debian based systems can have both RPM and DEB packaging tools
 | |
|       message(WARNING "Found both DEB and RPM packaging tools, generating DEB packages. If this is not correct, "
 | |
|         "remove the packaging tools for the package type you DO NOT want to create.")
 | |
|     endif()
 | |
|     include(cmake/package_deb.cmake)
 | |
|   endif()
 | |
| 
 | |
|   message(STATUS "You can install startup scripts and system configuration files for MaxScale by running the 'postinst' shell script located at ${CMAKE_INSTALL_PREFIX}.")
 | |
|   message(STATUS "To remove these installed files, run the 'postrm' shell script located in the same folder.")
 | |
| endif()
 |