mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 11:17:46 +00:00
2d919768ac
The new dialogs includes 5 settings: 1. Flag to turn on Optimization (off by default) 2. Flag to strip symbols (On by default) 3. String for extra compiler flags 4. String for extra linker flags 5. Setting for max compiler processes (default of 3) Fixes: #65 Fixes: #40
159 lines
5 KiB
Bash
Executable file
159 lines
5 KiB
Bash
Executable file
#!/bin/bash
|
|
# QB64 Installer
|
|
# Argument 1: If not blank, qb64 will not be started after compilation
|
|
|
|
dont_run="$1"
|
|
|
|
#This checks the currently installed packages for the one's QB64 needs
|
|
#And runs the package manager to install them if that is the case
|
|
pkg_install() {
|
|
#Search
|
|
packages_to_install=
|
|
for pkg in $pkg_list; do
|
|
if [ -z "$(echo "$installed_packages" | grep $pkg)" ]; then
|
|
packages_to_install="$packages_to_install $pkg"
|
|
fi
|
|
done
|
|
if [ -n "$packages_to_install" ]; then
|
|
echo "Installing required packages. If prompted to, please enter your password."
|
|
$installer_command $packages_to_install
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
#Make sure we're not running as root
|
|
if [ $EUID == "0" ]; then
|
|
echo "You are trying to run this script as root. This is highly unrecommended."
|
|
echo "This script will prompt you for your sudo password if needed to install packages."
|
|
exit 1
|
|
fi
|
|
|
|
GET_WGET=
|
|
#Path to Icon
|
|
#Relative Path to icon -- Don't include beginning or trailing '/'
|
|
QB64_ICON_PATH="internal/source"
|
|
|
|
#Name of the Icon picture
|
|
QB64_ICON_NAME="qb64icon32.png"
|
|
|
|
DISTRO=
|
|
|
|
lsb_command=`which lsb_release 2> /dev/null`
|
|
if [ -z "$lsb_command" ]; then
|
|
lsb_command=`which lsb_release 2> /dev/null`
|
|
fi
|
|
|
|
#Outputs from lsb_command:
|
|
|
|
#Arch Linux = arch
|
|
#Debian = debian
|
|
#Fedora = Fedora
|
|
#KUbuntu = ubuntu
|
|
#LUbuntu = ubuntu
|
|
#Linux Mint = linuxmint
|
|
#Ubuntu = ubuntu
|
|
#Slackware = slackware
|
|
#VoidLinux = voidlinux
|
|
#XUbuntu = ubuntu
|
|
#Zorin = Zorin
|
|
if [ -n "$lsb_command" ]; then
|
|
DISTRO=`$lsb_command -si | tr '[:upper:]' '[:lower:]'`
|
|
elif [ -e /etc/arch-release ]; then
|
|
DISTRO=arch
|
|
elif [ -e /etc/debian_version ] || [ -e /etc/debian_release ]; then
|
|
DISTRO=debian
|
|
elif [ -e /etc/fedora-release ]; then
|
|
DISTRO=fedora
|
|
elif [ -e /etc/redhat-release ]; then
|
|
DISTRO=redhat
|
|
elif [ -e /etc/centos-release ]; then
|
|
DISTRO=centos
|
|
fi
|
|
|
|
#Find and install packages
|
|
if [ "$DISTRO" == "arch" ]; then
|
|
echo "ArchLinux detected."
|
|
pkg_list="gcc make zlib xorg-xmessage $GET_WGET"
|
|
installed_packages=`pacman -Q`
|
|
installer_command="sudo pacman -S "
|
|
pkg_install
|
|
elif [ "$DISTRO" == "linuxmint" ] || [ "$DISTRO" == "ubuntu" ] || [ "$DISTRO" == "debian" ] || [ "$DISTRO" == "zorin" ]; then
|
|
echo "Debian based distro detected."
|
|
pkg_list="g++ make x11-utils mesa-common-dev libglu1-mesa-dev libasound2-dev zlib1g-dev $GET_WGET"
|
|
installed_packages=`dpkg -l`
|
|
installer_command="sudo apt-get -y install "
|
|
pkg_install
|
|
elif [ "$DISTRO" == "fedora" ] || [ "$DISTRO" == "redhat" ] || [ "$DISTRO" == "centos" ]; then
|
|
echo "Fedora/Redhat based distro detected."
|
|
pkg_list="gcc-c++ make xmessage mesa-libGLU-devel alsa-lib-devel zlib-devel $GET_WGET"
|
|
installed_packages=`yum list installed`
|
|
installer_command="sudo yum install "
|
|
pkg_install
|
|
elif [ "$DISTRO" == "voidlinux" ]; then
|
|
echo "VoidLinux detected."
|
|
pkg_list="gcc make xmessage glu-devel zlib-devel alsa-lib-devel $GET_WGET"
|
|
installed_packages=`xbps-query -l |grep -v libgcc`
|
|
installer_command="sudo xbps-install -Sy "
|
|
pkg_install
|
|
|
|
elif [ -z "$DISTRO" ]; then
|
|
echo "Unable to detect distro, skipping package installation"
|
|
echo "Please be aware that for QB64 to compile, you will need the following installed:"
|
|
echo " OpenGL developement libraries"
|
|
echo " ALSA development libraries"
|
|
echo " GNU C++ Compiler (g++)"
|
|
echo " xmessage (x11-utils)"
|
|
echo " zlib"
|
|
fi
|
|
|
|
echo "Compiling and installing QB64..."
|
|
make clean
|
|
make OS=lnx BUILD_QB64=y -j3
|
|
|
|
if [ -e "./qb64" ]; then
|
|
echo "Done compiling!!"
|
|
|
|
echo "Creating ./run_qb64.sh script..."
|
|
_pwd=`pwd`
|
|
echo "#!/bin/sh" > ./run_qb64.sh
|
|
echo "cd $_pwd" >> ./run_qb64.sh
|
|
echo "./qb64 &" >> ./run_qb64.sh
|
|
|
|
chmod +x ./run_qb64.sh
|
|
#chmod -R 777 ./
|
|
echo "Adding QB64 menu entry..."
|
|
cat > ~/.local/share/applications/qb64.desktop <<EOF
|
|
[Desktop Entry]
|
|
Name=QB64 Programming IDE
|
|
GenericName=QB64 Programming IDE
|
|
Exec=$_pwd/run_qb64.sh
|
|
Icon=$_pwd/$QB64_ICON_PATH/$QB64_ICON_NAME
|
|
Terminal=false
|
|
Type=Application
|
|
Categories=Development;IDE;
|
|
Path=$_pwd
|
|
StartupNotify=false
|
|
EOF
|
|
|
|
if [ -z "$dont_run" ]; then
|
|
echo "Running QB64..."
|
|
./qb64 &
|
|
fi
|
|
|
|
echo "QB64 is located in this folder:"
|
|
echo "`pwd`"
|
|
echo "There is a ./run_qb64.sh script in this folder that should let you run qb64 if using the executable directly isn't working."
|
|
echo
|
|
echo "You should also find a QB64 option in the Programming/Development section of your menu you can use."
|
|
else
|
|
### QB64 didn't compile
|
|
echo "It appears that the qb64 executable file was not created, this is usually an indication of a compile failure (You probably saw lots of error messages pop up on the screen)"
|
|
echo "Usually these are due to missing packages needed for compilation. If you're not running a distro supported by this compiler, please note you will need to install the packages listed above."
|
|
echo "If you need help, please feel free to post on the QB64 Forums detailing what happened and what distro you are using."
|
|
echo "Also, please tell them the exact contents of this next line:"
|
|
echo "DISTRO: $DISTRO"
|
|
fi
|
|
echo
|
|
echo "Thank you for using the QB64 installer."
|