Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  CMakeLists.txt   Sprache: Text

 

# Copyright (c) 2006, 2016, Oracle and/or its affiliates.
# Copyright (c) 2012, 2022, MariaDB
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1335 USA

IF(WIN32)
  SET(localstatedir "C:\\\\mysql\\\\data\\\\")
  SET(ini_file_extension "ini")
ELSE()
  SET(localstatedir "${MYSQL_DATADIR}")
  SET(prefix "${CMAKE_INSTALL_PREFIX}")
  SET(libexecdir ${INSTALL_SBINDIRABS})
  SET(bindir ${INSTALL_BINDIRABS})
  SET(sbindir "${libexecdir}")
  SET(datadir "${MYSQL_DATADIR}")
  SET(CC ${CMAKE_C_COMPILER})
  SET(CXX ${CMAKE_CXX_COMPILER})
  SET(CFLAGS ${CMAKE_C_FLAGS})
  SET(CXXFLAGS ${CMAKE_CXX_FLAGS})
  SET(MYSQLD_USER "mysql")
  SET(MYSQLD_GROUP "mysql")
  SET(ini_file_extension "cnf")

  # Define directly here, as cmake/install_layout.cmake has no LOGDIR to be inherited
  SET(su_user "su mysql mysql")
  IF(RPM MATCHES "(suse|sles)")
    SET(logdir "/var/log/mysql")
  ELSEIF(RPM)
    SET(logdir "/var/log/mariadb")
  ELSE()
    SET(logdir "/var/log/mysql")
  ENDIF()
  IF(DEB)
    SET(su_user "#su mysql mysql")
  ENDIF()
  get_filename_component(MYSQL_UNIX_DIR ${MYSQL_UNIX_ADDR} DIRECTORY)
  SET(mysqlunixdir ${MYSQL_UNIX_DIR})
ENDIF()

# XXX: shouldn't we just have variables for all this stuff and centralise
# XXX: their configuration in install_layout.cmake?
IF(WIN32)
  SET(inst_location ${INSTALL_DOCREADMEDIR})
ELSE()
  SET(inst_location ${INSTALL_SUPPORTFILESDIR})
ENDIF()

IF(WITH_WSREP AND NOT WITHOUT_SERVER)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/wsrep.cnf.sh
                 ${CMAKE_CURRENT_BINARY_DIR}/wsrep.${ini_file_extension} @ONLY)
  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wsrep.${ini_file_extension}
          DESTINATION ${inst_location} COMPONENT server-galera)
ENDIF()

