diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b09bdf5b6..9ab0599396 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,6 +219,7 @@ elseif (APPLE) elseif (CMAKE_SYSTEM_NAME MATCHES ".*MacOS.*") set(MACOSX TRUE) endif () + find_program(BREW brew) endif () ################################################################################ diff --git a/Installation/Jenkins/build.sh b/Installation/Jenkins/build.sh index a4783c186b..c9e2b00d4e 100755 --- a/Installation/Jenkins/build.sh +++ b/Installation/Jenkins/build.sh @@ -125,7 +125,8 @@ MAKE=make PACKAGE_MAKE=make MAKE_PARAMS="" MAKE_CMD_PREFIX="" -CONFIGURE_OPTIONS="-DCMAKE_INSTALL_PREFIX=/ $CMAKE_OPENSSL" +CONFIGURE_OPTIONS="$CMAKE_OPENSSL" +INSTALL_PREFIX="/" MAINTAINER_MODE="-DUSE_MAINTAINER_MODE=off" TAR_SUFFIX="" @@ -249,6 +250,12 @@ while [ $# -gt 0 ]; do shift ;; + --prefix) + shift + INSTALL_PREFIX=$1 + shift + ;; + --buildDir) shift BUILD_DIR=$1 @@ -332,7 +339,7 @@ while [ $# -gt 0 ]; do done - +CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX}" if test -n "$LASTREV"; then lines=`git diff ${LASTREV}: ${COMPILE_MATTERS} | wc -l` diff --git a/Installation/MacOSX/Bundle/arangodb-cli.sh.in b/Installation/MacOSX/Bundle/arangodb-cli.sh.in index f27ea8b841..bac2008209 100755 --- a/Installation/MacOSX/Bundle/arangodb-cli.sh.in +++ b/Installation/MacOSX/Bundle/arangodb-cli.sh.in @@ -1,10 +1,10 @@ #!/bin/bash -ROOTDIR="`echo $0 | sed -e 's:/Contents/MacOS/ArangoDB-CLI::'`" +ROOTDIR="`echo $0 | sed -e 's:/@CPACK_BUNDLE_PREFIX@/ArangoDB-CLI::'`" # create start script -SCRIPTS="`( cd ${ROOTDIR}/Contents/MacOS/opt/arangodb && ls -1 {@CMAKE_INSTALL_BINDIR@,@CMAKE_INSTALL_SBINDIR@}/* )`" +SCRIPTS="`( cd ${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@ && ls -1 {@CMAKE_INSTALL_BINDIR@,@CMAKE_INSTALL_SBINDIR@}/* )`" for script in $SCRIPTS; do base="`basename $script`" @@ -12,19 +12,19 @@ for script in $SCRIPTS; do ( echo "#!/bin/bash" echo - echo "export ROOTDIR=\"${ROOTDIR}/Contents/MacOS/opt/arangodb\"" + echo "export ROOTDIR=\"${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@\"" echo echo "exec \"\${ROOTDIR}/$script\" -c \"\${ROOTDIR}/@CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@/${base}.conf\" \$*" - ) > ${ROOTDIR}/Contents/MacOS/$base.$$ + ) > ${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/$base.$$ - chmod 755 ${ROOTDIR}/Contents/MacOS/$base.$$ - mv ${ROOTDIR}/Contents/MacOS/$base.$$ ${ROOTDIR}/Contents/MacOS/$base + chmod 755 ${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/$base.$$ + mv ${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/$base.$$ ${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/$base done # start the server -PIDFILE="${ROOTDIR}/Contents/MacOS/opt/arangodb/var/run/arangod.pid" +PIDFILE="${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/run/arangod.pid" if [ -f "${PIDFILE}" ]; then result=` @@ -41,8 +41,8 @@ EOF fi fi -test -d "${ROOTDIR}/Contents/MacOS/opt/arangodb/var/run" || mkdir "${ROOTDIR}/Contents/MacOS/opt/arangodb/var/run" -${ROOTDIR}/Contents/MacOS/arangod --daemon --pid-file "${PIDFILE}" +test -d "${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/run" || mkdir "${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/run" +${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/arangod --daemon --pid-file "${PIDFILE}" # create some information for the user @@ -52,14 +52,14 @@ INFOFILE="/tmp/ArangoDB-CLI.info.$$" echo "ArangoDB server has been started" echo "" echo "The database directory is located at" - echo " '${ROOTDIR}/Contents/MacOS/opt/arangodb/var/lib/arangodb3'" + echo " '${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/lib/arangodb3'" echo "" echo "The log file is located at" - echo " '${ROOTDIR}/Contents/MacOS/opt/arangodb/var/log/arangodb3/arangod.log'" + echo " '${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/log/arangodb3/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" - echo " '${ROOTDIR}/Contents/MacOS/arangosh'" + echo " '${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/arangosh'" echo "" echo "Switching to log-file now, killing this windows will NOT stop the server." echo "" @@ -71,6 +71,6 @@ INFOFILE="/tmp/ArangoDB-CLI.info.$$" /usr/bin/osascript <<-EOF tell application "Terminal" activate - do script "clear && cat $INFOFILE && rm $INFOFILE && sleep 20 && exec tail -1 -f ${ROOTDIR}/Contents/MacOS/opt/arangodb/var/log/arangodb3/arangod.log" + do script "clear && cat $INFOFILE && rm $INFOFILE && sleep 20 && exec tail -1 -f ${ROOTDIR}/@CPACK_BUNDLE_PREFIX@/@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LOCALSTATEDIR@/log/arangodb3/arangod.log" end tell EOF diff --git a/cmake/FindOpenSSL.cmake b/cmake/FindOpenSSL.cmake index 01586506b7..58518b8f75 100644 --- a/cmake/FindOpenSSL.cmake +++ b/cmake/FindOpenSSL.cmake @@ -54,6 +54,16 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) +if (APPLE AND BREW AND NOT OPENSSL_ROOT_DIR) + message("searching openssl with brew (${BREW})") + # if we have a brew openssl, prefer it over the elderly system one. + execute_process(OUTPUT_VARIABLE BREW_ROOT + OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND ${BREW} --prefix) + set(OPENSSL_ROOT_DIR "${BREW_ROOT}/opt/openssl") + message("auto-set OPENSSL_ROOT_DIR to: ${OPENSSL_ROOT_DIR}") +endif () + if (UNIX) find_package(PkgConfig QUIET) pkg_check_modules(_OPENSSL openssl) diff --git a/cmake/packages/bundle.cmake b/cmake/packages/bundle.cmake index abb78bbb1c..bbf370f485 100644 --- a/cmake/packages/bundle.cmake +++ b/cmake/packages/bundle.cmake @@ -11,6 +11,9 @@ set(CPACK_BUNDLE_ICON "${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bund configure_file("${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/Info.plist.in" "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") 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}") + configure_file("${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/arangodb-cli.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/arangodb-cli.sh" @ONLY) diff --git a/scripts/build-bundle.sh b/scripts/build-bundle.sh index beae510861..b3976c767e 100755 --- a/scripts/build-bundle.sh +++ b/scripts/build-bundle.sh @@ -12,6 +12,7 @@ cd ${DIR}/.. --parallel 5 \ --package Bundle \ --buildDir build-bundle \ + --prefix "/opt/arangodb" --targetDir /var/tmp/ \ --clang