Merge pull request #4663 from xsacha/master

Travis: add Blackberry. Improve Blackberry out-of-box compile.
This commit is contained in:
Henrik Rydgård 2013-11-28 07:37:01 -08:00
commit d5705e503c
8 changed files with 77 additions and 36 deletions

View file

@ -5,32 +5,51 @@ language: cpp
env:
- PPSSPP_BUILD_TYPE=Linux
- PPSSPP_BUILD_TYPE=Android
- PPSSPP_BUILD_TYPE=Blackberry
compiler:
- clang
- gcc
before_install:
- sudo add-apt-repository -y ppa:ubuntu-sdk-team/ppa
- sudo apt-get update
- sudo apt-get install cmake libsdl1.2-dev openjdk-7-jdk ant lib32z1-dev lib32stdc++6
- git submodule update --init --recursive
- if [ "$PPSSPP_BUILD_TYPE" == "Android" ]; then wget --timeout=30 http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -O ndk.tar.bz2 && tar -xf ndk.tar.bz2; fi
- sudo apt-get install lib32z1-dev lib32stdc++6 -qq
# Travis uses CMake 2.8.7. We require 2.8.8. Grab latest
- wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1-Linux-i386.sh
- chmod a+x cmake-2.8.12.1-Linux-i386.sh
- sudo ./cmake-2.8.12.1-Linux-i386.sh --skip-license --prefix=/usr
# Linux Setup
- if [ "$PPSSPP_BUILD_TYPE" == "Linux" ]; then sudo apt-get install libsdl1.2-dev -qq; fi
# Android NDK
- if [ "$PPSSPP_BUILD_TYPE" == "Android" ]; then
sudo apt-get install openjdk-7-jdk ant -qq &&
wget --timeout=30 http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -O ndk.tar.bz2 &&
tar -xf ndk.tar.bz2 &&
export ANDROID_HOME=$(pwd)/android-ndk-r9 NDK=$(pwd)/android-ndk-r9;
fi
- if [[ "$CXX" == *clang* ]]; then export NDK_TOOLCHAIN_VERSION=clang; fi
- export ANDROID_HOME=$(pwd)/android-ndk-r9 NDK=$(pwd)/android-ndk-r9
before_script:
- mkdir build-travis
- cd build-travis
- cmake -DHEADLESS=ON ..
- cd ..
# Blackberry NDK
- if [ "$PPSSPP_BUILD_TYPE" == "Blackberry" ]; then
BB_NDK=http://downloads.blackberry.com/upr/developers/update/bbndk/ndktarget_10.2.0.1155/ndktargetrepo_10.2.0.1155/packages/bbndk.linux. &&
wget --timeout=30 ${BB_NDK}libraries.10.2.0.1155.tar.gz -O libs.tar.gz &&
tar -xf libs.tar.gz &&
wget --timeout=30 ${BB_NDK}tools.10.2.0.15.tar.gz -O tools.tar.gz &&
tar -xf tools.tar.gz &&
export QNX_TARGET="$(pwd)/target_10_2_0_1155/qnx6" QNX_HOST="$(pwd)/host_10_2_0_15/linux/x86" MAKEFLAGS="-I$QNX_TARGET/usr/include" LD_LIBRARY_PATH="$QNX_TARGET/armle-v7/lib/:$QNX_HOST/usr/lib/:$LD_LIBRARY_PATH" PATH="$QNX_HOST/usr/bin:$PATH";
fi
script:
- if [ "$PPSSPP_BUILD_TYPE" == "Linux" ]; then cd build-travis && make && cd ..; else cd android && ./ab.sh && cd ..; fi
# Compile PPSSPP
- if [ "$PPSSPP_BUILD_TYPE" == "Linux" ]; then ./b.sh --headless; fi
- if [ "$PPSSPP_BUILD_TYPE" == "Android" ]; then pushd android && ./ab.sh && popd; fi
- if [ "$PPSSPP_BUILD_TYPE" == "Blackberry" ]; then pushd Blackberry && ./build.sh --no-package && popd; fi
after_success:
- if [ "$PPSSPP_BUILD_TYPE" == "Linux" ]; then ./test.py; fi
# For now, Android clang seems to be failing to build.
matrix:
exclude:
- compiler: clang
env: PPSSPP_BUILD_TYPE=Android
- compiler: clang
env: PPSSPP_BUILD_TYPE=Blackberry

View file