IF(UNIX AND NOT WITHOUT_SERVER)
  SET(prefix ${CMAKE_INSTALL_PREFIX})
  SET(SCRIPTS mysqld_multi.server mariadb.logrotate binary-configure mini-benchmark)
  IF(WITH_WSREP)
    SET(SCRIPTS ${SCRIPTS} wsrep_notify)
  ENDIF()
  FOREACH(script ${SCRIPTS})
    CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${script}.sh
                   ${CMAKE_CURRENT_BINARY_DIR}/${script} @ONLY )
    INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${script}
      DESTINATION ${inst_location} COMPONENT Server_Scripts)
  ENDFOREACH()

  IF(INSTALL_SUPPORTFILESDIR)
    INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles)
    INSTALL(DIRECTORY policy DESTINATION ${inst_location} COMPONENT SupportFiles)
    FIND_PROGRAM(CHECKMODULE checkmodule)
    FIND_PROGRAM(SEMODULE_PACKAGE semodule_package)
    MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE)

    # Build pp files in policy/selinux
    IF(CHECKMODULE AND SEMODULE_PACKAGE)
      FOREACH(pol mariadb)
        SET(src ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.te)
        SET(tmp ${CMAKE_CURRENT_BINARY_DIR}/${pol}.mod)
        SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp)
        ADD_CUSTOM_COMMAND(OUTPUT ${out}
          COMMAND ${CHECKMODULE} -M -m ${src} -o ${tmp}
          COMMAND ${SEMODULE_PACKAGE} -m ${tmp} -o ${out}
          COMMAND ${CMAKE_COMMAND} -E remove ${tmp}
        DEPENDS ${src})
        ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out})
        INSTALL(FILES ${out} DESTINATION ${inst_location}/policy/selinux COMPONENT SupportFiles)
      ENDFOREACH()
      IF(RPM)
        EXECUTE_PROCESS(COMMAND rpm -q --qf "%{VERSION}" libsepol."${CMAKE_SYSTEM_PROCESSOR}"
                        OUTPUT_VARIABLE LIBSEPOL_VERSION RESULT_VARIABLE err)
        IF (NOT err)
          SET(CPACK_RPM_server_PACKAGE_REQUIRES
            "${CPACK_RPM_server_PACKAGE_REQUIRES} libsepol >= ${LIBSEPOL_VERSION}"
            PARENT_SCOPE)
        ENDIF()
      ENDIF()
    ENDIF()
  ENDIF()

  CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY)
  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc DESTINATION ${INSTALL_LIBDIR}/pkgconfig COMPONENT Development)

  INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
  
  SET(bindir ${INSTALL_BINDIRABS})
  SET(sbindir ${INSTALL_SBINDIRABS})
  SET(scriptdir ${INSTALL_SCRIPTDIRABS})
  SET(libexecdir ${INSTALL_SBINDIRABS})
  SET(pkgdatadir ${INSTALL_MYSQLSHAREDIRABS})
  IF(INSTALL_SYSCONFDIR)
    SET(sysconfdir ${INSTALL_SYSCONFDIR})
  ELSEIF(DEFAULT_SYSCONFDIR)
    SET(sysconfdir ${DEFAULT_SYSCONFDIR})
  ELSE()
    SET(sysconfdir "/etc")
  ENDIF()
  IF(INSTALL_SYSCONF2DIR)
    SET(sysconf2dir ${INSTALL_SYSCONF2DIR})
  ELSE()
    SET(sysconf2dir "${sysconfdir}/mysql")
  ENDIF()
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql.server.sh 
                 ${CMAKE_CURRENT_BINARY_DIR}/mysql.server @ONLY)
  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mysql.server
    DESTINATION ${inst_location} COMPONENT SupportFiles)

  IF(HAVE_SYSTEMD)
    CONFIGURE_FILE(mariadb.service.in
                   ${CMAKE_CURRENT_BINARY_DIR}/mariadb.service @ONLY)
    CONFIGURE_FILE(mariadb.socket.in
                   ${CMAKE_CURRENT_BINARY_DIR}/mariadb.socket @ONLY)
    CONFIGURE_FILE(mariadb-extra.socket.in
                   ${CMAKE_CURRENT_BINARY_DIR}/mariadb-extra.socket @ONLY)
    EXECUTE_PROCESS(
    COMMAND ${CMAKE_COMMAND} -E create_symlink ./mariadb.service mysql.service
    COMMAND ${CMAKE_COMMAND} -E create_symlink ./mariadb.service mysqld.service
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

    IF(WITH_WSREP)
      CONFIGURE_FILE(galera.conf.in
                     ${CMAKE_CURRENT_BINARY_DIR}/galera.conf @ONLY)
      INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/galera.conf
              DESTINATION ${inst_location}/mariadb.service.d
              COMPONENT server-galera)

      INSTALL(FILES use_galera_new_cluster.conf
              DESTINATION ${inst_location}/systemd COMPONENT server-galera)
    ENDIF()
    INSTALL(FILES
            ${CMAKE_CURRENT_BINARY_DIR}/mariadb.service
            ${CMAKE_CURRENT_BINARY_DIR}/mysql.service
            ${CMAKE_CURRENT_BINARY_DIR}/mysqld.service
            DESTINATION ${inst_location}/systemd COMPONENT SupportFiles)

    # @ in directory name broken between CMake version 2.8.12.2 and 3.3
    # http://public.kitware.com/Bug/view.php?id=14782
    IF(NOT CMAKE_VERSION VERSION_LESS 3.3.0 OR NOT RPM)
      CONFIGURE_FILE(mariadb@.service.in
                     ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.service @ONLY)
      CONFIGURE_FILE(mariadb@.socket.in
                     ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.socket @ONLY)
      CONFIGURE_FILE(mariadb-extra@.socket.in
                     ${CMAKE_CURRENT_BINARY_DIR}/mariadb-extra@.socket @ONLY)
      INSTALL(FILES
              ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.service
              ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.socket
              ${CMAKE_CURRENT_BINARY_DIR}/mariadb-extra@.socket
              ${CMAKE_CURRENT_BINARY_DIR}/mysql.service
              ${CMAKE_CURRENT_BINARY_DIR}/mysqld.service
              DESTINATION ${inst_location}/systemd COMPONENT SupportFiles)
    ENDIF()

    IF(INSTALL_SYSTEMD_UNITDIR)
      INSTALL(FILES
              ${CMAKE_CURRENT_BINARY_DIR}/mariadb.service
              ${CMAKE_CURRENT_BINARY_DIR}/mariadb.socket
              ${CMAKE_CURRENT_BINARY_DIR}/mariadb-extra.socket
              ${CMAKE_CURRENT_BINARY_DIR}/mysql.service
              ${CMAKE_CURRENT_BINARY_DIR}/mysqld.service
              DESTINATION ${INSTALL_SYSTEMD_UNITDIR} COMPONENT Server)

      IF(WITH_WSREP)
          INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/galera.conf
                  DESTINATION ${INSTALL_SYSTEMD_UNITDIR}/mariadb.service.d
                  COMPONENT server-galera)
      ENDIF()
      # http://public.kitware.com/Bug/view.php?id=14782
      IF(NOT CMAKE_VERSION VERSION_LESS 3.3.0 OR NOT RPM)
        INSTALL(FILES use_galera_new_cluster.conf
                DESTINATION
                "${INSTALL_SYSTEMD_UNITDIR}/mariadb@bootstrap.service.d"
                COMPONENT Server)
        INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.service
                ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.socket
                ${CMAKE_CURRENT_BINARY_DIR}/mariadb-extra@.socket
                DESTINATION ${INSTALL_SYSTEMD_UNITDIR} COMPONENT Server)
      ENDIF()

    ENDIF()
  ENDIF()

  # Allow installing sysusers and tmpusers without requiring SYSTEMD on the
  # system. This is useful for distributions running other init systems to
  # parse these files and create appropriate users & tmpfiles.
  IF((HAVE_SYSTEMD OR INSTALL_SYSTEMD_SYSUSERS) AND INSTALL_SYSTEMD_SYSUSERSDIR)
    CONFIGURE_FILE(sysusers.conf.in
            ${CMAKE_CURRENT_BINARY_DIR}/sysusers.conf @ONLY)
    INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/sysusers.conf
            DESTINATION ${INSTALL_SYSTEMD_SYSUSERSDIR}
            RENAME mariadb.conf COMPONENT Server)
  ENDIF()

  IF((HAVE_SYSTEMD OR INSTALL_SYSTEMD_TMPUSERS) AND INSTALL_SYSTEMD_TMPFILESDIR)
    get_filename_component(MYSQL_UNIX_ADDRDIR ${MYSQL_UNIX_ADDR} DIRECTORY)
    IF(MYSQL_UNIX_ADDRDIR STREQUAL MYSQL_DATADIR OR MYSQL_UNIX_ADDRDIR STREQUAL INSTALL_RUNDIR)
      SET(DISABLE_MYSQL_UNIX_ADDRDIR "#")
    ENDIF()

    CONFIGURE_FILE(tmpfiles.conf.in
            ${CMAKE_CURRENT_BINARY_DIR}/tmpfiles.conf @ONLY)
    INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tmpfiles.conf
            DESTINATION ${INSTALL_SYSTEMD_TMPFILESDIR}
            RENAME mariadb.conf COMPONENT Server)
  ENDIF()

  IF (INSTALL_SYSCONFDIR)
    INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.logrotate
            DESTINATION ${INSTALL_SYSCONFDIR}/logrotate.d
            RENAME mariadb COMPONENT SupportFiles)
    IF(NOT HAVE_SYSTEMD)
      INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mysql.server
              DESTINATION  ${INSTALL_SYSCONFDIR}/init.d
              RENAME mysql COMPONENT SupportFiles)
    ENDIF()

    INSTALL(FILES rpm/my.cnf DESTINATION ${INSTALL_SYSCONFDIR}
            COMPONENT Common)

    IF (INSTALL_SYSCONF2DIR)
      INSTALL(FILES rpm/client.cnf DESTINATION ${INSTALL_SYSCONF2DIR}
              COMPONENT SharedLibraries)
      INSTALL(FILES rpm/mysql-clients.cnf DESTINATION ${INSTALL_SYSCONF2DIR}
              COMPONENT Client)
      INSTALL(FILES rpm/server.cnf DESTINATION ${INSTALL_SYSCONF2DIR}
              COMPONENT IniFiles)
      INSTALL(FILES rpm/enable_encryption.preset DESTINATION ${INSTALL_SYSCONF2DIR}
              COMPONENT IniFiles)
    ENDIF()

    # This is for SuSE:
    INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink
                   ${INSTALL_SYSCONFDIR}/init.d/mysql
                   ${INSTALL_SBINDIR}/rcmysql
                   WORKING_DIRECTORY \$ENV{DESTDIR}${prefix})"
                   COMPONENT SupportFiles)
  ENDIF(INSTALL_SYSCONFDIR)
ENDIF()

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1867298