joeydev/tools/prebuild.sh

77 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
#
# JoeyDev
# Copyright (C) 2018-2023 Scott Duensing <scott@kangaroopunch.com>
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
# arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software. If you use this software
# in a product, an acknowledgment in the product documentation would be
# appreciated but is not required.
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source distribution.
#
ROOT=$1
pushd "${ROOT}" || exit &> /dev/null
mkdir -p ui/generated
glib-compile-resources \
--sourcedir=ui/ \
--target=ui/generated/resources \
--generate \
ui/joeydev.gresource.xml
glib-compile-resources \
--sourcedir=ui/ \
--target=ui/generated/resources.c \
--generate-source \
ui/joeydev.gresource.xml
glib-compile-resources \
--sourcedir=ui/ \
--target=ui/generated/resources.h \
--generate-header \
ui/joeydev.gresource.xml
popd || true &> /dev/null
:<<'OLD'
pushd "${ROOT}/tools" || exit &> /dev/null
echo Generating UI Headers...
rm -f ../ui/generated/*.h &> /dev/null || true
# We do this from the tools folder so the variable names get "__ui_" prepended to them.
for E in glade png; do
for F in ../ui/*."${E}"; do
I="${F}" # Input File.
R="${E}" # What extension to remove.
GUARD="${E^^}"_$(basename -s ."${R}" "${I}")_H
GUARD=${GUARD^^}
HEADER=../ui/generated/"${E}"$(basename -s ."${R}" "${I}").h
echo " ${HEADER}"
echo "#ifndef ${GUARD}" > "${HEADER}"
# shellcheck disable=SC2129
echo "#define ${GUARD}" >> "${HEADER}"
xxd -i "${I}" - >> "${HEADER}"
echo "#endif // ${GUARD}" >> "${HEADER}"
sed -i 's/unsigned char/char/' "${HEADER}"
done
done
popd || true &> /dev/null
OLD