mirror of
https://github.com/libretro/RetroArch.git
synced 2024-12-05 06:57:19 +00:00
e062b98088
find . -type f -exec sed -i '${/^[[:space:]]*$/d;}' {} \+
195 lines
4.4 KiB
Bash
Executable File
195 lines
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. ../version.all
|
|
platform=wiiu
|
|
EXT=a
|
|
scriptDir=
|
|
pngDir=
|
|
infoDir=
|
|
|
|
original_pwd=$(pwd)
|
|
|
|
setScriptDir()
|
|
{
|
|
scriptDir=$(dirname $(readlink -f $1))
|
|
}
|
|
|
|
setInfoDir()
|
|
{
|
|
if [ -d ../../dist/info ]; then
|
|
infoDir=$(readlink -f ../../dist/info)
|
|
elif [ $(ls -1 *.info |wc -l) > 0 ]; then
|
|
infoDir=$(pwd)
|
|
fi
|
|
|
|
if [ -z "$infoDir" ]; then
|
|
echo "WARNING: Could not find your *.info files. meta.xml files will not be generated."
|
|
fi
|
|
}
|
|
|
|
setPngDir()
|
|
{
|
|
pwd
|
|
if [ -d ../media/assets/pkg/wiiu ]; then
|
|
pngDir=$(readlink -f ../media/assets/pkg/wiiu)
|
|
elif [ $(ls -1 *.png |wc -l) > 0 ]; then
|
|
pngDir=$(pwd)
|
|
fi
|
|
|
|
if [ -z "$pngDir" ]; then
|
|
echo "WARNING: Could not find your *.png files. icon.png files will not be generated."
|
|
fi
|
|
}
|
|
|
|
getCores()
|
|
{
|
|
if [ -d ../../dist/wiiu ]; then
|
|
ls -1 ../../dist/wiiu/*.a
|
|
elif [ $(ls -1 *.a |wc -l) > 0 ]; then
|
|
ls -1 *.a
|
|
fi
|
|
}
|
|
|
|
clean()
|
|
{
|
|
local here=$(pwd)
|
|
|
|
cd $scriptDir/..
|
|
make -f Makefile.wiiu clean || exit 1
|
|
|
|
for trash in libretro_wiiu.a libretro_wiiu.elf libretro_wiiu.rpx \
|
|
objs/wiiu pkg/wiiu/wiiu pkg/wiiu/retroarch pkg/wiiu/rpx
|
|
do
|
|
rm -rf $trash
|
|
done
|
|
|
|
cd $here
|
|
}
|
|
|
|
# $1 = core filename (e.g. ../../dist/wiiu/somecore_libretro_wiiu.a
|
|
# $2 = desired package type, e.g. rpx or elf
|
|
coreNameToPackageName()
|
|
{
|
|
local packageName=$(basename $1 |awk -F'\.a' '{print $1}' |sed 's/_wiiu//')
|
|
echo "$packageName"
|
|
}
|
|
|
|
lookup()
|
|
{
|
|
cat | grep "$1 = " | sed "s/$1 = \"//" | sed s/\"//
|
|
}
|
|
|
|
generateMetaXml()
|
|
{
|
|
local infoFile=$1
|
|
local xmlDir=$2
|
|
local outFile=$xmlDir/meta.xml
|
|
|
|
if [ ! -e $infoFile ]; then
|
|
return 1
|
|
fi
|
|
|
|
local display_name=$(cat $infoFile |lookup "display_name")
|
|
local corename=$(cat $infoFile |lookup "corename")
|
|
local authors=$(cat $infoFile |lookup "authors" |sed s/\|/\ -\ /g)
|
|
local systemname=$(cat $infoFile |lookup "systemname")
|
|
local license=$(cat $infoFile |lookup "license")
|
|
local build_date=$(date +%Y%m%d%H%M%S)
|
|
local build_hash=$(git rev-parse --short HEAD 2>/dev/null)
|
|
|
|
mkdir -p $xmlDir
|
|
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' > $outFile
|
|
echo '<app version="1">' >> $outFile
|
|
echo ' <name>'$corename'</name>' >> $outFile
|
|
echo ' <coder>'$authors'</coder>' >> $outFile
|
|
echo ' <version>'$RARCH_VERSION' r'$build_hash'</version>' >> $outFile
|
|
echo ' <release_date>'$build_date'</release_date>' >> $outFile
|
|
echo ' <short_description>RetroArch</short_description>' >> $outFile
|
|
echo -e ' <long_description>'$display_name'\n\nSystem: '$systemname'\nLicense: '$license'</long_description>' >> $outFile
|
|
echo ' <category>emu</category>' >> $outFile
|
|
echo ' <url>https://github.com/libretro</url>' >> $outFile
|
|
echo '</app>' >> $outFile
|
|
}
|
|
|
|
copyPng()
|
|
{
|
|
local pngFilename=$(echo $1 |sed 's/_libretro//').png
|
|
local destFilename=$2/icon.png
|
|
|
|
if [ -e $pngDir/$pngFilename ]; then
|
|
cp $pngDir/$pngFilename $destFilename
|
|
fi
|
|
}
|
|
|
|
buildCore()
|
|
{
|
|
local core=$1
|
|
local distDir=$(pwd)
|
|
local buildDir=$(dirname $(pwd))
|
|
local packageName=$(coreNameToPackageName $core)
|
|
local rpxResult=$packageName.rpx
|
|
local elfResult=$packageName.elf
|
|
|
|
cd $buildDir
|
|
|
|
if [ -f Makefile.wiiu ]; then
|
|
echo "--- building core: $packageName ---"
|
|
rm -f libretro_wiiu.a
|
|
cp $distDir/$core libretro_wiiu.a
|
|
make -f Makefile.wiiu \
|
|
PC_DEVELOPMENT_TCP_PORT=$PC_DEVELOPMENT_TCP_PORT \
|
|
-j3 || exit 1
|
|
|
|
if [ ! -z "$infoDir" ]; then
|
|
for i in 'pkg/wiiu/retroarch/cores' 'pkg/wiiu/rpx/retroarch/cores'; do
|
|
mkdir -p $i/info
|
|
cp $infoDir/$packageName.info $i/info
|
|
generateMetaXml $i/info/$packageName.info $i/../../wiiu/apps/$packageName
|
|
done
|
|
fi
|
|
|
|
if [ ! -z "$pngDir" ]; then
|
|
for i in 'pkg/wiiu/wiiu/apps' 'pkg/wiiu/rpx/wiiu/apps'; do
|
|
copyPng $packageName $i/$packageName
|
|
done
|
|
fi
|
|
|
|
for i in "pkg/wiiu/wiiu/apps/$packageName" 'pkg/wiiu/retroarch/cores'; do
|
|
mkdir -p $i
|
|
cp retroarch_wiiu.elf $i/$elfResult
|
|
done
|
|
for i in "pkg/wiiu/rpx/wiiu/apps/$packageName" 'pkg/wiiu/rpx/retroarch/cores'; do
|
|
mkdir -p $i
|
|
cp retroarch_wiiu.rpx $i/$rpxResult
|
|
done
|
|
else
|
|
echo "ERROR: Something went wrong. Makefile.wiiu not found."
|
|
exit 1
|
|
fi
|
|
|
|
cd $distDir
|
|
}
|
|
|
|
setScriptDir $0
|
|
|
|
clean
|
|
|
|
cd $scriptDir
|
|
if [ -e ../wiiu-devel.properties ]; then
|
|
. ../wiiu-devel.properties
|
|
fi
|
|
|
|
setInfoDir
|
|
setPngDir
|
|
|
|
cores=$(getCores)
|
|
|
|
if [ -z "$cores" ]; then
|
|
echo "ERROR: No cores found. Nothing to do."
|
|
exit 1
|
|
fi
|
|
|
|
for core in $cores; do
|
|
buildCore $core
|
|
done
|