Merge https://github.com/hrydgard/ppsspp
[libretro-ppsspp.git] / b.sh
blob94e16484c9ddfd90182fa85e7c2ba1c73df09081
1 #!/bin/bash
2 CMAKE=1
3 MAKE_JOBS=4
4 # Check Blackberry NDK
5 BB_OS=`cat ${QNX_TARGET}/etc/qversion 2>/dev/null`
6 if [ ! -z "$BB_OS" ]; then
7 CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=Blackberry/bb.toolchain.cmake -DBLACKBERRY=${BB_OS} ${CMAKE_ARGS}"
8 DEBUG_ARGS="-devMode -debugToken ${QNX_CONFIGURATION}/../debugtoken.bar"
9 PACKAGE=1
10 TARGET_OS=Blackberry
13 # Check Symbian NDK
14 if [ ! -z "$EPOCROOT" ]; then
15 QMAKE_ARGS="-spec symbian-sbsv2 ${QMAKE_ARGS}"
16 CMAKE=0
17 PACKAGE=1
18 MAKE_OPT="release-gcce ${MAKE_OPT}"
19 TARGET_OS=Symbian
22 # Check arguments
23 while test $# -gt 0
25 case "$1" in
26 --qt) echo "Qt enabled"
27 CMAKE=0
29 --ios) CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=ios/ios.toolchain.cmake -GXcode ${CMAKE_ARGS}"
30 TARGET_OS=iOS
31 PACKAGE=1
33 --android) CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=android/android.toolchain.cmake ${CMAKE_ARGS}"
34 TARGET_OS=Android
35 PACKAGE=1
37 --simulator) echo "Simulator mode enabled"
38 CMAKE_ARGS="-DSIMULATOR=ON ${CMAKE_ARGS}"
40 --release)
41 CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS}"
42 QMAKE_ARGS="CONFIG+=release ${QMAKE_ARGS}"
44 --debug)
45 CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug ${CMAKE_ARGS}"
46 QMAKE_ARGS="CONFIG+=debug ${QMAKE_ARGS}"
48 --system-ffmpeg)
49 QMAKE_ARGS="CONFIG+=system_ffmpeg ${QMAKE_ARGS}"
51 --headless) echo "Headless mode enabled"
52 CMAKE_ARGS="-DHEADLESS=ON ${CMAKE_ARGS}"
54 --unittest) echo "Build unittest"
55 CMAKE_ARGS="-DUNITTEST=ON ${CMAKE_ARGS}"
57 --no-package) echo "Packaging disabled"
58 PACKAGE=0
60 --release-package) echo "Blackberry release package enabled"
61 if [ ! -f "Blackberry/build.txt" ]; then
62 echo "1" > "Blackberry/build.txt"
64 DEBUG_ARGS="-buildId ../Blackberry/build.txt"
66 --*) echo "Bad option: $1"
67 exit 1
69 *) MAKE_OPT="$1 ${MAKE_OPT}"
71 esac
72 shift
73 done
75 if [ ! -z "$TARGET_OS" ]; then
76 echo "Building for $TARGET_OS"
77 BUILD_DIR="$(tr [A-Z] [a-z] <<< build-"$TARGET_OS")"
78 # HACK (doesn't like shadowed dir)
79 if [ "$TARGET_OS" == "Symbian" ]; then
80 BUILD_DIR="Qt"
81 # Temporarily limiting memory usage for automated builds.
82 MAKE_JOBS=2
84 else
85 echo "Building for native host."
86 if [ "$CMAKE" == "0" ]; then
87 BUILD_DIR="build-qt"
88 else
89 BUILD_DIR="build"
93 # Strict errors. Any non-zero return exits this script
94 set -e
96 mkdir -p ${BUILD_DIR}
97 pushd ${BUILD_DIR}
99 if [ "$CMAKE" == "1" ]; then
100 cmake $HEADLESS $CMAKE_ARGS .. | (grep -v "^-- " || true)
101 else
102 qmake $QMAKE_ARGS ../Qt/PPSSPPQt.pro
105 make -j$MAKE_JOBS $MAKE_OPT
107 if [ "$PACKAGE" == "1" ]; then
108 if [ "$TARGET_OS" == "Blackberry" ]; then
109 cp ../Blackberry/bar-descriptor.xml .
110 blackberry-nativepackager -package PPSSPP.bar bar-descriptor.xml $DEBUG_ARGS
111 elif [ "$TARGET_OS" == "Symbian" ]; then
112 make sis
113 elif [ "$TARGET_OS" == "iOS" ]; then
114 xcodebuild -configuration Release
117 popd