#!/bin/sh
# test we are root
if [ "$(id -u)" != "0" ]; then
   echo "run as root now exitting"
   exit 1
fi

export CFLAGS="-mtune=generic -Os -pipe"
export CXXFLAGS="-mtune=generic -Os -pipe"
export LDFLAGS="-Wl,-O1"

P1=QMPlay2
P=qmplay2
V=20.05.02
SRC=$P1-src-$V
USER=`cat /etc/sysconfig/tcuser`

LIST="compiletc submitqc cmake qt-5.x-dev ffmpeg4-dev taglib-dev "
for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done


# dirty disable pulseaudio
cd /usr/local/lib/pkgconfig/
rm -rf libpulse.pc libpulse-simple.pc libpulse-mainloop-glib.pc
cd /tmp
su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://github.com/zaps166/$P1/releases/download/$V/$P1-src-$V.tar.xz   "  $USER
mkdir $P
xz -d *xz && tar xvf *tar
cd $SRC
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_INSTALL_LIBDIR="/usr/local/lib" 
#################################################3
# Enabled features:
# OpenGL, Build with OpenGL support..tested
# Vulkan, Build with Vulkan support..untested
# Freedesktop notifications, Use Freedesktop notifications
# MediaBrowser, Build with MediaBrowser support
# LastFM, Build with LastFM support
# Lyrics, Build with lyrics support..tested
# libass, Build with libass support
# Inputs, Build with Inputs module
# Modplug, Build with Modplug module
# Extensions, Build with Extensions module
# MPRIS2, Build Extensions with MPRIS2 support
# Visualizations, Build with Visualizations module
# AudioFilters, Build with AudioFilters module
# VideoFilters, Build with VideoFilters module
# TagLib, Build with tags editor
# VAAPI, Build VAAPI acceleration into FFmpeg..untested
# VDPAU, Build VDPAU acceleration into FFmpeg..untested
# libavdevice, Build FFmpeg with libavdevice suport
# AudioCD, Build with AudioCD module....tested
# ALSA, Build with ALSA module..tested
# XVideo, Build with XVideo module
# CUVID, Build with CUVID module
# Notifications, Build additional notifications module..no need for this most use wbar
# ------Disabled features:
# PCH, Use precompiled headers
# GLSLC, Compile Vulkan shaders
# PortAudio, Build with PortAudio module
# Chiptune GME, Build Chiptune with GME support
# Chiptune SIDPLAY, Build Chiptune with SIDPLAY support
# PulseAudio, Build with PulseAudio module
# FindHwaccelDrivers, Find drivers path for hwaccel
# Git version, Append Git HEAD to QMPlay2 version
# Link Time Optimization, Enable link time optimization for release builds
# Address Sanitizer, Use Address Sanitizer
# Undefined Behavior Sanitizer, Use Undefined Behavior Sanitizer
# SolidActions, Install Solid actions
#############################################################################
make -j5 # about 2.5 minutes
make -j5 install/strip DESTDIR=/tmp/$P
cd /tmp

# locale
######## its not the normal format
mkdir -p $P-locale/usr/local/share/$P
mv $P/usr/local/share/$P/lang $P-locale/usr/local/share/$P/

# doc
#####
mkdir -p $P-doc/usr/local/share/doc/$P
mv $P/usr/local/share/man $P-doc/usr/local/share/
mv $P/usr/local/share/$P/AUTHORS $P-doc/usr/local/share/doc/$P
mv $P/usr/local/share/$P/LICENSE $P-doc/usr/local/share/doc/$P
mv $P/usr/local/share/$P/README* $P-doc/usr/local/share/doc/$P
rm -rf $P/usr/local/share/$P

# main
#######
rm -rf $P/usr/local/include
mkdir -p $P/usr/local/share/pixmaps
cp $P/usr/local/share/icons/hicolor/48x48/apps/QMPlay2.png $P/usr/local/share/pixmaps/
APP=$P/usr/local/share/applications
mv $APP/$P1.desktop $APP/$P.desktop
echo 'X-FullPathIcon=/usr/local/share/pixmaps/QMPlay2.png'  >> $APP/$P.desktop
cd $P/usr/local/bin
ln -s $P1 qmplay2
cd /tmp

# TCZ them
###########
LIST="$P $P-doc $P-locale"
for Z in $LIST
do
	mksquashfs $Z $Z.tcz
	md5sum $Z.tcz > $Z.tcz.md5.txt
	cd $Z
	find usr -not -type d > /tmp/$Z.tcz.list
        sed 's|usr|/usr|g' -i /tmp/$Z.tcz.list
        cd /tmp
done

ls -hal

echo 'Title:          qmplay2-doc.tcz
Description:    docs for qmplay2 
Version:        20.05.02
Author:         see AUTHORS
Original-site:  https://github.com/zaps166/QMPlay2
Copying-policy: LGPL v3
Size:           12K
Extension_by:   aus9
Tags:           audio video player alsa   
Comments:       man page and docs

Change-log:     2020/07/01 Original 20.05.02 11x
Current:        2020/07/01
' > $P-doc.tcz.info

echo 'Title:          qmplay2-locale.tcz
Description:    locales 
Version:        20.05.02
Author:         see doc TCE for AUTHORS
Original-site:  https://github.com/zaps166/QMPlay2
Copying-policy: LGPL v3
Size:           232K
Extension_by:   aus9
Tags:           audio video player alsa locale  
Comments:       locales not standard format, untested

Change-log:     2020/07/01 Original 20.05.02 11x
Current:        2020/07/01
' > $P-locale.tcz.info

echo 'Title:          qmplay2.tcz
Description:    QT5 alsa media player 
Version:        20.05.02
Author:         see doc TCE for AUTHORS
Original-site:  https://github.com/zaps166/QMPlay2
Copying-policy: LGPL v3
Size:           2.2M
Extension_by:   aus9
Tags:           audio video player alsa      
Comments:       Pulseaudio disabled by compile. ALSA, Xorg 
                or Xorg 3d needs to be setup first.

                dep file does not have Xorg or Xorg (3d) set.
                alsa users may need more dependencies.
                                                
                Youtube needs python downloaded + installed.
                TCE downloads and updates youtube-dl to 
                ~/.qmplay2 where other files can be found, 
                including log.

                dejavu-fonts-ttf.tcz provides glyph 0x266a.

                To play audio cd -> Playlist (or Alt + P)
                Click + -> select audiocd

                Vulkan users please read vulkan-tools.

                This TCE can search youtube or internet radio.

Change-log:     2020/07/01 Original 20.05.02 11x
Current:        2020/07/01
 ' > $P.tcz.info

echo 'qmplay2.tcz' > $P-locale.tcz.dep
echo 'taglib.tcz
qt-5.x-base.tcz
qt-5.x-dbus.tcz
qt-5.x-opengl.tcz
ffmpeg4.tcz
alsa.tcz
dejavu-fonts-ttf.tcz' > $P.tcz.dep
echo 'man-db.tcz' > $P-doc.tcz.dep

submitqc --libs
