Moved CMake modules to a separate directory and disabled local installs of system files when building packages.
The building of packages with CMake now requires the -DPACKAGE=Y flag to be set when configuring CMake.
This commit is contained in:
122
CMakeLists.txt
122
CMakeLists.txt
@ -9,7 +9,7 @@ set_maxscale_version()
|
|||||||
|
|
||||||
set(CMAKE_INSTALL_PREFIX "/usr/local/skysql/maxscale" CACHE PATH "Prefix prepended to install directories.")
|
set(CMAKE_INSTALL_PREFIX "/usr/local/skysql/maxscale" CACHE PATH "Prefix prepended to install directories.")
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/")
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
project(MaxScale)
|
project(MaxScale)
|
||||||
|
|
||||||
@ -26,11 +26,9 @@ set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib:${CMA
|
|||||||
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/server/include)
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/server/include)
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/server/include/version.h.in ${CMAKE_BINARY_DIR}/server/include/version.h)
|
configure_file(${CMAKE_SOURCE_DIR}/server/include/version.h.in ${CMAKE_BINARY_DIR}/server/include/version.h)
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/maxscale.conf.in ${CMAKE_BINARY_DIR}/maxscale.conf.prep @ONLY)
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/etc/init.d/maxscale.in ${CMAKE_BINARY_DIR}/etc/init.d/maxscale.prep @ONLY)
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/etc/ubuntu/init.d/maxscale.in ${CMAKE_BINARY_DIR}/etc/ubuntu/init.d/maxscale.prep @ONLY)
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/server/test/maxscale_test.h.in ${CMAKE_BINARY_DIR}/server/include/maxscale_test.h)
|
configure_file(${CMAKE_SOURCE_DIR}/server/test/maxscale_test.h.in ${CMAKE_BINARY_DIR}/server/include/maxscale_test.h)
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/postinstall.sh.in ${CMAKE_BINARY_DIR}/postinst)
|
configure_file(${CMAKE_SOURCE_DIR}/etc/postinst.in ${CMAKE_BINARY_DIR}/postinst)
|
||||||
|
configure_file(${CMAKE_SOURCE_DIR}/etc/postrm.in ${CMAKE_BINARY_DIR}/postrm)
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "-Wall -fPIC")
|
set(CMAKE_C_FLAGS "-Wall -fPIC")
|
||||||
set(CMAKE_CXX_FLAGS "-Wall -fPIC")
|
set(CMAKE_CXX_FLAGS "-Wall -fPIC")
|
||||||
@ -107,19 +105,6 @@ if(BUILD_RABBITMQ)
|
|||||||
add_subdirectory(rabbitmq_consumer)
|
add_subdirectory(rabbitmq_consumer)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Install startup scripts and ldconfig files
|
|
||||||
if( NOT ( (DEFINED INSTALL_SYSTEM_FILES) AND ( NOT ( INSTALL_SYSTEM_FILES ) ) ) )
|
|
||||||
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/maxscale.conf.prep RENAME maxscale.conf DESTINATION .)
|
|
||||||
if(DEB_BASED)
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/etc/ubuntu/init.d/maxscale.prep RENAME maxscale DESTINATION .)
|
|
||||||
else()
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/etc/init.d/maxscale.prep RENAME maxscale DESTINATION .)
|
|
||||||
endif()
|
|
||||||
message(STATUS "Installing maxscale.conf to: /etc/ld.so.conf.d")
|
|
||||||
message(STATUS "Installing startup scripts to: /etc/init.d")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(GLOB DOCS Documentation/*.pdf)
|
file(GLOB DOCS Documentation/*.pdf)
|
||||||
message(STATUS "Installing MaxScale to: ${CMAKE_INSTALL_PREFIX}/")
|
message(STATUS "Installing MaxScale to: ${CMAKE_INSTALL_PREFIX}/")
|
||||||
|
|
||||||
@ -132,50 +117,69 @@ install(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION .)
|
|||||||
install(FILES ${CMAKE_SOURCE_DIR}/SETUP DESTINATION .)
|
install(FILES ${CMAKE_SOURCE_DIR}/SETUP DESTINATION .)
|
||||||
install(DIRECTORY DESTINATION log)
|
install(DIRECTORY DESTINATION log)
|
||||||
|
|
||||||
if(${CMAKE_VERSION} VERSION_LESS 2.8.12)
|
# Install startup scripts and ldconfig files
|
||||||
message(WARNING "CMake version is ${CMAKE_VERSION}. Building of packages requires version 2.8.12 or greater.")
|
if( NOT ( (DEFINED INSTALL_SYSTEM_FILES) AND ( NOT ( INSTALL_SYSTEM_FILES ) ) ) )
|
||||||
else()
|
configure_file(${CMAKE_SOURCE_DIR}/maxscale.conf.in ${CMAKE_BINARY_DIR}/maxscale.conf @ONLY)
|
||||||
# See if we are on a RPM-capable or DEB-capable system
|
if(DEB_BASED)
|
||||||
find_program(RPMBUILD rpmbuild)
|
configure_file(${CMAKE_SOURCE_DIR}/etc/ubuntu/init.d/maxscale.in ${CMAKE_BINARY_DIR}/maxscale @ONLY)
|
||||||
find_program(DEBBUILD dpkg-buildpackage)
|
else()
|
||||||
set(CPACK_GENERATOR "TGZ")
|
configure_file(${CMAKE_SOURCE_DIR}/etc/init.d/maxscale.in ${CMAKE_BINARY_DIR}/maxscale @ONLY)
|
||||||
if(NOT ( ${RPMBUILD} STREQUAL "RPMBUILD-NOTFOUND" ) )
|
|
||||||
message(STATUS "Generating RPM packages")
|
|
||||||
set(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
|
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT PACKAGE)
|
||||||
if(NOT ( ${DEBBUILD} STREQUAL "DEBBUILD-NOTFOUND" ) )
|
install(FILES ${CMAKE_BINARY_DIR}/maxscale DESTINATION /etc/init.d
|
||||||
set(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
execute_process(COMMAND dpgk --print-architecture OUTPUT_VARIABLE DEB_ARCHITECTURE)
|
install(FILES ${CMAKE_BINARY_DIR}/maxscale.conf DESTINATION /etc/ld.so.conf.d
|
||||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEB_ARCHITECTURE})
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
message(STATUS "Installing maxscale.conf to: /etc/ld.so.conf.d")
|
||||||
message(STATUS "Generating DEB packages for ${DEB_ARCHITECTURE}")
|
message(STATUS "Installing startup scripts to: /etc/init.d")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MaxScale")
|
|
||||||
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_FILE_NAME "maxscale-${MAXSCALE_VERSION}")
|
|
||||||
set(CPACK_PACKAGE_NAME "maxscale")
|
|
||||||
set(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/README)
|
|
||||||
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/postinst;{CMAKE_BINARY_DIR}/postrm")
|
|
||||||
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/postinst)
|
|
||||||
set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/postrm)
|
|
||||||
set(CPACK_RPM_PACKAGE_NAME "maxscale")
|
|
||||||
set(CPACK_RPM_PACKAGE_VENDOR "MariaDB Corporation Ab")
|
|
||||||
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
|
|
||||||
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/etc /etc/ld.so.conf.d /etc/init.d /etc/rc.d/init.d")
|
|
||||||
set(CPACK_RPM_SPEC_MORE_DEFINE "%define ignore \#")
|
|
||||||
set(CPACK_RPM_USER_FILELIST "%ignore /etc/init.d")
|
|
||||||
set(CPACK_RPM_USER_FILELIST "%ignore /etc/ld.so.conf.d")
|
|
||||||
set(CPACK_RPM_USER_FILELIST "%ignore /etc")
|
|
||||||
include(CPack)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(PACKAGE)
|
||||||
|
if(${CMAKE_VERSION} VERSION_LESS 2.8.12)
|
||||||
|
message(WARNING "CMake version is ${CMAKE_VERSION}. Building of packages requires version 2.8.12 or greater.")
|
||||||
|
else()
|
||||||
|
# See if we are on a RPM-capable or DEB-capable system
|
||||||
|
find_program(RPMBUILD rpmbuild)
|
||||||
|
find_program(DEBBUILD dpkg-buildpackage)
|
||||||
|
set(CPACK_GENERATOR "TGZ")
|
||||||
|
if(NOT ( ${RPMBUILD} STREQUAL "RPMBUILD-NOTFOUND" ) )
|
||||||
|
message(STATUS "Generating RPM packages")
|
||||||
|
set(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT ( ${DEBBUILD} STREQUAL "DEBBUILD-NOTFOUND" ) )
|
||||||
|
set(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
|
||||||
|
execute_process(COMMAND dpgk --print-architecture OUTPUT_VARIABLE DEB_ARCHITECTURE)
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEB_ARCHITECTURE})
|
||||||
|
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
message(STATUS "Generating DEB packages for ${DEB_ARCHITECTURE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MaxScale")
|
||||||
|
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_FILE_NAME "maxscale-${MAXSCALE_VERSION}")
|
||||||
|
set(CPACK_PACKAGE_NAME "maxscale")
|
||||||
|
set(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/etc/DESCRIPTION)
|
||||||
|
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/postinst;{CMAKE_BINARY_DIR}/postrm")
|
||||||
|
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/postinst)
|
||||||
|
set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/postrm)
|
||||||
|
set(CPACK_RPM_PACKAGE_NAME "maxscale")
|
||||||
|
set(CPACK_RPM_PACKAGE_VENDOR "MariaDB Corporation Ab")
|
||||||
|
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
|
||||||
|
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/etc /etc/ld.so.conf.d /etc/init.d /etc/rc.d/init.d")
|
||||||
|
set(CPACK_RPM_SPEC_MORE_DEFINE "%define ignore \#")
|
||||||
|
set(CPACK_RPM_USER_FILELIST "%ignore /etc/init.d")
|
||||||
|
set(CPACK_RPM_USER_FILELIST "%ignore /etc/ld.so.conf.d")
|
||||||
|
set(CPACK_RPM_USER_FILELIST "%ignore /etc")
|
||||||
|
include(CPack)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
add_custom_target(buildtests
|
add_custom_target(buildtests
|
||||||
COMMAND ${CMAKE_COMMAND} -DDEPS_OK=Y -DBUILD_TESTS=Y -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DINSTALL_SYSTEM_FILES=N ${CMAKE_SOURCE_DIR}
|
COMMAND ${CMAKE_COMMAND} -DDEPS_OK=Y -DBUILD_TESTS=Y -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DINSTALL_SYSTEM_FILES=N ${CMAKE_SOURCE_DIR}
|
||||||
@ -193,7 +197,7 @@ add_custom_target(testall
|
|||||||
# uninstall target
|
# uninstall target
|
||||||
# see http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
|
# see http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
|
||||||
configure_file(
|
configure_file(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
IMMEDIATE @ONLY)
|
IMMEDIATE @ONLY)
|
||||||
|
|
||||||
|
9
etc/DESCRIPTION
Normal file
9
etc/DESCRIPTION
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
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 flexibile architecture, with plugin components to
|
||||||
|
support different protocols and routing decissions.
|
@ -59,6 +59,9 @@ macro(set_variables)
|
|||||||
# Build tests
|
# Build tests
|
||||||
set(BUILD_TESTS FALSE CACHE BOOL "Build tests")
|
set(BUILD_TESTS FALSE CACHE BOOL "Build tests")
|
||||||
|
|
||||||
|
# Build packages
|
||||||
|
set(PACKAGE FALSE CACHE BOOL "Enable package building (this disables local installation of system files)")
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(check_deps)
|
macro(check_deps)
|
||||||
|
Reference in New Issue
Block a user