123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- #!/bin/bash
- set -e
- CURDIR=$PWD
- SCRIPTDIR=$( cd $(dirname $0) ; pwd -P )
- SCRIPTNAME=$(basename $0)
- AVAILABLE_PROFILES="ivi common mobile"
- usage()
- {
- cat << EOF
- usage: $0 [OPTIONS]
- Create Qt development tools for certain Tizen profile
- OPTIONS:
- -h Show this message
- -b build architecture
- -c use cdn remote server (cdn.download.tizen.org) if available
- -d delete gbs repository cache (to download new version of Qt packages)
- -e create emulator version (if available)
- -f fast - do not recreate sysroot (only Qt cross compiation binaries update)
- -l List available profiles and corresponding build architectures
- -q qmake executable (default qmake in path)
- -p tizen profile
- examples:
- $0 -b i586 -p common
- $0 -b i586 -c -p ivi
- $0 -b armv7l -c -p mobile
- $0 -b i586 -e -p mobile
- $0 -b i586 -e -p -f -c mobile
- EOF
- exit
- }
- function load_profile_info() {
- source $SCRIPTDIR/$1/profile_include
- export PROFILE_DIR=$SCRIPTDIR/$1
- if [ "$2" == "1" ]; then
- echo -n " emulator available: "
- if [ "$AVAILABLE_BUILD_ARCHITECTURES_EMULATOR" == "" ]; then
- echo "no"
- else
- echo " yes"
- echo " emulator build architectures: $AVAILABLE_BUILD_ARCHITECTURES_EMULATOR"
- fi
- echo " profile build architectures: $AVAILABLE_BUILD_ARCHITECTURES"
- fi
-
- }
- show_profiles_info()
- {
- echo "Available profiles:"
- echo $AVAILABLE_PROFILES | sed "s/ /\n/gi" | sed "s/$/ /gi"
- echo ""
- echo "Detailed information:"
- for profile in $AVAILABLE_PROFILES; do
- echo "Profile: $profile"
- load_profile_info $profile 1
- done
- }
- validate_parameters() {
-
- if [ "$TIZEN_PROFILE_NAME" == "" ]; then
- echo "You need to pick Tizen profile"
- usage
- fi
- if [ "$BUILD_ARCHITECTURE" == "" ]; then
- echo "You need to pick build architecture"
- usage
- fi
-
- if ! `echo " $AVAILABLE_PROFILES " | grep -c " $TIZEN_PROFILE_NAME " &> /dev/null`; then
- echo "Profile name: $TIZEN_PROFILE_NAME not recognized"
- show_profiles_info
- exit 1
- fi
-
- load_profile_info $TIZEN_PROFILE_NAME
-
- if [ "$TIZEN_EMULATOR" == "1" ]; then
- if ! `echo ",$AVAILABLE_BUILD_ARCHITECTURES_EMULATOR," | grep -c ",$BUILD_ARCHITECTURE," &> /dev/null`; then
- echo "Build architecture: $BUILD_ARCHITECTURE not available for $TIZEN_PROFILE_NAME emulator"
- show_profiles_info
- exit 1
- fi
- else
- if ! `echo ",$AVAILABLE_BUILD_ARCHITECTURES," | grep -c ",$BUILD_ARCHITECTURE," &> /dev/null`; then
- echo "Build architecture: $BUILD_ARCHITECTURE not available for $TIZEN_PROFILE_NAME"
- show_profiles_info
- exit 1
- fi
- fi
-
- if [ "$QMAKE_EXECUTABLE" == "" ]; then
- if ! `type -p qmake &> /dev/null`; then
- echo "No qmake in path. Use -q parameter or put qmake in path."
- usage
- fi
- QMAKE_EXECUTABLE=$(type -p qmake)
- fi
-
- export QMAKE_EXECUTABLE=$( cd $(dirname $QMAKE_EXECUTABLE) ; pwd -P )/qmake
- }
- export CDN_PREFIX=""
- export TIZEN_EMULATOR="0"
- export QMAKE_EXECUTABLE=""
- export DELETE_GBS_CACHE="0"
- while getopts ":hb:cedflp:q:" opt; do
- case $opt in
- h)
- usage
- ;;
- b)
- export BUILD_ARCHITECTURE="$OPTARG"
- ;;
- c)
- CDN_PREFIX="cdn."
- ;;
- d)
- export DELETE_GBS_CACHE="1"
- ;;
- e)
- export TIZEN_EMULATOR="1"
- ;;
- f)
- export WITHOUT_RECREATING_SYSROOT="1"
- ;;
- l)
- show_profiles_info
- exit
- ;;
- p)
- export TIZEN_PROFILE_NAME="$OPTARG"
- ;;
- q)
- export QMAKE_EXECUTABLE="$OPTARG"
- ;;
- ?)
- echo "Invalid option: -$OPTARG"
- usage
- ;;
- esac
- done
- source $SCRIPTDIR/../common/qt_for_tizen_version
- validate_parameters
- export QT_DEVICE_MKSPECS=linux-g++-tizen
- if [ "$TIZEN_EMULATOR" == "1" ]; then
- export GBS_ROOT_DIR=$CURDIR/$TIZEN_PROFILE_NAME/GBS-ROOT-EMULATOR
- else
- export GBS_ROOT_DIR=$CURDIR/$TIZEN_PROFILE_NAME/GBS-ROOT
- fi
- export SYSROOT=$GBS_ROOT_DIR/local/BUILD-ROOTS/scratch.$BUILD_ARCHITECTURE.0
- export OUTPUT_FILE_NAME=$CURDIR/$TIZEN_PROFILE_NAME/$GBS_PROFILE_NAME.conf
- if [ "$CROSS_COMPILER" == "" ]; then
- if [ "$BUILD_ARCHITECTURE" == "i586" ]; then
- if [ -d $HOME/tizen-sdk/tools/i386-linux-gnueabi-gcc-4.5/bin ]; then
- export CROSS_COMPILER=$HOME/tizen-sdk/tools/i386-linux-gnueabi-gcc-4.5/bin/i386-linux-gnueabi-
- fi
- elif [ "$BUILD_ARCHITECTURE" == "armv7l" ]; then
- if [ -d $HOME/tizen-sdk/tools/arm-linux-gnueabi-gcc-4.5/bin ]; then
- export CROSS_COMPILER=$HOME/tizen-sdk/tools/arm-linux-gnueabi-gcc-4.5/bin/arm-linux-gnueabi-
- fi
- elif [ "$BUILD_ARCHITECTURE" == "x86_64" ]; then
- if `type gcc &> /dev/null`; then
- gcc -v 2>&1| grep -cq "Target: x86_64"
- if [ "$?" == "0" ]; then
- GCC_PATH=$(type -p gcc)
- GCC_DIR=$(dirname $GCC_PATH)
- export CROSS_COMPILER=$GCC_DIR/
- fi
- fi
- fi
- fi
- cat << EOF
- Configuration summary:
- AVAILABLE_PROFILES: $AVAILABLE_PROFILES
- TIZEN_PROFILE_NAME: $TIZEN_PROFILE_NAME
- TIZEN_EMULATOR: $TIZEN_EMULATOR
- BUILD_ARCHITECTURE: $BUILD_ARCHITECTURE
- CROSS_COMPILER: $CROSS_COMPILER
- QMAKE_EXECUTABLE: $QMAKE_EXECUTABLE
- AVAILABLE_BUILD_ARCHITECTURES: $AVAILABLE_BUILD_ARCHITECTURES
- AVAILABLE_BUILD_ARCHITECTURES_EMULATOR: $AVAILABLE_BUILD_ARCHITECTURES_EMULATOR
- CDN_PREFIX: $CDN_PREFIX
- WITHOUT_RECREATING_SYSROOT: $WITHOUT_RECREATING_SYSROOT
- GBS_PROFILE_NAME: $GBS_PROFILE_NAME
- BASE_REPO: $BASE_REPO
- MAIN_REPO: $MAIN_REPO
- QT_REPO: $QT_REPO
- GBS_ROOT_DIR: $GBS_ROOT_DIR
- QT_DEVICE_MKSPECS: $QT_DEVICE_MKSPECS
- GBS_CONF_NAME: $OUTPUT_FILE_NAME
- EOF
- cd $TIZEN_PROFILE_NAME
- if [ "$WITHOUT_RECREATING_SYSROOT" == "" ]; then
- $SCRIPTDIR/../common/create_rootstrap.sh
- fi
- $SCRIPTDIR/../common/create_cross_compilation_env.sh
|