Skip to content
Snippets Groups Projects
Select Git revision
  • ab4009ff46136fa7f45e38690b58b2579d070585
  • master default protected
  • release/beta-qt-202301101210
  • stable
  • release/beta-qt-202211182015
  • release/beta-qt-202211181752
  • release/beta-qt-202211171508
  • release/beta-qt-202211081754
  • release/beta-qt-202211071518
  • release/beta-qt-202210270957
  • release/beta-qt-202210071648
  • release/beta-qt-202209291549
  • release/beta-qt-202209011129
  • release/beta-qt-202208261640
  • release/beta-qt-202208241511
  • release/beta-qt-202208231849
  • release/beta-qt-202208091525
  • release/beta-qt-202207191241
  • release/beta-qt-202207181708
  • release/beta-qt-202207131914
  • release/beta-qt-202207131513
  • android/release_358
  • android/release_357
  • android/release_356
  • android/release_355
  • android/release_354
  • 20221220.0956.79e1207
  • android/release_353
  • android/release_352
  • android/release_350
  • android/release_349
  • android/release_348
  • android/release_347
  • 20221031.1308.130cc26
  • android/release_346
  • android/release_345
  • android/release_344
  • android/release_343
  • android/release_342
  • android/release_341
  • android/release_340
41 results

install.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    install.sh 2.16 KiB
    #!/usr/bin/env bash
    
    # Build and install to a local prefix under this repository.
    export OSTYPE
    
    # Flags:
    
      # -g: install globally instead for all users
      # -s: link everything statically, no D-Bus communication. More likely to work!
      # -c: client to build
      # -p: number of processors to use
    
    set -ex
    
    global=false
    static=''
    client=''
    proc=''
    while getopts gsc:p: OPT; do
      case "$OPT" in
        g)
          global='true'
        ;;
        s)
          static='-DENABLE_STATIC=true'
        ;;
        c)
          client="${OPTARG}"
        ;;
        p)
          proc="${OPTARG}"
        ;;
        \?)
          exit 1
        ;;
      esac
    done
    
    make_install() {
      if $1; then
        sudo make install
        # Or else the next non-sudo install will fail, because this generates some
        # root owned files like install_manifest.txt under the build directory.
        sudo chown -R "$USER" .
      else
        make install
      fi
    }
    
    TOP="$(pwd)"
    INSTALL="${TOP}/install"
    
    if $global; then
        BUILDDIR="build-global"
    else
        BUILDDIR="build-local"
    fi
    
    cd "${TOP}/daemon"
    DAEMON="$(pwd)"
    cd contrib
    mkdir -p native
    cd native
    ../bootstrap
    make
    cd "${DAEMON}"
    ./autogen.sh
    
    #keep shared Lib on MAC OSX
    if [[ "$OSTYPE" != "darwin"* ]]; then
        sharedLib="--disable-shared"
    fi
    
    if $global; then
      ./configure $sharedLib $CONFIGURE_FLAGS
    else
      ./configure $sharedLib $CONFIGURE_FLAGS --prefix="${INSTALL}/daemon"
    fi
    make -j${proc}
    make_install $global
    
    cd "${TOP}/lrc"
    mkdir -p ${BUILDDIR}
    cd ${BUILDDIR}
    if $global; then
      cmake .. -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_BUILD_TYPE=Debug $static
    else
      cmake ..  -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH \
                -DCMAKE_BUILD_TYPE=Debug \
                -DCMAKE_INSTALL_PREFIX="${INSTALL}/lrc" \
                -DRING_BUILD_DIR="${DAEMON}/src" $static
    fi
    make -j${proc}
    make_install $global
    
    cd "${TOP}/${client}"
    mkdir -p ${BUILDDIR}
    cd ${BUILDDIR}
    if $global; then
      cmake .. -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH $static
    else
      cmake ..  -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH \
                -DCMAKE_INSTALL_PREFIX="${INSTALL}/${client}" \
                -DRINGTONE_DIR="${INSTALL}/daemon/share/ring/ringtones" \
                -DLibRingClient_DIR="${INSTALL}/lrc/lib/cmake/LibRingClient" $static
    fi
    make -j${proc}
    make_install $global