@ -0,0 +1,25 @@
# Standard settings
set (CMAKE_SYSTEM_NAME QNX)
set (CMAKE_SYSTEM_VERSION 1)
if (SIMULATOR)
set (CMAKE_SYSTEM_PROCESSOR x86)
else()
set (CMAKE_SYSTEM_PROCESSOR armv7)
endif()
set (UNIX True)
include (CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER (nto${CMAKE_SYSTEM_PROCESSOR}-gcc nto${CMAKE_SYSTEM_PROCESSOR}-gcc)
CMAKE_FORCE_CXX_COMPILER (nto${CMAKE_SYSTEM_PROCESSOR}-g++ nto${CMAKE_SYSTEM_PROCESSOR}-g++)
set (CMAKE_COMPILER_IS_GNUCXX True)
execute_process( COMMAND nto${CMAKE_SYSTEM_PROCESSOR}-gcc --version
OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE )
string( REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" GCC_VERSION "${GCC_VERSION}" )
set (CMAKE_C_COMPILER_VERSION ${GCC_VERSION})
set (CMAKE_CXX_COMPILER_VERSION ${GCC_VERSION})
# Skip the platform compiler checks for cross compiling
set (CMAKE_CROSSCOMPILING TRUE)
set (CMAKE_C_COMPILER_WORKS TRUE)
set (CMAKE_CXX_COMPILER_WORKS TRUE)

View file

@ -7,9 +7,15 @@ if [ -z "$BB_OS" ]; then
fi
echo "Building for Blackberry ${BB_OS}"
# Set up cmake with GCC 4.6.3 cross-compiler from PATH
CC=ntoarmv7-gcc CXX=ntoarmv7-g++ cmake -DBLACKBERRY=${BB_OS} ..
if [[ "$1" == "--simulator" ]]; then
SIM="-DSIMULATOR=ON"
fi
cmake ${SIM} -DCMAKE_TOOLCHAIN_FILE=bb.toolchain.cmake -DBLACKBERRY=${BB_OS} .. | grep -v '^-- '
# Compile and create unsigned PPSSPP.bar with debugtoken
DEBUG="-devMode -debugToken ${HOME}/debugtoken.bar"
make -j4 && blackberry-nativepackager -package PPSSPP.bar bar-descriptor.xml $DEBUG
make -j4
if [[ "$1" != "--no-package" ]]; then
DEBUG="-devMode -debugToken ${HOME}/debugtoken.bar"
blackberry-nativepackager -package PPSSPP.bar bar-descriptor.xml $DEBUG
fi

View file

@ -1,15 +0,0 @@
#!/bin/bash
BB_OS=`cat ${QNX_TARGET}/etc/qversion 2>/dev/null`
if [ -z "$BB_OS" ]; then
echo "Could not find your Blackberry NDK. Please source bbndk-env.sh"
exit 1
fi
echo "Building for Blackberry ${BB_OS} Simulator"
# Set up cmake with GCC 4.6.3 cross-compiler from PATH
CC=ntox86-gcc CXX=ntox86-g++ cmake -DSIMULATOR=ON -DBLACKBERRY=${BB_OS} ..
# Compile and create unsigned PPSSPP.bar with debugtoken
DEBUG="-devMode -debugToken ${HOME}/debugtoken.bar"
make -j4 && blackberry-nativepackager -package PPSSPP.bar bar-descriptor.xml $DEBUG

View file

@ -10,7 +10,6 @@ if(ANDROID)
endif()
if(BLACKBERRY)
set(CMAKE_SYSTEM_NAME "QNX")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS")
endif()

View file

@ -16,7 +16,6 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#include "base/logging.h"
#include "Common/ArmEmitter.h"
#include "Common/CPUDetect.h"
#include "Core/MIPS/ARM/ArmRegCacheFPU.h"

View file

@ -21,9 +21,9 @@
#include "../MIPS.h"
#include "../MIPSAnalyst.h"
#include "Common/ArmEmitter.h"
#include "Core/MIPS/ARM/ArmRegCache.h"
#include "Core/MIPS/MIPSVFPUUtils.h"
#include "Common/ArmEmitter.h"
using namespace ArmGen;

10
b.sh
View file

@ -1,3 +1,11 @@
cp -r android/assets .
mkdir -p build
(cd build; cmake .. && make -j3 $1; cd ..)
if [[ "$1" == "--headless" ]]; then
HEADLESS="-DHEADLESS=ON"
else
MAKE_OPT="$1"
fi
pushd build
cmake $HEADLESS .. | grep -v '^-- '
make -j4 $MAKE_OPT
popd