Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorv.greshilov <v.greshilov@msk-wifi-25fap2-v_greshilov-s.subbotin.mail.msk>2017-12-05 17:07:32 +0300
committerIlya Zverev <ilya@zverev.info>2017-12-27 15:13:51 +0300
commit30d9c0b6f331107d23639e7444abb42718fa3e4c (patch)
treeae8e00d4348310c84585c367da83d0424d11002c /tools
parent50398ba6fef10762223766aba0b8942e5e4a5299 (diff)
[cmake] Change build_omim.sh and remove old .sh scripts
Fix description Fix gcc for linux Fix devtoolset-6 Fix error log Add custom target build Targets as positional arguments, default build dir: ../ Fix find_generator_tool.sh Fix designer and desktop tool names
Diffstat (limited to 'tools')
-rwxr-xr-xtools/unix/build_designer.sh70
-rwxr-xr-xtools/unix/build_omim.sh156
-rwxr-xr-xtools/unix/cmake_omim.sh109
-rwxr-xr-xtools/unix/find_generator_tool.sh6
4 files changed, 64 insertions, 277 deletions
diff --git a/tools/unix/build_designer.sh b/tools/unix/build_designer.sh
deleted file mode 100755
index b19125002a..0000000000
--- a/tools/unix/build_designer.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/bash
-set -e -u
-
-# Prepare environment variables which specify app version and codebase sha
-APP_VERSION=UNKNOWN
-[ $# -gt 0 ] && APP_VERSION=$1
-DESIGNER_CODEBASE_SHA=$(git log -1 --format="%H")
-OMIM_PATH="$(cd "${OMIM_PATH:-$(dirname "$0")/../..}"; pwd)"
-DATA_PATH="$OMIM_PATH/data"
-BUILD_PATH="$OMIM_PATH/out"
-RELEASE_PATH="$BUILD_PATH/release"
-
-source "$OMIM_PATH/tools/autobuild/detect_qmake.sh"
-
-# Print designer_version.h file
-cat > "$OMIM_PATH/designer_version.h" <<DVER
-#pragma once
-#define DESIGNER_APP_VERSION "$APP_VERSION"
-#define DESIGNER_CODEBASE_SHA "$DESIGNER_CODEBASE_SHA"
-#define DESIGNER_DATA_VERSION ""
-DVER
-
-rm -rf "$RELEASE_PATH"
-(
- cd "$OMIM_PATH"
- ${QMAKE-qmake} omim.pro -r -spec macx-clang CONFIG+=release CONFIG+=x86_64 CONFIG+=map_designer_standalone CONFIG+=no-tests
- TMP_FILE="build_error.log"
- if ! make -j8 2> "$TMP_FILE"; then
- echo '--------------------'
- cat "$TMP_FILE"
- exit 1
- fi
-)
-
-# Prepare app package by copying Qt, Kothic, Skin Generator, Style tests
-for i in skin_generator style_tests generator_tool MAPS.ME.Designer; do
- "$(dirname "$QMAKE")/macdeployqt" "$RELEASE_PATH/$i.app"
- [ -z "${QTPATH-}" ] && QTPATH="$(otool -L "$RELEASE_PATH/$i.app/Contents/Frameworks/QtGui.framework/QtGui" | grep QtCore | sed -e 's/^[[:space:]]*\(.*\)lib\/QtCore.framework.*$/\1/')"
- python "$OMIM_PATH/tools/macdeployqtfix/macdeployqtfix.py" -q -nl "$RELEASE_PATH/$i.app/Contents/MacOS/$i" "$QTPATH"
-done
-
-MAC_RESOURCES="$RELEASE_PATH/MAPS.ME.Designer.app/Contents/Resources"
-cp -r "$RELEASE_PATH/style_tests.app" "$MAC_RESOURCES/style_tests.app"
-cp -r "$RELEASE_PATH/skin_generator.app" "$MAC_RESOURCES/skin_generator.app"
-cp -r "$RELEASE_PATH/generator_tool.app" "$MAC_RESOURCES/generator_tool.app"
-cp -r "$OMIM_PATH/tools/kothic" "$MAC_RESOURCES/kothic"
-cp "$OMIM_PATH/tools/python/stylesheet/drules_info.py" "$MAC_RESOURCES/kothic/src/drules_info.py"
-cp "$OMIM_PATH/3party/protobuf/protobuf-3.3.0-py2.7.egg" "$MAC_RESOURCES/kothic"
-cp "$OMIM_PATH/tools/python/recalculate_geom_index.py" "$MAC_RESOURCES/recalculate_geom_index.py"
-cp "$OMIM_PATH/tools/python/generate_styles_override.py" "$MAC_RESOURCES/generate_styles_override.py"
-
-# Copy all drules and resources (required for test environment)
-rm -rf $MAC_RESOURCES/drules_proto*
-rm -rf $MAC_RESOURCES/resources-*
-for i in mdpi hdpi xhdpi xxhdpi 6plus; do
- cp -r $OMIM_PATH/data/resources-${i}_design/ $MAC_RESOURCES/resources-${i}_design/
-done
-cp $OMIM_PATH/data/drules_proto_design.bin $MAC_RESOURCES/drules_proto_design.bin
-for i in resources-default countries-strings cuisine-strings WorldCoasts_obsolete.mwm countries.txt cuisines.txt countries_obsolete.txt packed_polygons.bin packed_polygons_obsolete.bin; do
- cp -r $OMIM_PATH/data/$i $MAC_RESOURCES/
-done
-
-# Build DMG image
-rm -rf "$BUILD_PATH/deploy"
-mkdir "$BUILD_PATH/deploy"
-cp -r "$RELEASE_PATH/MAPS.ME.Designer.app" "$BUILD_PATH/deploy/MAPS.ME.Designer.app"
-cp -r "$DATA_PATH/styles" "$BUILD_PATH/deploy/styles"
-
-DMG_NAME=MAPS.ME.Designer.$APP_VERSION
-hdiutil create -size 640m -volname $DMG_NAME -srcfolder "$BUILD_PATH/deploy" -ov -format UDZO "$BUILD_PATH/$DMG_NAME.dmg"
diff --git a/tools/unix/build_omim.sh b/tools/unix/build_omim.sh
index 6282a34a51..f5c020d021 100755
--- a/tools/unix/build_omim.sh
+++ b/tools/unix/build_omim.sh
@@ -3,9 +3,13 @@ set -u -e
OPT_DEBUG=
OPT_RELEASE=
-OPT_OSRM=
OPT_CLEAN=
-while getopts ":cdro" opt; do
+OPT_SKIP_DESKTOP=
+OPT_DESIGNER=
+OPT_TARGET=
+OPT_PATH=
+
+while getopts ":cdrstp:" opt; do
case $opt in
d)
OPT_DEBUG=1
@@ -13,29 +17,44 @@ while getopts ":cdro" opt; do
r)
OPT_RELEASE=1
;;
- o)
- OPT_OSRM=1
- ;;
c)
OPT_CLEAN=1
;;
+ s)
+ OPT_SKIP_DESKTOP=1
+ CMAKE_CONFIG="${CMAKE_CONFIG:-} -DSKIP_DESKTOP=ON"
+ ;;
+ t)
+ OPT_DESIGNER=1
+ ;;
+ p)
+ OPT_PATH="$OPTARG"
+ ;;
*)
- echo "This tool builds omim and osrm-backend."
- echo "Usage: $0 [-d] [-r] [-o] [-c]"
+ echo "This tool builds omim"
+ echo "Usage: $0 [-d] [-r] [-c] [-s] [-g] [-p PATH] [target1 target2 ...]"
echo
echo -e "-d\tBuild omim-debug"
echo -e "-r\tBuild omim-release"
- echo -e "-o\tBuild osrm-backend"
echo -e "-c\tClean before building"
- echo
- echo "By default release is built. Specify TARGET and OSRM_TARGET if needed."
+ echo -e "-s\tSkip desktop app building"
+ echo -e "-t\tBuild designer tool (only for MacOS X platform)"
+ echo -e "-p\tDirectory for built binaries"
+ echo "By default both configurations is built."
exit 1
;;
esac
done
+[ -n "$OPT_DESIGNER" -a -n "$OPT_SKIP_DESKTOP" ] &&
+echo "Can't skip desktop and build designer tool simultaneously" &&
+exit 2
+
+OPT_TARGET=${@:$OPTIND}
+
# By default build everything
-if [ -z "$OPT_DEBUG$OPT_RELEASE$OPT_OSRM" ]; then
+if [ -z "$OPT_DEBUG$OPT_RELEASE" ]; then
+ OPT_DEBUG=1
OPT_RELEASE=1
fi
@@ -45,8 +64,7 @@ if ! grep "DEFAULT_URLS_JSON" "$OMIM_PATH/private.h" >/dev/null 2>/dev/null; the
exit 2
fi
-BOOST_PATH="${BOOST_PATH:-/usr/local/boost_1.54.0}"
-DEVTOOLSET_PATH=/opt/rh/devtoolset-3
+DEVTOOLSET_PATH=/opt/rh/devtoolset-6
if [ -d "$DEVTOOLSET_PATH" ]; then
export MANPATH=
source "$DEVTOOLSET_PATH/enable"
@@ -54,107 +72,57 @@ else
DEVTOOLSET_PATH=
fi
-# Find qmake, prefer qmake-qt5
-source "$OMIM_PATH/tools/autobuild/detect_qmake.sh"
-
-# Find cmake, prefer cmake3
-if [ ! -x "${CMAKE-}" ]; then
- CMAKE=cmake3
- if ! hash "$CMAKE" 2>/dev/null; then
- CMAKE=cmake
- fi
-fi
+# Find cmake
+source "$OMIM_PATH/tools/autobuild/detect_cmake.sh"
# OS-specific parameters
if [ "$(uname -s)" == "Darwin" ]; then
- SPEC=${SPEC:-macx-clang}
+ [ -n "$OPT_DESIGNER" -a "$(id -u)" != "0" ] \
+ && echo "To build designer tool you have to run this script with sudo" \
+ && exit 2
PROCESSES=$(sysctl -n hw.ncpu)
else
- SPEC=${SPEC-}
+ [ -n "$OPT_DESIGNER" ] \
+ && echo "Designer tool supported only on MacOS X platform" && exit 2
PROCESSES=$(nproc)
+ # Let linux version be built with gcc
+ CMAKE_CONFIG="${CMAKE_CONFIG:-} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++"
fi
-# Build one configuration into $TARGET or omim-build-{debug,release}
-build_conf()
+build()
{
CONF=$1
- DIRNAME="${TARGET:-$OMIM_PATH/../omim-build-$CONF}"
+ if [ -n "$OPT_PATH" ]; then
+ DIRNAME="$OPT_PATH/omim-build-$(echo "$CONF" | tr '[:upper:]' '[:lower:]')"
+ else
+ DIRNAME="$OMIM_PATH/../omim-build-$(echo "$CONF" | tr '[:upper:]' '[:lower:]')"
+ fi
[ -d "$DIRNAME" -a -n "$OPT_CLEAN" ] && rm -r "$DIRNAME"
-
if [ ! -d "$DIRNAME" ]; then
mkdir -p "$DIRNAME"
ln -s "$OMIM_PATH/data" "$DIRNAME/data"
fi
-
- (
- export BOOST_INCLUDEDIR="$BOOST_PATH/include"
- cd "$DIRNAME"
- "$QMAKE" "$OMIM_PATH/omim.pro" ${SPEC:+-spec $SPEC} CONFIG+=$CONF ${CONFIG+"CONFIG*=$CONFIG"}
- TMP_FILE="build_error.log"
- if ! make -j $PROCESSES 2> "$TMP_FILE"; then
+ cd "$DIRNAME"
+ TMP_FILE="build_error.log"
+ if [ -z "$OPT_DESIGNER" ]; then
+ "$CMAKE" "$OMIM_PATH" -DCMAKE_BUILD_TYPE="$CONF" ${CMAKE_CONFIG:-}
+ echo ""
+ if ! make $OPT_TARGET -j $PROCESSES 2> "$TMP_FILE"; then
echo '--------------------'
cat "$TMP_FILE"
exit 1
fi
- )
-}
-
-# Build some omim libraries for osrm backend
-build_conf_osrm()
-{
- CONF=$1
- DIRNAME="$2"
- mkdir -p "$DIRNAME"
- OSPEC="$SPEC"
- # OSRM is built with linux-clang spec
- [ "$OSPEC" == "linux-clang-libc++" ] && OSPEC=linux-clang
-
- (
- export BOOST_INCLUDEDIR="$BOOST_PATH/include"
- cd "$DIRNAME"
-
- if [[ -n "${USE_CMAKE-}" ]]; then
- DIRNAME="$DIRNAME/out/$CONF"
- mkdir -p "$DIRNAME"
- cd "$DIRNAME"
- "$CMAKE" "$OMIM_PATH"
- make routing routing_common indexer geometry coding base jansson -j $PROCESSES
- else
- "$QMAKE" "$OMIM_PATH/omim.pro" ${SPEC:+-spec $SPEC} "CONFIG+=$CONF osrm no-tests" ${CONFIG+"CONFIG*=$CONFIG"}
- make -j $PROCESSES
+ else
+ "$CMAKE" "$OMIM_PATH" -DCMAKE_BUILD_TYPE="$CONF" \
+ -DBUILD_DESIGNER:bool=True ${CMAKE_CONFIG:-}
+ if ! make package -j $PROCESSES 2> "$TMP_FILE"; then
+ echo '--------------------'
+ cat "$TMP_FILE"
+ exit 1
fi
- )
-}
-
-# Build OSRM Backend
-build_osrm()
-{
- OSRM_OMIM_CONF=$1
- # Making the first letter uppercase for CMake
- OSRM_CONF="$(echo ${OSRM_OMIM_CONF:0:1} | tr '[a-z]' '[A-Z]')${OSRM_OMIM_CONF:1}"
- BACKEND="$OMIM_PATH/3party/osrm/osrm-backend"
- OSRM_TARGET="${OSRM_TARGET:-${TARGET:-$OMIM_PATH/../osrm-backend-$OSRM_OMIM_CONF}}"
- [ -d "$OSRM_TARGET" -a -n "$OPT_CLEAN" ] && rm -r "$OSRM_TARGET"
- mkdir -p "$OSRM_TARGET"
- # First, build omim libraries
- build_conf_osrm $OSRM_OMIM_CONF "$OSRM_TARGET/omim-build"
- OSRM_OMIM_LIBS="$(cd "$OSRM_TARGET/omim-build/out/$OSRM_OMIM_CONF"; pwd)"
- (
- cd "$OSRM_TARGET"
- "$CMAKE" "-DBOOST_ROOT=$BOOST_PATH" -DCMAKE_BUILD_TYPE=$OSRM_CONF "-DOMIM_BUILD_PATH=$OSRM_OMIM_LIBS" "$BACKEND"
- make clean
- make
- )
-}
-
-build()
-{
- build_conf $1
- [ -n "$OPT_OSRM" ] && build_osrm $1
- return 0
+ fi
}
-[ -n "$OPT_DEBUG" ] && build debug
-[ -n "$OPT_RELEASE" ] && build release
-[ -n "$OPT_OSRM" -a -z "$OPT_DEBUG$OPT_RELEASE" ] && build_osrm release
+[ -n "$OPT_DEBUG" ] && build Debug
+[ -n "$OPT_RELEASE" ] && build Release
exit 0
diff --git a/tools/unix/cmake_omim.sh b/tools/unix/cmake_omim.sh
deleted file mode 100755
index 8010aa510d..0000000000
--- a/tools/unix/cmake_omim.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env bash
-
-set -u -e -x
-
-OPT_DEBUG=
-OPT_RELEASE=1
-OPT_OSRM=
-OPT_CLEAN=
-VERBOSE=
-while getopts ":cdrov" opt; do
- case $opt in
- d)
- OPT_DEBUG=1
- OPT_RELEASE=
- ;;
- r)
- OPT_RELEASE=1
- ;;
- o)
-# OPT_OSRM=1
- echo "OSRM build is not supported yet, try again later"
- exit 1
- ;;
- c)
- OPT_CLEAN=1
- ;;
- v)
- VERBOSE=1
- ;;
- *)
- echo "This tool builds omim and osrm-backend."
- echo "Usage: $0 [-d] [-r] [-o] [-c]"
- echo
- echo -e "-d\tBuild omim-debug"
- echo -e "-r\tBuild omim-release"
- echo -e "-o\tBuild osrm-backend"
- echo -e "-c\tClean before building"
- echo
- echo "By default release is built. Specify TARGET and OSRM_TARGET if needed."
- exit 1
- ;;
-
- esac
-done
-
-OMIM_PATH="$(cd "${OMIM_PATH:-$(dirname "$0")/../..}"; pwd)"
-
-check_private_h()
-{
- if ! grep "DEFAULT_URLS_JSON" "$OMIM_PATH/private.h" >/dev/null 2>/dev/null; then
- echo "Please run $OMIM_PATH/configure.sh"
- exit 2
- fi
-}
-
-set_platform_dependent_options()
-{
- if [ "$(uname -s)" == "Darwin" ]; then
- PROCESSES=$(sysctl -n hw.ncpu)
- else
- PROCESSES=$(nproc)
- export CC=clang
- export CXX=clang++
- fi
-}
-
-build_conf()
-{
- CONF=$1
- POSTFIX=$(echo "${CONF}" | tr '[:upper:]' '[:lower:]')
- echo $POSTFIX
- DIRNAME="${TARGET:-$OMIM_PATH/../omim-build-$POSTFIX}"
- [ -d "$DIRNAME" -a -n "$OPT_CLEAN" ] && rm -r "$DIRNAME"
-
- if [ ! -d "$DIRNAME" ]; then
- mkdir -p "$DIRNAME"
- ln -s "$OMIM_PATH/data" "$DIRNAME/data"
- fi
-
- TARGET="$DIRNAME/out/$POSTFIX"
- mkdir -p $TARGET
-
- cd "$TARGET"
- cmake "$OMIM_PATH" -DCMAKE_BUILD_TYPE=$CONF
- if [ $VERBOSE ]; then
- make -j $PROCESSES VERBOSE=1
- else
- make -j $PROCESSES
- fi
-}
-
-get_os_dependent_option() #(for_mac_os, for_linux)
-{
- if [ "$(uname -s)" == "Darwin" ]; then
- return $($1)
- else
- return $($2)
- fi
-
-}
-
-check_private_h
-set_platform_dependent_options
-echo $PROCESSES
-
-[ -n "$OPT_DEBUG" ] && build_conf Debug
-[ -n "$OPT_RELEASE" ] && build_conf Release
-
-exit 0
diff --git a/tools/unix/find_generator_tool.sh b/tools/unix/find_generator_tool.sh
index 3362603ed6..156ca53f12 100755
--- a/tools/unix/find_generator_tool.sh
+++ b/tools/unix/find_generator_tool.sh
@@ -11,9 +11,7 @@ OMIM_PATH="${OMIM_PATH:-$(cd "$(dirname "$0")/../.."; pwd)}"
if [ -z "${GENERATOR_TOOL-}" -o ! -x "${GENERATOR_TOOL-}" ]; then
IT_PATHS_ARRAY=()
for i in "${BUILD_PATH-}" "$OMIM_PATH" "$OMIM_PATH/.."/*omim*elease* "$OMIM_PATH/.."/*omim*ebug; do
- if [ -d "$i/out" ]; then
- IT_PATHS_ARRAY+=("$i/out/release/generator_tool" "$i/out/debug/generator_tool")
- fi
+ IT_PATHS_ARRAY+=("$i/generator_tool")
done
if [ -d "$OMIM_PATH/../omim-xcode-build" ]; then
@@ -28,5 +26,5 @@ if [ -z "${GENERATOR_TOOL-}" -o ! -x "${GENERATOR_TOOL-}" ]; then
done
fi
-[ -z ${GENERATOR_TOOL-} -o ! -x "${GENERATOR_TOOL-}" ] && fail "No generator_tool found in ${IT_PATHS_ARRAY[*]-${GENERATOR_TOOL-}}"
+[ -z "${GENERATOR_TOOL-}" -o ! -x "${GENERATOR_TOOL-}" ] && fail "No generator_tool found in ${IT_PATHS_ARRAY[*]-${GENERATOR_TOOL-}}"
echo "Using tool: $GENERATOR_TOOL"