travis: enable building and publishing for AMD64. Use at your own risk!
This commit is contained in:
parent
2f8fec6b70
commit
827105405f
4 changed files with 136 additions and 88 deletions
50
.travis.yml
50
.travis.yml
|
@ -14,14 +14,15 @@ jdk:
|
||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
- stage: build
|
- stage: build
|
||||||
name: "Build for Linux & Android"
|
name: "Build for Linux i686"
|
||||||
cache: ccache
|
cache: ccache
|
||||||
os: linux
|
os: linux
|
||||||
dist: xenial
|
dist: xenial
|
||||||
|
env:
|
||||||
|
- ARCH=i686
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- p7zip-full
|
|
||||||
- gcc-multilib
|
- gcc-multilib
|
||||||
- g++-multilib
|
- g++-multilib
|
||||||
- libx11-dev:i386
|
- libx11-dev:i386
|
||||||
|
@ -29,19 +30,56 @@ jobs:
|
||||||
- x11-utils
|
- x11-utils
|
||||||
- libgl1-mesa-dev
|
- libgl1-mesa-dev
|
||||||
- libasound-dev
|
- libasound-dev
|
||||||
- zlib1g:i386
|
|
||||||
- libstdc++6:i386
|
- libstdc++6:i386
|
||||||
- libfuse2:i386
|
- libfuse2:i386
|
||||||
before_script:
|
before_script:
|
||||||
- sh scripts/travis_common_deps.sh
|
- sh scripts/travis_common_deps.sh
|
||||||
- sh scripts/travis_${TRAVIS_OS_NAME}_deps.sh
|
- sh scripts/travis_${TRAVIS_OS_NAME}_deps.sh
|
||||||
- export ANDROID_HOME=$PWD/android-sdk-linux
|
|
||||||
- export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:$PWD/android-ndk
|
|
||||||
script:
|
script:
|
||||||
- sh scripts/build_${TRAVIS_OS_NAME}_engine.sh
|
- sh scripts/build_${TRAVIS_OS_NAME}_engine.sh
|
||||||
after_script:
|
after_script:
|
||||||
- ccache --show-stats
|
- ccache --show-stats
|
||||||
- sh scripts/continious_upload.sh Xash3DFWGS-i386.AppImage
|
- sh scripts/continious_upload.sh Xash3DFWGS-${ARCH}.AppImage
|
||||||
|
- # ...
|
||||||
|
name: "Build for Linux amd64"
|
||||||
|
cache: ccache
|
||||||
|
os: linux
|
||||||
|
dist: xenial
|
||||||
|
env:
|
||||||
|
- ARCH=amd64
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- libx11-dev
|
||||||
|
- libxext-dev
|
||||||
|
- x11-utils
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libasound-dev
|
||||||
|
- libstdc++6
|
||||||
|
- libfuse2
|
||||||
|
before_script:
|
||||||
|
- sh scripts/travis_common_deps.sh
|
||||||
|
- sh scripts/travis_${TRAVIS_OS_NAME}_deps.sh
|
||||||
|
script:
|
||||||
|
- sh scripts/build_${TRAVIS_OS_NAME}_engine.sh
|
||||||
|
after_script:
|
||||||
|
- ccache --show-stats
|
||||||
|
- sh scripts/continious_upload.sh Xash3DFWGS-${ARCH}.AppImage
|
||||||
|
# - # ...
|
||||||
|
# name: "Build for Android"
|
||||||
|
# cache: ccache
|
||||||
|
# os: linux
|
||||||
|
# dist: xenial
|
||||||
|
# before_script:
|
||||||
|
# - sh scripts/travis_common_deps.sh
|
||||||
|
# - sh scripts/travis_${TRAVIS_OS_NAME}_deps.sh
|
||||||
|
# - export ANDROID_HOME=$PWD/android-sdk-linux
|
||||||
|
# - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:$PWD/android-ndk
|
||||||
|
# script:
|
||||||
|
# - sh scripts/build_${TRAVIS_OS_NAME}_engine.sh
|
||||||
|
# after_script:
|
||||||
|
# - ccache --show-stats
|
||||||
|
# - sh scripts/continious_upload.sh xash3d-fwgs.apk
|
||||||
# - # ...
|
# - # ...
|
||||||
# name: "Build for Windows MinGW"
|
# name: "Build for Windows MinGW"
|
||||||
# cache: ccache
|
# cache: ccache
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
APP=Xash3DFWGS
|
|
||||||
ARCH=i686
|
|
||||||
APPDIR=$APP-i386.AppDir
|
|
||||||
|
|
||||||
# Copy all needed files
|
|
||||||
./waf install
|
|
||||||
mv appimage $APPDIR
|
|
||||||
|
|
||||||
# Generate extras.pak
|
|
||||||
python3 scripts/makepak.py xash-extras/ $APPDIR/extras.pak
|
|
||||||
|
|
||||||
cp SDL2_linux/lib/libSDL2-2.0.so.0 $APPDIR/
|
|
||||||
cp vgui-dev/lib/vgui.so $APPDIR/
|
|
||||||
|
|
||||||
cat > $APPDIR/AppRun << 'EOF'
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo "Xash3D FWGS installed as AppImage."
|
|
||||||
|
|
||||||
if [ "$XASH3D_BASEDIR" = "" ]; then
|
|
||||||
export XASH3D_BASEDIR=$PWD
|
|
||||||
fi
|
|
||||||
export XASH3D_EXTRAS_PAK1="${APPDIR}"/extras.pak
|
|
||||||
export LD_LIBRARY_PATH="${APPDIR}":$LD_LIBRARY_PATH
|
|
||||||
${DEBUGGER} "${APPDIR}"/xash3d "$@"
|
|
||||||
exit $?
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x $APPDIR/xash3d # Engine launcher
|
|
||||||
chmod +x $APPDIR/AppRun # Engine launcher script
|
|
||||||
|
|
||||||
echo "Contents of AppImage: "
|
|
||||||
ls $APPDIR
|
|
||||||
|
|
||||||
wget "https://raw.githubusercontent.com/FWGS/fwgs-artwork/master/xash3d/icon_512.png" -O $APPDIR/$APP.png
|
|
||||||
|
|
||||||
cat > $APPDIR/$APP.desktop <<EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=$APP
|
|
||||||
Icon=$APP
|
|
||||||
Type=Application
|
|
||||||
Exec=AppRun
|
|
||||||
Categories=Game;
|
|
||||||
EOF
|
|
||||||
|
|
||||||
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$ARCH.AppImage"
|
|
||||||
chmod +x appimagetool-$ARCH.AppImage
|
|
||||||
./appimagetool-$ARCH.AppImage $APPDIR
|
|
|
@ -1,38 +1,100 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Build custom SDL2
|
|
||||||
|
|
||||||
. scripts/lib.sh
|
. scripts/lib.sh
|
||||||
|
|
||||||
cd $TRAVIS_BUILD_DIR/SDL2_src
|
if [ ! $ARCH ]; then
|
||||||
export CC="ccache gcc -msse2 -march=i686 -m32 -ggdb -O2"
|
ARCH=i686
|
||||||
./configure \
|
fi
|
||||||
--disable-dependency-tracking \
|
|
||||||
--disable-render \
|
|
||||||
--disable-haptic \
|
|
||||||
--disable-power \
|
|
||||||
--disable-filesystem \
|
|
||||||
--disable-file \
|
|
||||||
--enable-alsa-shared \
|
|
||||||
--enable-pulseaudio-shared \
|
|
||||||
--enable-wayland-shared \
|
|
||||||
--enable-x11-shared \
|
|
||||||
--disable-libudev \
|
|
||||||
--disable-dbus \
|
|
||||||
--disable-ibus \
|
|
||||||
--disable-ime \
|
|
||||||
--disable-fcitx \
|
|
||||||
--prefix / # get rid of /usr/local stuff
|
|
||||||
make -j2
|
|
||||||
mkdir -p $TRAVIS_BUILD_DIR/SDL2_linux
|
|
||||||
make install DESTDIR=$TRAVIS_BUILD_DIR/SDL2_linux
|
|
||||||
|
|
||||||
# Build engine
|
# set up ccache
|
||||||
cd $TRAVIS_BUILD_DIR
|
|
||||||
export CC="ccache gcc"
|
export CC="ccache gcc"
|
||||||
export CXX="ccache g++"
|
export CXX="ccache g++"
|
||||||
./waf configure -s SDL2_linux -T debug --enable-stb --prefix="appimage" --win-style-install || die
|
|
||||||
./waf build || die
|
|
||||||
|
|
||||||
# Build AppImage
|
# AppImage settings
|
||||||
scripts/build_appimage.sh
|
APP=Xash3DFWGS
|
||||||
|
APPDIR=$APP-$ARCH.AppDir
|
||||||
|
|
||||||
|
build_sdl2()
|
||||||
|
{
|
||||||
|
cd $TRAVIS_BUILD_DIR/SDL2_src
|
||||||
|
if [ $ARCH == "i686" ]; then # yes, it isn't good to pass flags as CC, but I don't want to clear CFLAGS after building SDL2
|
||||||
|
export CFLAGS="-msse2 -march=i686 -m32 -ggdb -O2"
|
||||||
|
fi
|
||||||
|
./configure --disable-render --disable-haptic --disable-power --disable-filesystem \
|
||||||
|
--disable-file --disable-libudev --disable-dbus --disable-ibus \
|
||||||
|
--disable-ime --disable-fcitx \
|
||||||
|
--enable-alsa-shared --enable-pulseaudio-shared \
|
||||||
|
--enable-wayland-shared --enable-x11-shared \
|
||||||
|
--prefix / || die # get rid of /usr/local stuff
|
||||||
|
make -j2 || die
|
||||||
|
mkdir -p $TRAVIS_BUILD_DIR/SDL2_linux
|
||||||
|
make install DESTDIR=$TRAVIS_BUILD_DIR/SDL2_linux || die
|
||||||
|
export CFLAGS=""
|
||||||
|
}
|
||||||
|
|
||||||
|
build_engine()
|
||||||
|
{
|
||||||
|
# Build engine
|
||||||
|
cd $TRAVIS_BUILD_DIR
|
||||||
|
|
||||||
|
WAF_CONFIGURE_FLAGS="-s SDL2_linux -T release --enable-stb --prefix=$APPDIR --win-style-install"
|
||||||
|
if [ $ARCH == "amd64" ]; then # we need enabling 64-bit target only on Intel-compatible CPUs
|
||||||
|
WAF_CONFIGURE_FLAGS="$WAF_CONFIGURE_FLAGS -8"
|
||||||
|
fi
|
||||||
|
./waf configure $WAF_CONFIGURE_FLAGS || die
|
||||||
|
./waf build || die
|
||||||
|
}
|
||||||
|
|
||||||
|
build_appimage()
|
||||||
|
{
|
||||||
|
cd $TRAVIS_BUILD_DIR
|
||||||
|
|
||||||
|
./waf install || die
|
||||||
|
|
||||||
|
# Generate extras.pak
|
||||||
|
python3 scripts/makepak.py xash-extras/ $APPDIR/extras.pak
|
||||||
|
|
||||||
|
cp SDL2_linux/lib/libSDL2-2.0.so.0 $APPDIR/
|
||||||
|
if [ $ARCH == "i686" ]; then
|
||||||
|
cp vgui-dev/lib/vgui.so $APPDIR/
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > $APPDIR/AppRun << 'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ "$XASH3D_BASEDIR" = "" ]; then
|
||||||
|
export XASH3D_BASEDIR=$PWD
|
||||||
|
fi
|
||||||
|
echo "Xash3D FWGS installed as AppImage."
|
||||||
|
echo "Base directory is $XASH3D_BASEDIR. Set XASH3D_BASEDIR environment variable to override this"
|
||||||
|
|
||||||
|
export XASH3D_EXTRAS_PAK1="${APPDIR}"/extras.pak
|
||||||
|
export LD_LIBRARY_PATH="${APPDIR}":$LD_LIBRARY_PATH
|
||||||
|
${DEBUGGER} "${APPDIR}"/xash3d "$@"
|
||||||
|
exit $?
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x $APPDIR/xash3d $APPDIR/AppRun # Engine launcher & engine launcher script
|
||||||
|
|
||||||
|
echo "Contents of AppImage: "
|
||||||
|
ls -R $APPDIR
|
||||||
|
|
||||||
|
wget "https://raw.githubusercontent.com/FWGS/fwgs-artwork/master/xash3d/icon_512.png" -O $APPDIR/$APP.png
|
||||||
|
|
||||||
|
cat > $APPDIR/$APP.desktop <<EOF
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=$APP
|
||||||
|
Icon=$APP
|
||||||
|
Type=Application
|
||||||
|
Exec=AppRun
|
||||||
|
Categories=Game;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$ARCH.AppImage"
|
||||||
|
chmod +x appimagetool-$ARCH.AppImage
|
||||||
|
./appimagetool-$ARCH.AppImage $APPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
build_sdl2
|
||||||
|
build_engine
|
||||||
|
build_appimage
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
git clone --depth 1 https://github.com/FWGS/vgui-dev
|
|
||||||
git clone --depth 1 https://github.com/FWGS/vgui_support_bin
|
|
||||||
git clone --depth 1 https://github.com/FWGS/xash-extras
|
git clone --depth 1 https://github.com/FWGS/xash-extras
|
||||||
|
|
Loading…
Add table
Reference in a new issue