mirror of https://gitee.com/bigwinds/arangodb
Work on mac packages
- don't create shellscripts with multiple slashes by using one cmake variable to substitute paths - install runtime data in the users home directory, so it remains available across reinstalls / updates
This commit is contained in:
parent
4ffd809c41
commit
19b7418e3a
|
@ -2,7 +2,11 @@
|
|||
ROOTDIR="`(cd \`dirname $0\` && pwd)`"
|
||||
# create start script
|
||||
|
||||
SCRIPTS="`( cd ${ROOTDIR}/@CMAKE_INSTALL_PREFIX@ && ls -1 {@CMAKE_INSTALL_BINDIR@,@CMAKE_INSTALL_SBINDIR@}/* )`"
|
||||
mkdir -p ${HOME}@INC_CPACK_ARANGO_DATA_DIR@
|
||||
mkdir -p ${HOME}@INC_CPACK_ARANGO_LOG_DIR@
|
||||
mkdir -p ${HOME}@INC_CPACK_ARANGODB_APPS_DIRECTORY@
|
||||
|
||||
SCRIPTS="`( cd ${ROOTDIR}@CMAKE_INSTALL_PREFIX@ && ls -1 {@CMAKE_INSTALL_BINDIR@,@CMAKE_INSTALL_SBINDIR@}/* )`"
|
||||
|
||||
for script in $SCRIPTS; do
|
||||
base="`basename $script`"
|
||||
|
@ -10,10 +14,10 @@ for script in $SCRIPTS; do
|
|||
(
|
||||
echo "#!/bin/bash"
|
||||
echo
|
||||
echo "export ROOTDIR=\"${ROOTDIR}/@CMAKE_INSTALL_PREFIX@\""
|
||||
echo "export ROOTDIR=\"${ROOTDIR}@CMAKE_INSTALL_PREFIX@\""
|
||||
echo
|
||||
|
||||
echo "exec \"\${ROOTDIR}/$script\" -c \"\${ROOTDIR}/@CMAKE_INSTALL_SYSCONFDIR_ARANGO@/${base}.conf\" \$*"
|
||||
echo "exec \"\${ROOTDIR}/$script\" -c \"\${ROOTDIR}@CMAKE_INSTALL_SYSCONFDIR_ARANGO@/${base}.conf\" \$*"
|
||||
) > ${ROOTDIR}/$base.$$
|
||||
|
||||
chmod 755 ${ROOTDIR}/$base.$$
|
||||
|
@ -22,7 +26,7 @@ done
|
|||
|
||||
# start the server
|
||||
|
||||
PIDFILE="${ROOTDIR}/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/run/arangod.pid"
|
||||
PIDFILE="${ROOTDIR}@INC_CPACK_ARANGO_PID_DIR@/arangod.pid"
|
||||
|
||||
if [ -f "${PIDFILE}" ]; then
|
||||
result=`
|
||||
|
@ -39,7 +43,8 @@ EOF
|
|||
fi
|
||||
fi
|
||||
|
||||
test -d "${ROOTDIR}/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/run" || mkdir "${ROOTDIR}/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/run"
|
||||
|
||||
test -d "${ROOTDIR}@INC_CPACK_ARANGO_PID_DIR@" || mkdir "${ROOTDIR}@INC_CPACK_ARANGO_PID_DIR@"
|
||||
${ROOTDIR}/arangod --daemon --pid-file "${PIDFILE}"
|
||||
|
||||
# create some information for the user
|
||||
|
@ -51,10 +56,10 @@ INFOFILE="/tmp/ArangoDB-CLI.info.$$"
|
|||
echo "ArangoDB server has been started"
|
||||
echo ""
|
||||
echo "The database directory is located at"
|
||||
echo " '${ROOTDIR}/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/lib/arangodb3'"
|
||||
echo " '${ROOTDIR}@INC_CPACK_ARANGO_DATA_DIR@'"
|
||||
echo ""
|
||||
echo "The log file is located at"
|
||||
echo " '${ROOTDIR}/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/log/arangodb3/arangod.log'"
|
||||
echo " '${ROOTDIR}@INC_CPACK_ARANGO_LOG_DIR@/arangod.log'"
|
||||
echo ""
|
||||
echo "You can access the server using a browser at 'http://127.0.0.1:8529/'"
|
||||
echo "or start the ArangoDB shell"
|
||||
|
@ -69,7 +74,7 @@ INFOFILE="/tmp/ArangoDB-CLI.info.$$"
|
|||
|
||||
/usr/bin/osascript <<-EOF
|
||||
tell application "Terminal"
|
||||
do script "clear && cat $INFOFILE && rm $INFOFILE && sleep 20 && exec tail -1 -f ${ROOTDIR}/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/log/arangodb3/arangod.log"
|
||||
do script "clear && cat $INFOFILE && rm $INFOFILE && sleep 20 && exec tail -1 -f ${HOME}@INC_CPACK_ARANGO_LOG_DIR@/arangod.log"
|
||||
activate
|
||||
end tell
|
||||
EOF
|
||||
|
|
|
@ -32,13 +32,15 @@ set(ARANGODB_DB_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/${CMAKE_PROJECT_NAME}")
|
|||
FILE(MAKE_DIRECTORY ${ARANGODB_DB_DIRECTORY})
|
||||
|
||||
# apps
|
||||
set(ARANGODB_APPS_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/${CMAKE_PROJECT_NAME}-apps")
|
||||
FILE(MAKE_DIRECTORY "${ARANGODB_APPS_DIRECTORY}")
|
||||
set(ARANGODB_APPS_DIRECTORY "/var/lib/${CMAKE_PROJECT_NAME}-apps")
|
||||
set(ARANGODB_FULL_APPS_DIRECTORY "${PROJECT_BINARY_DIR}${ARANGODB_APPS_DIRECTORY}")
|
||||
FILE(MAKE_DIRECTORY "${ARANGODB_FULL_APPS_DIRECTORY}")
|
||||
|
||||
# logs
|
||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/${CMAKE_PROJECT_NAME}")
|
||||
|
||||
set(INSTALL_ICU_DT_DEST "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
|
||||
|
||||
include(InstallMacros)
|
||||
# install ----------------------------------------------------------------------
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
|
||||
|
@ -122,7 +124,7 @@ install(
|
|||
|
||||
install(
|
||||
DIRECTORY
|
||||
${ARANGODB_APPS_DIRECTORY}
|
||||
${ARANGODB_FULL_APPS_DIRECTORY}
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_LOCALSTATEDIR}/lib
|
||||
)
|
||||
|
|
|
@ -12,13 +12,21 @@ endif()
|
|||
# Global macros ----------------------------------------------------------------
|
||||
macro (generate_root_config name)
|
||||
FILE(READ ${PROJECT_SOURCE_DIR}/etc/arangodb3/${name}.conf.in FileContent)
|
||||
|
||||
STRING(REPLACE "@PKGDATADIR@" "@ROOTDIR@/${CMAKE_INSTALL_DATAROOTDIR_ARANGO}"
|
||||
FileContent "${FileContent}")
|
||||
STRING(REPLACE "@LOCALSTATEDIR@" "@ROOTDIR@/var"
|
||||
FileContent "${FileContent}")
|
||||
STRING(REPLACE "@SBINDIR@" "@ROOTDIR@/bin"
|
||||
if (DARWIN)
|
||||
# var will be redirected to ~ for the macos bundle
|
||||
STRING(REPLACE "@LOCALSTATEDIR@/" "@HOME@${INC_CPACK_ARANGO_STATE_DIR}/"
|
||||
FileContent "${FileContent}")
|
||||
else ()
|
||||
STRING(REPLACE "@LOCALSTATEDIR@/" "@ROOTDIR@${CPACK_LOCALSTATEDIR}/"
|
||||
FileContent "${FileContent}")
|
||||
endif ()
|
||||
|
||||
STRING(REPLACE "@SBINDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SBINDIR}"
|
||||
FileContent "${FileContent}")
|
||||
STRING(REPLACE "@LIBEXECDIR@/arangodb3" "@ROOTDIR@/bin"
|
||||
STRING(REPLACE "@LIBEXECDIR@/arangodb3" "@ROOTDIR@/${CMAKE_INSTALL_BINDIR}"
|
||||
FileContent "${FileContent}")
|
||||
STRING(REPLACE "@SYSCONFDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}"
|
||||
FileContent "${FileContent}")
|
||||
|
@ -35,6 +43,7 @@ macro (generate_root_config name)
|
|||
STRING(REGEX REPLACE "[\r\n]file =" "\n# file ="
|
||||
FileContent "${FileContent}")
|
||||
endif ()
|
||||
|
||||
FILE(WRITE ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}/${name}.conf "${FileContent}")
|
||||
endmacro ()
|
||||
|
||||
|
@ -144,8 +153,7 @@ macro(to_native_path sourceVarName)
|
|||
if (MSVC)
|
||||
string(REGEX REPLACE "/" "\\\\\\\\" "myVar" "${${sourceVarName}}" )
|
||||
else()
|
||||
set(myVar "${${sourceVarName}}")
|
||||
string(REGEX REPLACE "//*" "/" "myVar" "${${sourceVarName}}" )
|
||||
endif()
|
||||
|
||||
set("INC_${sourceVarName}" ${myVar})
|
||||
endmacro()
|
||||
|
|
|
@ -12,11 +12,28 @@ configure_file("${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/Info.plist.in"
|
|||
set(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist")
|
||||
|
||||
set(CPACK_BUNDLE_PREFIX "Contents/MacOS")
|
||||
set(CPACK_INSTALL_PREFIX "${CPACK_PACKAGE_NAME}.app/${CPACK_BUNDLE_PREFIX}/${CMAKE_INSTALL_PREFIX}")
|
||||
set(CPACK_INSTALL_PREFIX "${CPACK_PACKAGE_NAME}.app/${CPACK_BUNDLE_PREFIX}${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
set(INST_USR_LIBDIR "/Library/ArangoDB")
|
||||
set(CPACK_ARANGO_PID_DIR "/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALSTATEDIR}/run")
|
||||
set(CPACK_ARANGO_DATA_DIR "${INST_USR_LIBDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALSTATEDIR}/lib/arangodb3")
|
||||
set(CPACK_ARANGO_LOG_DIR "${INST_USR_LIBDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALSTATEDIR}/log/arangodb3")
|
||||
set(CPACK_ARANGO_STATE_DIR "${INST_USR_LIBDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALSTATEDIR}")
|
||||
|
||||
set(CPACK_ARANGODB_APPS_DIRECTORY "${INST_USR_LIBDIR}${ARANGODB_APPS_DIRECTORY}")
|
||||
|
||||
to_native_path("CPACK_ARANGODB_APPS_DIRECTORY")
|
||||
message("CPACK_ARANGODB_APPS_DIRECTORY: ${CPACK_ARANGODB_APPS_DIRECTORY} INC_CPACK_ARANGODB_APPS_DIRECTORY: ${INC_CPACK_ARANGODB_APPS_DIRECTORY} ARANGODB_APPS_DIRECTORY ${ARANGODB_APPS_DIRECTORY}")
|
||||
to_native_path("CMAKE_INSTALL_DATAROOTDIR_ARANGO")
|
||||
to_native_path("CPACK_ARANGO_PID_DIR")
|
||||
to_native_path("CPACK_ARANGO_DATA_DIR")
|
||||
to_native_path("CPACK_ARANGO_STATE_DIR")
|
||||
to_native_path("CPACK_ARANGO_LOG_DIR")
|
||||
|
||||
configure_file("${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/arangodb-cli.sh.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh"
|
||||
@ONLY)
|
||||
|
||||
set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh")
|
||||
|
||||
add_custom_target(package-arongodb-server-bundle
|
||||
|
|
Loading…
Reference in New Issue