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)`"
|
ROOTDIR="`(cd \`dirname $0\` && pwd)`"
|
||||||
# create start script
|
# 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
|
for script in $SCRIPTS; do
|
||||||
base="`basename $script`"
|
base="`basename $script`"
|
||||||
|
@ -10,10 +14,10 @@ for script in $SCRIPTS; do
|
||||||
(
|
(
|
||||||
echo "#!/bin/bash"
|
echo "#!/bin/bash"
|
||||||
echo
|
echo
|
||||||
echo "export ROOTDIR=\"${ROOTDIR}/@CMAKE_INSTALL_PREFIX@\""
|
echo "export ROOTDIR=\"${ROOTDIR}@CMAKE_INSTALL_PREFIX@\""
|
||||||
echo
|
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.$$
|
) > ${ROOTDIR}/$base.$$
|
||||||
|
|
||||||
chmod 755 ${ROOTDIR}/$base.$$
|
chmod 755 ${ROOTDIR}/$base.$$
|
||||||
|
@ -22,7 +26,7 @@ done
|
||||||
|
|
||||||
# start the server
|
# 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
|
if [ -f "${PIDFILE}" ]; then
|
||||||
result=`
|
result=`
|
||||||
|
@ -39,7 +43,8 @@ EOF
|
||||||
fi
|
fi
|
||||||
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}"
|
${ROOTDIR}/arangod --daemon --pid-file "${PIDFILE}"
|
||||||
|
|
||||||
# create some information for the user
|
# create some information for the user
|
||||||
|
@ -51,10 +56,10 @@ INFOFILE="/tmp/ArangoDB-CLI.info.$$"
|
||||||
echo "ArangoDB server has been started"
|
echo "ArangoDB server has been started"
|
||||||
echo ""
|
echo ""
|
||||||
echo "The database directory is located at"
|
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 ""
|
||||||
echo "The log file is located at"
|
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 ""
|
||||||
echo "You can access the server using a browser at 'http://127.0.0.1:8529/'"
|
echo "You can access the server using a browser at 'http://127.0.0.1:8529/'"
|
||||||
echo "or start the ArangoDB shell"
|
echo "or start the ArangoDB shell"
|
||||||
|
@ -69,7 +74,7 @@ INFOFILE="/tmp/ArangoDB-CLI.info.$$"
|
||||||
|
|
||||||
/usr/bin/osascript <<-EOF
|
/usr/bin/osascript <<-EOF
|
||||||
tell application "Terminal"
|
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
|
activate
|
||||||
end tell
|
end tell
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -32,13 +32,15 @@ set(ARANGODB_DB_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/${CMAKE_PROJECT_NAME}")
|
||||||
FILE(MAKE_DIRECTORY ${ARANGODB_DB_DIRECTORY})
|
FILE(MAKE_DIRECTORY ${ARANGODB_DB_DIRECTORY})
|
||||||
|
|
||||||
# apps
|
# apps
|
||||||
set(ARANGODB_APPS_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/${CMAKE_PROJECT_NAME}-apps")
|
set(ARANGODB_APPS_DIRECTORY "/var/lib/${CMAKE_PROJECT_NAME}-apps")
|
||||||
FILE(MAKE_DIRECTORY "${ARANGODB_APPS_DIRECTORY}")
|
set(ARANGODB_FULL_APPS_DIRECTORY "${PROJECT_BINARY_DIR}${ARANGODB_APPS_DIRECTORY}")
|
||||||
|
FILE(MAKE_DIRECTORY "${ARANGODB_FULL_APPS_DIRECTORY}")
|
||||||
|
|
||||||
# logs
|
# logs
|
||||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/${CMAKE_PROJECT_NAME}")
|
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/${CMAKE_PROJECT_NAME}")
|
||||||
|
|
||||||
set(INSTALL_ICU_DT_DEST "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
|
set(INSTALL_ICU_DT_DEST "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
|
||||||
|
|
||||||
include(InstallMacros)
|
include(InstallMacros)
|
||||||
# install ----------------------------------------------------------------------
|
# install ----------------------------------------------------------------------
|
||||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
|
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
|
||||||
|
@ -122,7 +124,7 @@ install(
|
||||||
|
|
||||||
install(
|
install(
|
||||||
DIRECTORY
|
DIRECTORY
|
||||||
${ARANGODB_APPS_DIRECTORY}
|
${ARANGODB_FULL_APPS_DIRECTORY}
|
||||||
DESTINATION
|
DESTINATION
|
||||||
${CMAKE_INSTALL_LOCALSTATEDIR}/lib
|
${CMAKE_INSTALL_LOCALSTATEDIR}/lib
|
||||||
)
|
)
|
||||||
|
|
|
@ -12,13 +12,21 @@ endif()
|
||||||
# Global macros ----------------------------------------------------------------
|
# Global macros ----------------------------------------------------------------
|
||||||
macro (generate_root_config name)
|
macro (generate_root_config name)
|
||||||
FILE(READ ${PROJECT_SOURCE_DIR}/etc/arangodb3/${name}.conf.in FileContent)
|
FILE(READ ${PROJECT_SOURCE_DIR}/etc/arangodb3/${name}.conf.in FileContent)
|
||||||
|
|
||||||
STRING(REPLACE "@PKGDATADIR@" "@ROOTDIR@/${CMAKE_INSTALL_DATAROOTDIR_ARANGO}"
|
STRING(REPLACE "@PKGDATADIR@" "@ROOTDIR@/${CMAKE_INSTALL_DATAROOTDIR_ARANGO}"
|
||||||
FileContent "${FileContent}")
|
FileContent "${FileContent}")
|
||||||
STRING(REPLACE "@LOCALSTATEDIR@" "@ROOTDIR@/var"
|
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}")
|
FileContent "${FileContent}")
|
||||||
STRING(REPLACE "@SBINDIR@" "@ROOTDIR@/bin"
|
STRING(REPLACE "@LIBEXECDIR@/arangodb3" "@ROOTDIR@/${CMAKE_INSTALL_BINDIR}"
|
||||||
FileContent "${FileContent}")
|
|
||||||
STRING(REPLACE "@LIBEXECDIR@/arangodb3" "@ROOTDIR@/bin"
|
|
||||||
FileContent "${FileContent}")
|
FileContent "${FileContent}")
|
||||||
STRING(REPLACE "@SYSCONFDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}"
|
STRING(REPLACE "@SYSCONFDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}"
|
||||||
FileContent "${FileContent}")
|
FileContent "${FileContent}")
|
||||||
|
@ -35,6 +43,7 @@ macro (generate_root_config name)
|
||||||
STRING(REGEX REPLACE "[\r\n]file =" "\n# file ="
|
STRING(REGEX REPLACE "[\r\n]file =" "\n# file ="
|
||||||
FileContent "${FileContent}")
|
FileContent "${FileContent}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
FILE(WRITE ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}/${name}.conf "${FileContent}")
|
FILE(WRITE ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}/${name}.conf "${FileContent}")
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
|
||||||
|
@ -144,8 +153,7 @@ macro(to_native_path sourceVarName)
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
string(REGEX REPLACE "/" "\\\\\\\\" "myVar" "${${sourceVarName}}" )
|
string(REGEX REPLACE "/" "\\\\\\\\" "myVar" "${${sourceVarName}}" )
|
||||||
else()
|
else()
|
||||||
set(myVar "${${sourceVarName}}")
|
string(REGEX REPLACE "//*" "/" "myVar" "${${sourceVarName}}" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set("INC_${sourceVarName}" ${myVar})
|
set("INC_${sourceVarName}" ${myVar})
|
||||||
endmacro()
|
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_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist")
|
||||||
|
|
||||||
set(CPACK_BUNDLE_PREFIX "Contents/MacOS")
|
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"
|
configure_file("${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/arangodb-cli.sh.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh"
|
"${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh"
|
||||||
@ONLY)
|
@ONLY)
|
||||||
|
|
||||||
set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh")
|
set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh")
|
||||||
|
|
||||||
add_custom_target(package-arongodb-server-bundle
|
add_custom_target(package-arongodb-server-bundle
|
||||||
|
|
Loading…
Reference in New Issue