(ded4a3e0a) v0.9.0.7

This commit is contained in:
Joonas Rikkonen
2019-06-25 16:00:44 +03:00
parent e5ae622c77
commit 4a51db77b5
1777 changed files with 421528 additions and 917 deletions
@@ -0,0 +1,182 @@
.TH MGCB 1 "October 2017" "MonoGame 3.7"
.SH NAME
mgcb \- builds optimized game content for MonoGame projects
.SH SYNOPSIS
.B mgcb
[\fR\fIOPTIONS\fR]
.\".IR file ...
.SH DESCRIPTION
.B mgcb
is a command line tool for building XNB content on Windows, Mac, and Linux desktop systems.
Typically it is executed by the Pipeline GUI tool when editing content or indirectly from Visual Studio or MonoDevelop during the build process of a MonoGame project. Alternatively you can use it yourself from the command line for specialized build pipelines or for debugging content processing.
.TP
.BR \fIFILENAME\fR
Automatically selects either --build or --@ option, depending on the file extension. See below for more detail on what these options are.
.TP
.BR \-@ ", " \-\-@ =\fIRESPONSEFILE\fR
Read a text response file with additional command line options and switches.
.TP
.BR \-b ", " \-\-build =\fISOURCEFILE\fR;\fIDESTINATIONFILE\fR
Build the content source file using the previously set switches and options. Optional destination path may be specified if you want to change the output filepath.
.TP
.BR \-c ", " \-\-clean
Delete all previously built content and intermediate files.
.TP
.BR \-\-compress
Compress the XNB files for smaller file sizes.
.TP
.BR \-\-config =\fISTRING\fR
The optional build config string from the build system.
.TP
.BR \-\-copy =\fISOURCEFILE\fR
Copy the content source file verbatim to the output directory.
.TP
.BR \-h ", " \-\-help
Displays help menu.
.TP
.BR \-i ", " \-\-importer =\fICLASSNAME\fR
Defines the class name of the content importer for reading source content.
.TP
.BR \-I ", " \-\-incremental
Skip cleaning files not included in the current build.
.TP
.BR \-n ", " \-\-intermediateDir =\fIPATH\fR
The directory where all intermediate files are written. See below for path macros.
.TP
.BR \-d ", " \-\-launchdebugger
Wait for debugger to attach before building content.
.TP
.BR \-o ", " \-\-outputDir =\fIPATH\fR
The directory where all content is written. See below for path macros.
.TP
.BR \-t ", " \-\-platform =\fITARGETPLATFORM\fR
Set the target platform for this build. Defaults to Windows desktop DirectX.
The following is the list of available target platforms:
.RS
.TP 20
.BR Windows
Windows DirectX desktop platform.
.TP 20
.BR Xbox360
Xbox 360 platform.
.TP 20
.BR iOS
iOS platform.
.TP 20
.BR Android
Android platform.
.TP 20
.BR DesktopGL
OpenGL desktop platform.
.TP 20
.BR MacOSX
MacOSX platform
.TP 20
.BR WindowsStoreApp
UWP platform.
.TP 20
.BR NativeClient
Web native client platform.
.TP 20
.BR PlayStationMobile
PlayStation mobile platform.
.TP 20
.BR WindowsPhone8
Windows Phone 8 platform.
.TP 20
.BR RaspberryPi
Raspberry Pi platform.
.TP 20
.BR PlayStation4
PlayStation 4 platform.
.TP 20
.BR PSVita
PlayStation Vita platform.
.TP 20
.BR XboxOne
Xbox One platform.
.TP 20
.BR Switch
Nintendo Switch platform.
.RE
.TP
.BR \-p ", " \-\-processor =\fICLASSNAME\fR
Defines the class name of the content processor for processing imported content.
.TP
.BR \-P ", " \-\-processorParam =\fINAME:VALUE\fR
Defines a parameter name and value to set on a content processor.
.TP
.BR \-g ", " \-\-profile =\fIGRAPHICSPROFILE\fR
Set the target graphics profile for this build. Defaults to HiDef.
The following is the list of available graphics profiles:
.RS
.TP 8
.BR Reach
Use a limited set of graphic features and capabilities, allowing the game to support the widest variety of devices.
.TP 8
.BR HiDef
Use the largest available set of graphic features and capabilities to target devices, that have more enhanced graphic capabilities.
.RE
.TP
.BR \-q ", " \-\-quiet
Only output content build errors.
.TP
.BR \-r ", " \-\-rebuild
Forces a full rebuild of all content.
.TP
.BR \-f ", " \-\-reference =\fIASSEMBLY\fR
Adds an assembly reference for resolving content importers, processors, and writers.
.TP
.BR \-w ", " \-\-workingDir =\fIDIRECTORYPATH\fR
The working directory where all source content is located.
.TP
All command can be also called using / instead of \-\- or \-, this is to ensure compatibility between executing the command from Windows and Unix.
.SH PATH MACROS
The following is a list of custom path macros:
.TP
.BR $(Platform)
Gets replaced by the target platform.
.TP
.BR $(Configuration)\ /\ $(Config)
Gets replaced by the current config string.
.TP
.BR $(Profile)
Gets replaced by the current graphics profile.
.SH SEE ALSO
.TP
More documentation is available at: <http://www.monogame.net/documentation/?page=MGCB>
@@ -0,0 +1,85 @@
# MGCB autocomplete for bash
function _mgcbcomplete()
{
local cur prev
_get_comp_words_by_ref -n = cur prev
case "$cur" in
"--platform="* | "-t="* | "/platform="* | "/t="*)
COMPREPLY=($(compgen -W "Windows Xbox360 iOS Android DesktopGL \
MacOSX WindowsStoreApp NativeClient \
PlayStationMobile WindowsPhone8 RaspberryPi \
PlayStation4 PSVita XboxOne Switch" -- ${cur#*=}))
compopt +o nospace
return 0;
;;
"--profile="* | "-p="* | "/profile="* | "/p="*)
COMPREPLY=($(compgen -W "Reach HiDef" -- ${cur#*=}))
compopt +o nospace
return 0;
;;
"--build="* | "--outputDir="* | "--intermediateDir="* | \
"--workingDir="* | "--copy="* | "--reference"* | "--@="* | \
"-b="* | "-o="* | "-n="* | "-w="* | "-f="* | "-@="* | \
"/build="* | "/outputDir="* | "/intermediateDir="* | \
"/workingDir="* | "/copy="* | "/reference"* | \
"/b="* | "/o="* | "/n="* | "/w="* | "/f="* | "/@="*)
COMPREPLY=()
return 0
;;
"--config=" | "/config=")
return 0;
;;
"--processor=" | "--importer=" | "--processorParam=" | \
"/processor=" | "/importer=" | "/processorParam=")
# TODO
return 0;
;;
"-b" | "-o" | "-n" | "-w" | "-f" | "-@" | \
"-q" | "-t" | "-p" | "-P" | "-i" | \
"/b" | "/o" | "/n" | "/w" | "/f" | "/@" | \
"/q" | "/t" | "/p" | "/P" | "/i")
COMPREPLY=("$cur=")
return 0;
;;
"-c" | "-h" | "-I" | "-d" | "-q" | "-r" | \
"/c" | "/h" | "/I" | "/d" | "/q" | "/r")
COMPREPLY=("$cur")
compopt +o nospace
return 0;
;;
esac
if [[ "$cur" == "--"* ]]
then
COMPREPLY=($(compgen -W "--@= --build= --clean --compress --config= --copy= \
--help --importer= --incremental --intermediateDir= \
--launchdebugger --outputDir= --platform= --processor= \
--processorParam= --profile= --quiet --rebuild \
--reference= --workingDir=" -- $cur))
if [[ ${COMPREPLY[0]} != *"=" ]]
then
compopt +o nospace
fi
return 0;
fi
if [[ "$cur" == "/"* ]]
then
COMPREPLY=($(compgen -W "/@= /build= /clean /compress /config= /copy= \
/help /importer= /incremental /intermediateDir= \
/launchdebugger /outputDir= /platform= /processor= \
/processorParam= /profile= /quiet /rebuild \
/reference= /workingDir=" -- $cur))
if [[ ${COMPREPLY[0]} != *"=" ]]
then
compopt +o nospace
fi
return 0;
fi
}
complete -o nospace -o default -F _mgcbcomplete mgcb
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="512.000000pt"
height="512.000000pt"
viewBox="0 0 512.000000 512.000000"
preserveAspectRatio="xMidYMid meet"
id="svg4186"
inkscape:version="0.91 r"
sodipodi:docname="LogoOnly_512px (1).svg">
<defs
id="defs4196" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview4194"
showgrid="false"
inkscape:zoom="0.64375"
inkscape:cx="229.78683"
inkscape:cy="330.02803"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg4186" />
<metadata
id="metadata4188">
Created by potrace 1.11, written by Peter Selinger 2001-2013
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
fill="#000000"
stroke="none"
id="g4190"
style="fill:#e73c00;fill-opacity:1">
<path
d="M1300 5106 c-438 -68 -809 -304 -1049 -667 -106 -159 -179 -336 -224 -538 -20 -94 -21 -119 -24 -1291 -3 -1040 -2 -1209 12 -1301 50 -344 189 -624 430 -864 238 -239 524 -382 860 -430 148 -22 2362 -22 2510 0 465 67 858 331 1101 738 57 96 125 261 153 372 47 182 51 247 51 843 l0 562 -1510 0 -1510 0 0 -465 0 -465 1046 0 1047 0 -5 -112 c-4 -90 -11 -127 -31 -180 -69 -181 -218 -315 -402 -363 -52 -13 -203 -15 -1195 -15 -992 0 -1143 2 -1195 15 -183 48 -330 180 -403 363 l-27 67 -3 1159 c-3 1279 -6 1209 61 1345 21 45 56 90 107 141 119 119 244 170 417 170 253 0 473 -162 555 -410 21 -61 22 -87 26 -467 l3 -403 459 0 459 0 3 403 c4 380 5 406 26 467 116 349 500 510 828 349 121 -60 227 -179 282 -317 l27 -67 3 -417 3 -418 465 0 465 0 -4 448 c-4 493 -8 528 -77 732 -212 636 -827 1057 -1495 1027 -340 -15 -652 -137 -912 -356 l-73 -61 -72 61 c-197 165 -425 276 -678 329 -132 27 -384 36 -510 16z"
id="path4192"
style="fill:#e73c00;fill-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/x-mgcb">
<comment>MonoGame Pipeline Project</comment>
<generic-icon name="monogame"/>
<icon name="monogame"/>
<glob pattern="*.mgcb"/>
</mime-type>
</mime-info>
@@ -0,0 +1,143 @@
#!/bin/bash
# Functions
echodep()
{
line=" - $1"
while [ ${#line} -lt 50 ]
do
line="$line."
done
echo -ne "$line"
if eval "$2"
then
echo -e "\e[32m[Found]\e[0m"
else
echo -e "\e[31m[Not Found]\e[0m"
fi
}
# Check installation priviledge
if [ "$(id -u)" != "0" ]; then
echo "Please make sure you are running this installer with sudo or as root." 1>&2
exit 1
fi
DIR=$(pwd)
IDIR="/usr/lib/mono/xbuild/MonoGame/v3.0"
# Show dependency list
echo "Dependencies:"
echodep "mono-runtime" "type 'mono' > /dev/null 2>&1"
echo ""
read -p "Continue (Y, n): " choice2
case "$choice2" in
n|N ) exit ;;
*) ;;
esac
# Check previous versions
if type "mgcb" > /dev/null 2>&1
then
echo "Previous version detected, trying to uninstall..."
# Try and uninstall previus versions
if [ -f /opt/monogame/uninstall.sh ]
then
sudo bash /opt/monogame/uninstall.sh
elif [ -f /opt/MonoGameSDK/uninstall.sh ]
then
sudo bash /opt/MonoGameSDK/uninstall.sh
else
echo "Could not uninstall, please uninstall any previous version of MonoGame SDK manually." 1>&2
exit 1
fi
fi
# MonoGame SDK installation
echo "Installing MonoGame SDK..."
rm -rf "$IDIR"
mkdir -p "$IDIR"
cp -rf "$DIR/MonoGameSDK/." "$IDIR" -R
rm -rf "/opt/MonoGameSDK"
ln -s "$IDIR" "/opt/MonoGameSDK"
# Fix Permissions
chmod +x "$IDIR/Tools/ffmpeg"
chmod +x "$IDIR/Tools/ffprobe"
# Monogame Pipeline terminal commands
echo "Creating launcher items..."
cat > /usr/bin/monogame-pipeline-tool <<'endmsg'
#!/bin/bash
mono /usr/lib/mono/xbuild/MonoGame/v3.0/Tools/Pipeline.exe "$@"
endmsg
chmod +x /usr/bin/monogame-pipeline-tool
cat > /usr/bin/mgcb <<'endmsg'
#!/bin/bash
mono /usr/lib/mono/xbuild/MonoGame/v3.0/Tools/MGCB.exe "$@"
endmsg
chmod +x /usr/bin/mgcb
cp "$DIR/Main/mgcbcomplete" "/etc/bash_completion.d/mgcb"
# MonoGame icon
mkdir -p /usr/share/icons/hicolor/scalable/mimetypes
cp $DIR/Main/monogame.svg /usr/share/icons/hicolor/scalable/mimetypes/monogame.svg
gtk-update-icon-cache /usr/share/icons/hicolor/ -f &> /dev/null
# Application launcher
cat > /usr/share/applications/MonogamePipeline.desktop <<'endmsg'
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=MonoGame Pipeline Tool
GenericName=MonoGame Pipeline Tool
Comment=Creates platform specific content files.
Exec=monogame-pipeline-tool %F
TryExec=monogame-pipeline-tool
Icon=monogame
StartupNotify=true
Terminal=false
Type=Application
MimeType=text/x-mgcb;
Categories=Development;
StartupWMClass=Pipeline
endmsg
# Man pages
echo "Installing man pages..."
IFS=':' read -r -a ARRAY <<< "$(manpath)"
for MANPATH in "${ARRAY[@]}"
do
if [ -d "$MANPATH/man1" ]
then
cp -f "$DIR/Main/mgcb.1" "$MANPATH/man1/mgcb.1"
gzip -f "$MANPATH/man1/mgcb.1"
break
fi
done
# Mimetype
echo "Adding mimetype..."
touch mgcb.xml
xdg-mime uninstall mgcb.xml
xdg-mime install $DIR/Main/x-mgcb.xml > /dev/null
xdg-mime default "MonogamePipeline.desktop" text/mgcb
# Uninstall script
chmod +x $IDIR/uninstall.sh
ln -s $IDIR/uninstall.sh /usr/bin/monogame-uninstall
echo "Installation complete"
echo ""
echo " - To uninstall MonoGame SDK you can run 'monogame-uninstall' from terminal."
echo " - To install templates for MonoDevelop, go Tools > Extensions > Gallery > Game Development > MonoGame Extensions, and install it."
echo " - To install templates for Rider simply run 'dotnet new --install MonoGame.Templates.CSharp'"
echo ""
echo ""
@@ -0,0 +1,34 @@
#!/bin/bash
# Check removale priviledge
if [ "$(id -u)" != "0" ]; then
echo "Please make sure you are running this uninstaller with sudo or as root." 1>&2
exit 1
fi
# Remove terminal commands for mgcb and pipeline tool
rm -f /usr/bin/monogame-pipeline-tool
rm -f /usr/bin/monogame-uninstall
rm -f /usr/bin/mgcb
rm -f /etc/bash_completion.d/mgcb
# Remove application icon
rm -rf /usr/share/icons/gnome/scalable/mimetypes/monogame.svg
# Remove pipeline tool application launcher
rm -rf /usr/share/applications/Monogame\ Pipeline.desktop
# Remove mgcb mimetype
touch /opt/MonoGameSDK/x-mgcb.xml
xdg-mime uninstall /opt/MonoGameSDK/x-mgcb.xml
# Remove MonoGame SDK
rm -rf /usr/lib/mono/xbuild/MonoGame
rm -rf /opt/MonoGameSDK
# Remove man pages
IFS=':' read -r -a ARRAY <<< "$(manpath)"
for MANPATH in "${ARRAY[@]}"
do
rm -rf "$MANPATH/man1/mgcb.1.gz"
done