summaryrefslogtreecommitdiff
path: root/circle.yml
blob: e83dd7ed3cea12ae847298511267c86504a649f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
machine:
  environment:
    MAKEFLAGS: "j4"
# --- Android build ---
    _toolchain_: "/home/ubuntu/c-toxcore/toolchains/"
    _s_: "/home/ubuntu/c-toxcore/src/"
    AND_PATH: "$_toolchain_/arm-linux-androideabi/bin:$PATH"
    AND_PKG_CONFIG_PATH: "$_toolchain_/arm-linux-androideabi/sysroot/usr/lib/pkgconfig"
    AND_CC: "$_toolchain_/arm-linux-androideabi/bin/arm-linux-androideabi-clang"
    AND_CXX: "$_toolchain_/arm-linux-androideabi/bin/arm-linux-androideabi-clang++"
# --- Android build ---
dependencies:
  pre:
  - sudo apt-get update
  - sudo apt-get install clang
  - sudo apt-get install build-essential libtool autotools-dev automake checkinstall check git yasm
  - sudo apt-get install libopus-dev libvpx-dev pkg-config

# ------------ network_test requires that "localhost" resolves to ::1 ------------
  - sudo bash -c "echo '::1             localhost ipv6-localhost ipv6-loopback' >> /etc/hosts" # ipv6 localhost entry
# ------------ network_test requires that "localhost" resolves to ::1 ------------

  - java -version ; exit 0
  - gcc --version ; exit 0
  - clang --version ; exit 0

compile:
  override:
  ### ------- get libsodium -------
  - mkdir ~/libsodium
  - cd ~/libsodium/ ; git clone https://github.com/jedisct1/libsodium.git
  - cd ~/libsodium/ ; cd libsodium/ ; git checkout tags/1.0.11
  - cd ~/libsodium/ ; cd libsodium/ ; ./autogen.sh
  - cd ~/libsodium/ ; cd libsodium/ ; ./configure && make check
  - cd ~/libsodium/ ; cd libsodium/ ; sudo bash -c "printf 'y\naa\n\n' | checkinstall --install --pkgname libsodium --pkgversion 1.0.0 --nodoc --deldesc=no --pkglicense='GPL2'"
  - cd ~/libsodium/ ; cd libsodium/ ; sudo ldconfig
  ### ------- get libsodium -------

##### ------------ BUILD ------------
  - cmake -DASAN=ON -DDEBUG=ON -DSTRICT_ABI=ON -DTRACE=ON -DWARNINGS=OFF .
  #- cmake .
  - make
  - sudo make install
  - sudo ldconfig -v 2>/dev/null | grep toxcore
  - sudo ldconfig -v 2>/dev/null | grep sodium
##### ------------ BUILD ------------

