Преглед на файлове

For Travis CI - attempt to setup 32-bit and Android CI build.

Yao Wei Tjong 姚伟忠 преди 12 години
родител
ревизия
d85d24ae82
променени са 3 файла, в които са добавени 36 реда и са изтрити 18 реда
  1. 18 12
      .travis.yml
  2. 17 5
      Rakefile
  3. 1 1
      cmake_gcc.sh

+ 18 - 12
.travis.yml

@@ -1,19 +1,25 @@
+env:
+  global:
+    - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
+    - DISPLAY=:99.0
+  matrix:
+    - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=0
+    - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=0
+    - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=1
+    - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=1 SITE_UPDATE=1
+    - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=0 ANDROID=1
+    - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=0 ANDROID=1
 language: cpp
 language: cpp
 compiler: gcc
 compiler: gcc
 before_install:
 before_install:
-    - export DISPLAY=:99.0
-    - sh -e /etc/init.d/xvfb start
-    - /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1024x768x24
-    - sudo add-apt-repository ppa:george-edison55/precise-backports -y
-    - sudo apt-get update -q -y
+    - sh -e /etc/init.d/xvfb start && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1024x768x24
+    - [ $ANDROID ] && wget -q http://dl.google.com/android/android-sdk_r22.3-linux.tgz && tar xzf *.tgz && rm *.tgz && ln -s android-sdk* android-sdk && wget -q http://dl.google.com/android/ndk/android-ndk-r9c-linux-x86_64.tar.bz2 && tar xjf *.bz2 && rm *.bz2 && ln -s android-ndk* android-ndk && export ANDROID_NDK=`pwd`/android-ndk || true
+    - [ $SITE_UPDATE ] && sudo add-apt-repository ppa:george-edison55/precise-backports -y && sudo apt-get update -q -y || true
 install:
 install:
-    - sudo apt-get install -q -y --no-install-recommends libasound2-dev doxygen graphviz
+    - sudo apt-get install -q -y --no-install-recommends libasound2-dev
     - rvm gemset use global && gem install rake
     - rvm gemset use global && gem install rake
+    - [ ! $ENABLE_64BIT ] &&  sudo apt-get install -q -y libxrandr-dev:i386 libgl1-mesa-dev:i386 g++-multilib && export CMAKE_PREFIX_PATH=/usr/lib/i386-linux-gnu || true
+    - [ $ANDROID ] &&  sudo apt-get install -q -y --no-install-recommends openjdk-7-jdk g++-multilib && (while :; do echo 'y'; sleep 1; done) |android-sdk/tools/android update sdk --no-ui --filter platform-tool,build-tools-19.0.1,android-19,system-image,extra-android-support || true
+    - [ $SITE_UPDATE ] && sudo apt-get install -q -y --no-install-recommends doxygen graphviz
 script: rake travis_ci
 script: rake travis_ci
 after_success: rake travis_ci_site_update
 after_success: rake travis_ci_site_update
-env:
-  global:
-    secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
-  matrix:
-    - TEST_LIB_TYPE=STATIC
-    - TEST_LIB_TYPE=SHARED

+ 17 - 5
Rakefile

@@ -16,16 +16,28 @@ end
 # Usage: NOT intended to be used manually (if you insist then try: rake travis_ci)
 # Usage: NOT intended to be used manually (if you insist then try: rake travis_ci)
 desc 'Configure, build, and test Urho3D project'
 desc 'Configure, build, and test Urho3D project'
 task :travis_ci do
 task :travis_ci do
