is.xyz.vcmi.yml 5.04 KB
Newer Older
stub's avatar
stub committed
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
Categories:
  - Games
License: GPL-2.0-or-later
WebSite: https://vcmi.eu
SourceCode: https://github.com/vcmi/vcmi-android
IssueTracker: https://bugs.vcmi.eu

Description: |-
    VCMI is work-in-progress attempt to recreate engine for Heroes of Might and Magic III, giving it new and extended possibilities.

    This is an VCMI port for Android. To play it, you need to use your own, legally acquired Heroes of Might and Magic III data files.

    Note: extra display resolutions and random map generation templates are only available with official "essentials" mod files
    (Warning, external link) https://wiki.vcmi.eu/Mod_list#Utilities
    (contents of Mods/vcmi/Mods in the archive should be copied to Mods folder in the root of your VCMI data files installation).

RepoType: git
Repo: https://github.com/vcmi/vcmi-android.git

Builds:
  - versionName: '1.4'
    versionCode: 1004
    commit: 93d13ec59c9032b4cced8277e71ac2c80f1152cb
    timeout: 80000
    submodules: true
    sudo:
      - apt update || apt update
      - apt install -y pkgconf wget cmake yasm jq dos2unix
    output: project/vcmi-app/build/outputs/apk/vcmi-vcmiOnly-release-unsigned.apk
    prebuild:
      - export NDK="/home/vagrant/android-ndk/r14b"
      - pushd ext/vcmi
      - git checkout -f 7e7c98852dbec9da748c261995fd16c11e53c494
      - popd
      - wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
      - wget https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.tar.gz
      - wget https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.tar.gz
      - wget https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.13.tar.gz
      - sha256sum -c <<< "da3411ea45622579d419bfda66f45cd0f8c32a181d84adfa936f5688388995cf  boost_1_68_0.tar.gz"
      - sha256sum -c <<< "3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64  SDL2_image-2.0.1.tar.gz"
      - sha256sum -c <<< "5a24f62a610249d744cbd8d28ee399d8905db7222bf3bdbc8a8b4a76e597695f  SDL2_mixer-2.0.1.tar.gz"
      - sha256sum -c <<< "f51d3829985691efa9aad306a935ef69bc880a525c887548563c33ea35e8ed04  SDL2_ttf-2.0.13.tar.gz"
      - tar -xzf boost_1_68_0.tar.gz
      - tar -xzf SDL2_image-2.0.1.tar.gz
      - tar -xzf SDL2_mixer-2.0.1.tar.gz
      - tar -xf SDL2_ttf-2.0.13.tar.gz
      - rm boost_1_68_0.tar.gz SDL2_image-2.0.1.tar.gz SDL2_mixer-2.0.1.tar.gz SDL2_ttf-2.0.13.tar.gz
      - mkdir ext/boost
      - mv boost_1_68_0 ext/boost/.
      - mv SDL2_image-2.0.1 ext/SDL2/SDL2-image/code
      - mv SDL2_mixer-2.0.1 ext/SDL2/SDL2-mixer/code
      - mv SDL2_ttf-2.0.13 ext/SDL2/SDL2-ttf/code
      - cat vcmiconf.json | jq --arg "DIR" $(pwd) --arg "NDK15" $NDK '.bash.ndkRoot=$NDK15
        | .ndkRoot=$NDK15 | .sdkRoot="$$SDK$$" | .javaRoot="/usr/lib/jvm/java-8-openjdk-amd64"
        | .boostFolderName="boost_1_68_0" | .androidApi=21 | .bash.projectRoot=$DIR
        | .projectRoot=$DIR | .abis = "armeabi-v7a arm64-v8a x86 x86_64"' > temp
      - mv temp vcmiconf.json
      - sed -i -e 's/\.\/gradlew/gradle/' build.py
      - dos2unix project/gradle/wrapper/gradle-wrapper.properties
      - sed -i -e 's/signingConfig\ signingConfigs\.releaseSigning/signingConfig null/'
        -e '/applicationVariants\.all/d' -e 's/zipAlignEnabled\ true//' project/vcmi-app/build.gradle
      - sed -i -e 's/^fixFFConf().*//' fix_ffmpeg_confs.py
      - python3 update_internal_assets.py
      - python3 build.py fixpaths
      - find ext/ff -iname "*.sh" -exec dos2unix {} \; -exec chmod +x {} \; -exec
        sed -i -e "s/^make$/make -j$(nproc)/" {} \;
      - find ext/ff -iname "configure" -exec dos2unix {} \; -exec chmod +x {} \;
      - sed -i -e "s/^SLIBNAME_WITH_VERSION='\$(SLIBNAME)\.\$(LIBVERSION)'/SLIBNAME_WITH_VERSION='\$(SLIBNAME)'/"
        -e "s/^SLIBNAME_WITH_MAJOR='\$(SLIBNAME)\.\$(LIBMAJOR)'/SLIBNAME_WITH_MAJOR='\$(SLIBNAME)'/"
        -e "s/^SLIB_INSTALL_NAME='\$(SLIBNAME_WITH_VERSION)'/SLIB_INSTALL_NAME='\$(SLIBNAME)'/"
        -e "s/^SLIB_INSTALL_LINKS='\$(SLIBNAME_WITH_MAJOR)\ \$(SLIBNAME)'/SLIB_INSTALL_LINKS=''/"
        ext/ff/ffmpeg/configure
stub's avatar
stub committed
73
74
      - find ext/SDL2 -type f -regextype posix-extended -regex '.+\.(dll|jar|lib|mcp)$'
        -delete
stub's avatar
stub committed
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
    scandelete:
      - ext
    build:
      - export NDK="/home/vagrant/android-ndk/r17c"
      - python3 build.py build-optional
      - cat vcmiconf.json | jq --arg "NDK17" $NDK '.bash.ndkRoot=$NDK17 | .ndkRoot=$NDK17'
        > temp
      - mv temp vcmiconf.json
      - python3 build.py fixpaths
      - python3 build.py build-cmake
      - python3 build.py build-app

MaintainerNotes: |-
    - Build process requires 2 NDKs: r14b to build the dependencies (SDL and boost) and r17c to build the game itself.
    - Commit hashes for the launcher and vcmi itself match the APK released on google play. The newer commit reported in the app itself is a bug.
    - The prebuilt section fixes a number of things to allow building dependencies and libraries from the source.
    - Upstream uses prebuilt libs instead and their build procedures were not updated for some time.

AutoUpdateMode: None
UpdateCheckMode: None
CurrentVersion: '1.4'
CurrentVersionCode: 1004