# --- Android build ---
  - echo 'export PATH="$AND_PATH";export PKG_CONFIG_PATH="$AND_PKG_CONFIG_PATH";export CC="$AND_CC";export CXX="$AND_CXX";export CPPFLAGS="";export LDFLAGS=""' > ~/pp
  - chmod u+x ~/pp
  - mkdir -p "$_s_"

  - rm -Rf /home/ubuntu/install_dest/ ; mkdir -p /home/ubuntu/install_dest/
  - mkdir -p $CIRCLE_ARTIFACTS/android/


  - . ~/pp;mkdir -p "$PKG_CONFIG_PATH"
  - . ~/pp;curl -s http://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip -o android-ndk-r13b-linux-x86_64.zip
  - . ~/pp;unzip android-ndk-r13b-linux-x86_64.zip
  - . ~/pp;mv -v /home/ubuntu/c-toxcore/android-ndk-r13b /home/ubuntu/android-ndk
  - . ~/pp;/home/ubuntu/android-ndk/build/tools/make_standalone_toolchain.py --arch arm --install-dir "$_toolchain_"/arm-linux-androideabi --api 12 --force   

  - . ~/pp;cd $_s_;git clone --depth=1 --branch=v1.3.0 https://github.com/yasm/yasm.git
  - . ~/pp;cd $_s_/yasm/;autoreconf -fi
  - . ~/pp;rm -Rf ~/build/
  - . ~/pp;mkdir -p ~/build/
  - . ~/pp;cd ~/build/;$_s_/yasm/configure --prefix="$_toolchain_"/arm-linux-androideabi/sysroot/usr --disable-shared --disable-soname-versions --host=arm-linux-androideabi --with-sysroot="$_toolchain_"/arm-linux-androideabi/sysroot
  - . ~/pp;cd ~/build/;make -j4
  - . ~/pp;cd ~/build/;make install


  - . ~/pp;cd $_s_;git clone --depth=1 --branch=v1.6.0 https://github.com/webmproject/libvpx.git
  - . ~/pp;rm -Rf ~/build/
  - . ~/pp;mkdir -p ~/build/
  - . ~/pp;cd ~/build/;$_s_/libvpx/configure --prefix="$_toolchain_"/arm-linux-androideabi/sysroot/usr --disable-examples --disable-unit-tests --sdk-path=/home/ubuntu/android-ndk --target=armv7-android-gcc
  - . ~/pp;cd ~/build/;make -j4
  - . ~/pp;cd ~/build/;make install
  - . ~/pp;cd ~/build/;make clean
  - rm -Rf /home/ubuntu/install_dest/ ; mkdir -p /home/ubuntu/install_dest/
  - . ~/pp;cd ~/build/;make DESTDIR=/home/ubuntu/install_dest/ install
  - cd /home/ubuntu/install_dest/ ; cd home/ubuntu/c-toxcore/toolchains/arm-linux-androideabi/sysroot/ ; zip -r $CIRCLE_ARTIFACTS/android/libvpx.zip *


  - . ~/pp;cd $_s_;git clone --depth=1 --branch=v1.1.3 https://github.com/xiph/opus.git
  - . ~/pp;cd $_s_/opus/;autoreconf -fi
  - . ~/pp;rm -Rf ~/build/
  - . ~/pp;mkdir -p ~/build/
  - . ~/pp;cd ~/build/;$_s_/opus/configure --prefix="$_toolchain_"/arm-linux-androideabi/sysroot/usr --disable-shared --disable-soname-versions --host=arm-linux-androideabi --with-sysroot="$_toolchain_"/arm-linux-androideabi/sysroot
  - . ~/pp;cd ~/build/;make -j4
  - . ~/pp;cd ~/build/;make install
  - . ~/pp;cd ~/build/;make clean
  - rm -Rf /home/ubuntu/install_dest/ ; mkdir -p /home/ubuntu/install_dest/
  - . ~/pp;cd ~/build/;make DESTDIR=/home/ubuntu/install_dest/ install
  - cd /home/ubuntu/install_dest/ ; cd home/ubuntu/c-toxcore/toolchains/arm-linux-androideabi/sysroot/ ; zip -r $CIRCLE_ARTIFACTS/android/opus.zip *
    
    
  - . ~/pp;cd $_s_;git clone --depth=1 --branch=1.0.11 https://github.com/jedisct1/libsodium.git
  - . ~/pp;cd $_s_/libsodium/;autoreconf -fi
  - . ~/pp;rm -Rf ~/build/
  - . ~/pp;mkdir -p ~/build/
  - . ~/pp;cd ~/build/;$_s_/libsodium/configure --prefix="$_toolchain_"/arm-linux-androideabi/sysroot/usr --disable-shared --disable-soname-versions --host=arm-linux-androideabi --with-sysroot="$_toolchain_"/arm-linux-androideabi/sysroot --enable-minimal --disable-pie
  - . ~/pp;cd ~/build/;make -j4
  - . ~/pp;cd ~/build/;make install
  - . ~/pp;cd ~/build/;make clean
  - rm -Rf /home/ubuntu/install_dest/ ; mkdir -p /home/ubuntu/install_dest/
  - . ~/pp;cd ~/build/;make DESTDIR=/home/ubuntu/install_dest/ install
  - cd /home/ubuntu/install_dest/ ; cd home/ubuntu/c-toxcore/toolchains/arm-linux-androideabi/sysroot/ ; zip -r $CIRCLE_ARTIFACTS/android/libsodium.zip *
    
    
  - . ~/pp;cd ~/c-toxcore/;autoreconf -fi
  - . ~/pp;rm -Rf ~/build/
  - . ~/pp;mkdir -p ~/build/
  - . ~/pp;cd ~/build/;~/c-toxcore/configure --prefix="$_toolchain_"/arm-linux-androideabi/sysroot/usr --disable-soname-versions --host=arm-linux-androideabi --with-sysroot="$_toolchain_"/arm-linux-androideabi/sysroot --disable-testing --disable-rt
  - . ~/pp;cd ~/build/;make -j4
  - . ~/pp;cd ~/build/;make install
  - . ~/pp;cd ~/build/;make clean
  - rm -Rf /home/ubuntu/install_dest/ ; mkdir -p /home/ubuntu/install_dest/
  - . ~/pp;cd ~/build/;make DESTDIR=/home/ubuntu/install_dest/ install
  - cd /home/ubuntu/install_dest/ ; cd home/ubuntu/c-toxcore/toolchains/arm-linux-androideabi/sysroot/ ; zip -r $CIRCLE_ARTIFACTS/android/c-toxcore.zip *
# --- Android build ---

test:
  override:
  - make VERBOSE=1 test || make VERBOSE=1 ARGS="--rerun-failed" test || make VERBOSE=1 ARGS="--rerun-failed" test || make VERBOSE=1 ARGS="--rerun-failed" test