-  system './cmake_gcc.sh -DURHO3D_LIB_TYPE=$TEST_LIB_TYPE -DENABLE_64BIT=1 -DENABLE_LUAJIT=1 -DENABLE_LUAJIT_AMALG=1 -DENABLE_SAMPLES=1 -DENABLE_TOOLS=1 -DENABLE_EXTRAS=1 -DENABLE_TESTING=1 -DCMAKE_BUILD_TYPE=Debug && cd Build && make && make test' or abort 'Failed to configure/build/test Urho3D library'
-  scaffolding 'Build/generated/externallib'
-  system "URHO3D_HOME=`pwd`; export URHO3D_HOME && cd Build/generated/externallib && echo '\nUsing Urho3D as external library in external project' && ./cmake_gcc.sh -DENABLE_64BIT=1 -DENABLE_LUA=1 -DENABLE_TESTING=1 -DCMAKE_BUILD_TYPE=Debug && cd Build && make && make test" or abort 'Failed to configure/build/test temporary project using Urho3D as external library' 
+  system './cmake_gcc.sh -DURHO3D_LIB_TYPE=$URHO3D_LIB_TYPE -DENABLE_64BIT=$ENABLE_64BIT -DENABLE_LUAJIT=1 -DENABLE_LUAJIT_AMALG=1 -DENABLE_SAMPLES=1 -DENABLE_TOOLS=1 -DENABLE_EXTRAS=1 -DENABLE_TESTING=1 -DCMAKE_BUILD_TYPE=Debug' or abort 'Failed to configure Urho3D library build'
+  if ENV['ANDROID']
+    system 'cd Build/ThirdParty/toluapp/src/bin && make' or abort 'Failed to build tolua++ tool'
+    system 'cd Build/ThirdParty/LuaJIT/generated/buildvm-android && make' or abort 'Failed to build buildvm-android tool'
+    system './cmake_gcc.sh' or abort 'Failed to reconfigure Urho3D library for Android build'
+    PLATFORM_PREFIX = 'android-'
+    TEST = ''
+    ENV['SKIP_NATIVE'] = '1'
+  else
+    PLATFORM_PREFIX = ''
+    TEST = '&& make test'
+  end
+  system "cd #{PLATFORM_PREFIX}Build && make #{TEST}" or abort 'Failed to build or test Urho3D library'
+  scaffolding "#{PLATFORM_PREFIX}Build/generated/externallib"
+  system "URHO3D_HOME=`pwd`; export URHO3D_HOME && cd #{PLATFORM_PREFIX}Build/generated/externallib && echo '\nUsing Urho3D as external library in external project' && ./cmake_gcc.sh -DENABLE_64BIT=$ENABLE_64BIT -DENABLE_LUA=1 -DENABLE_TESTING=1 -DCMAKE_BUILD_TYPE=Debug && cd #{PLATFORM_PREFIX}Build && make #{TEST}" or abort 'Failed to configure/build/test temporary project using Urho3D as external library' 
 end
 end
 
 
-# Usage: NOT intended to be used manually (if you insist then try: GIT_NAME=... GIT_EMAIL=... GH_TOKEN=... TRAVIS_BRANCH=master rake travis_ci_site_update)
+# Usage: NOT intended to be used manually (if you insist then try: GIT_NAME=... GIT_EMAIL=... GH_TOKEN=... TRAVIS_BRANCH=master SITE_UPDATE=1 rake travis_ci_site_update)
 desc 'Update site documentation to GitHub Pages'
 desc 'Update site documentation to GitHub Pages'
 task :travis_ci_site_update do
 task :travis_ci_site_update do
   # Skip documentation update if one of the following conditions is met
   # Skip documentation update if one of the following conditions is met
-  if ENV['TRAVIS_PULL_REQUEST'].to_i > 0 or ENV['TRAVIS_BRANCH'] != 'master' or ENV['TEST_LIB_TYPE'] == 'SHARED'
+  if ENV['TRAVIS_PULL_REQUEST'].to_i > 0 or ENV['TRAVIS_BRANCH'] != 'master' or ENV['SITE_UPDATE'] != '1'
     next
     next
   end
   end
   # Pull or clone
   # Pull or clone

+ 1 - 1
cmake_gcc.sh

@@ -44,7 +44,7 @@ GENERATOR="Unix Makefiles"
 OPT=-Wno-dev    # \todo suppress policy warning (for 2.8.12 early adopters), remove this option when CMake minimum version is 2.8.12
 OPT=-Wno-dev    # \todo suppress policy warning (for 2.8.12 early adopters), remove this option when CMake minimum version is 2.8.12
 [ $ANDROID_NDK ] && msg "Android build" && cmake -E make_directory android-Build && cmake -E chdir android-Build cmake $OPT -G $GENERATOR -DANDROID=1 -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/android.toolchain.cmake -DLIBRARY_OUTPUT_PATH_ROOT=. $@ $SOURCE && post_cmake android-Build
 [ $ANDROID_NDK ] && msg "Android build" && cmake -E make_directory android-Build && cmake -E chdir android-Build cmake $OPT -G $GENERATOR -DANDROID=1 -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/android.toolchain.cmake -DLIBRARY_OUTPUT_PATH_ROOT=. $@ $SOURCE && post_cmake android-Build
 [ $RASPI_TOOL ] && msg "Raspberry Pi build" && cmake -E make_directory raspi-Build && cmake -E chdir raspi-Build cmake $OPT -G $GENERATOR -DRASPI=1 -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/raspberrypi.toolchain.cmake $@ $SOURCE && post_cmake raspi-Build
 [ $RASPI_TOOL ] && msg "Raspberry Pi build" && cmake -E make_directory raspi-Build && cmake -E chdir raspi-Build cmake $OPT -G $GENERATOR -DRASPI=1 -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/raspberrypi.toolchain.cmake $@ $SOURCE && post_cmake raspi-Build
-msg "Native build" && cmake -E make_directory Build && cmake -E chdir Build cmake $OPT -G $GENERATOR $PLATFORM $@ $SOURCE && post_cmake Build
+[ ! $SKIP_NATIVE ] && msg "Native build" && cmake -E make_directory Build && cmake -E chdir Build cmake $OPT -G $GENERATOR $PLATFORM $@ $SOURCE && post_cmake Build
 unset IFS
 unset IFS
 
 
 # Create symbolic links in the build directories
 # Create symbolic links in the build directories