diff --git a/Builds/QtCreator/Fractorium/Fractorium.pro b/Builds/QtCreator/Fractorium/Fractorium.pro index f6a98c1..f8d2142 100644 --- a/Builds/QtCreator/Fractorium/Fractorium.pro +++ b/Builds/QtCreator/Fractorium/Fractorium.pro @@ -16,8 +16,6 @@ PRJ_DIR = $$SRC_DIR/Fractorium target.path = $$BIN_INSTALL_DIR INSTALLS += target -# FIXME: flam3-palettes.xml does not install when installing from .deb, but `make install` works. - palettes.path = $$SHARE_INSTALL_DIR palettes.files = $$ASSETS_DIR/flam3-palettes.xml INSTALLS += palettes @@ -26,6 +24,14 @@ themes.path = $$SHARE_INSTALL_DIR themes.files = $$ASSETS_DIR/dark.qss INSTALLS += themes +icon.path = $$SHARE_INSTALL_DIR +icon.files = $$PRJ_DIR/Icons/Fractorium.png +INSTALLS += icon + +launcher.path = $$LAUNCHER_INSTALL_DIR +launcher.files = $$ASSETS_DIR/Fractorium.desktop +INSTALLS += launcher + macx:ICON = $$ASSETS_DIR/Fractorium.icns LIBS += -L$$absolute_path($$DESTDIR) -lEmber diff --git a/Builds/QtCreator/defaults.pri b/Builds/QtCreator/defaults.pri index e458994..4780a63 100644 --- a/Builds/QtCreator/defaults.pri +++ b/Builds/QtCreator/defaults.pri @@ -8,6 +8,7 @@ unix|macx { LIB_INSTALL_DIR = /usr/lib BIN_INSTALL_DIR = /usr/bin SHARE_INSTALL_DIR = /usr/share/fractorium + LAUNCHER_INSTALL_DIR = /usr/share/applications } # When loaded by QtCreator diff --git a/Builds/create-symlinks.sh b/Builds/create-symlinks.sh index aa15f27..f8944c6 100644 --- a/Builds/create-symlinks.sh +++ b/Builds/create-symlinks.sh @@ -23,14 +23,28 @@ if [[ ! -e $linkpath && -e $targetpath ]]; then ln -s "$targetpath" "$linkpath" fi -targetpath=$(ls -d1 /usr/include/*/GL | head -n 1) +targetpath="" + +if [ -d /usr/include/*/GL ]; then + targetpath=$(ls -d1 /usr/include/*/GL | head -n 1) +elif [ -d /usr/include/GL ]; then + targetpath="/usr/include/GL" +fi + linkpath="$LOCAL_INCLUDE_DIR/GL" if [[ ! -e $linkpath && -e $targetpath ]]; then ln -s "$targetpath" "$linkpath" fi -targetpath=$(ls -d1 /usr/include/*/CL | head -n 1) +targetpath="" + +if [ -d /usr/include/*/CL ]; then + targetpath=$(ls -d1 /usr/include/*/CL | head -n 1) +elif [ -d /usr/include/CL ]; then + targetpath="/usr/include/CL" +fi + linkpath="$LOCAL_INCLUDE_DIR/CL" if [[ ! -e $linkpath && -e $targetpath ]]; then diff --git a/Data/BuildGuideLinux.md b/Data/BuildGuideLinux.md new file mode 100644 index 0000000..f1ee1f0 --- /dev/null +++ b/Data/BuildGuideLinux.md @@ -0,0 +1,64 @@ +# Building Guide for Linux + +Install `git` and clone the repository: + +``` +sudo apt-get install git +git clone https://github.com/mfeemster/fractorium +``` + +Install the dependencies. + +For Ubuntu 15.04 (vivid) and 15.10 (wily): + +``` +sudo apt-get install g++ libdbus-1-dev libgl1-mesa-dev libgl-dev libglm-dev libjpeg-dev libpng12-dev libtbb-dev libxml2-dev qt5-default qt5-qmake qtbase5-dev libqt5opengl5-dev ocl-icd-libopencl1 +``` + +Install the OpenCL drivers and opencl support for your hardware. For Nvidia: + +``` +sudo apt-get install nvidia-352 nvidia-352-dev nvidia-opencl-icd-352 nvidia-libopencl1-352 nvidia-prime nvidia-modprobe +``` + +If you have both Qt 4 and 5 installed, select Qt 5 before compilation: + +``` +export QT_SELECT=qt5 +``` + +Compile the binary: + +``` +cd fractorium +qmake +make +``` + +Run the binary from the release folder: + +``` +cd Bin/release +./fractorium +``` + +`sudo make install` will install the files directly. `sudo make uninstall` is +also available. + +You can also compile a `.deb` package to install locally. A few more tools will +be necessary: + +``` +sudo apt-get install bzr bzr-builddeb dh-make debhelper +``` + +A helper script is available, use `package-linux.sh` in the project root. It +will create `~/PPA/fractorium-VERSION` as a work folder, by default it builds a +signed source package. + +For local use you probably want an unsigned binary package: + +``` +cd fractorium +./package-linux.sh --binary-only --unsigned +``` diff --git a/Data/BuildGuideMacOSX.md b/Data/BuildGuideMacOSX.md new file mode 100644 index 0000000..5def351 --- /dev/null +++ b/Data/BuildGuideMacOSX.md @@ -0,0 +1,42 @@ +# Building Guide for Mac OS/X + +Install Xcode from the App Store. Install [homebrew](http://brew.sh/). + +Install `git` and clone the repository: + +``` +brew install git +git clone https://github.com/mfeemster/fractorium +``` + +Install the dependencies: + +``` +brew install qt5 tbb glm dbus jpeg libpng glib libxml2 +``` + +TODO: Confirm if `glib` and `libxml2` are actually needed. + +Add the Qt `bin` folder to `PATH` to make `qmake` available. In +`~/.bash_profile` or `~/.bashrc`: + +``` +PATH=/usr/local/opt/qt5/bin:$PATH +export PATH +``` + +Compile the binary: + +``` +cd fractorium +qmake CONFIG-=app_bundle +make +``` + +Run the binary from the release folder: + +``` +cd Bin/release +./fractorium +``` + diff --git a/Data/Fractorium.desktop b/Data/Fractorium.desktop new file mode 100644 index 0000000..e8b2678 --- /dev/null +++ b/Data/Fractorium.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Fractorium +GenericName=Fractal flame editor +Comment=Fractal flame editor +Exec=fractorium +TryExec=fractorium +Icon=/usr/share/fractorium/Fractorium.png +Terminal=false +Categories=Graphics; +MimeType= \ No newline at end of file diff --git a/README.md b/README.md index 1b0567a..570235b 100644 --- a/README.md +++ b/README.md @@ -5,17 +5,47 @@ A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL. -# Download +# Install -Windows: TODO +## Windows -Linux: TODO +Download: [Fractorium_Beta_0.9.9.3.msi](https://drive.google.com/file/d/0Bws5xPbHJph6Z3JiTHlYZ21YVFU/view?usp=sharing) -Mac OS/X (10.9+): TODO +## Linux + +### Install from PPA + +Enable `universe` in the Ubuntu Software Center: + +- open the Edit menu +- select Software Sources... +- enable "Community maintained ... `universe`" + +Add the [Fractorium Ubuntu PPA](https://launchpad.net/~fractorium/+archive/ubuntu/ppa) and install: + +``` +sudo apt-add-repository ppa:fractorium/ppa +sudo apt-get update +sudo apt-get install fractorium +``` + +### Install from .deb + +Download: [fractorium_0.9.9.3b-0ubuntu1_amd64.deb](https://launchpad.net/~fractorium/+archive/ubuntu/ppa/+files/fractorium_0.9.9.3b-0ubuntu1_amd64.deb) + +``` +cd ~/Downloads +sudo dpkg -i fractorium_0.9.9.3b-0ubuntu1_amd64.deb +``` + +## Mac OS/X (10.9+) + +TODO # Building from git ## Windows + Install Git-GUI and clone `https://github.com/mfeemster/fractorium.git` Then follow: @@ -24,117 +54,8 @@ Then follow: ## Linux -Install `git` and clone the repository: - -``` -sudo apt-get install git -git clone https://github.com/mfeemster/fractorium -``` - -Install the dependencies. - -For Ubuntu 15.04 (vivid) and 15.10 (wily): - -``` -sudo apt-get install g++ libdbus-1-dev libgl1-mesa-dev libgl-dev libglm-dev libjpeg-dev libpng12-dev libtbb-dev libxml2-dev qt5-default qt5-qmake qtbase5-dev libqt5opengl5-dev ocl-icd-libopencl1 -``` - -Install the OpenCL drivers and opencl support for your hardware. For Nvidia: - -``` -sudo apt-get install nvidia-352 nvidia-352-dev nvidia-opencl-icd-352 nvidia-libopencl1-352 nvidia-prime nvidia-modprobe -``` - -Compile the binary: - -``` -cd fractorium -qmake -make -``` - -Run the binary from the release folder: - -``` -cd Bin/release -./fractorium -``` - -`sudo make install` will install the files directly. `sudo make uninstall` is -also available. - -You can also compile a `.deb` package to install locally. A few more tools will -be necessary: - -``` -sudo apt-get install bzr bzr-builddeb dh-make debhelper -``` - -A helper script is available, use `package-linux.sh` in the project root. It -will create `~/PPA/fractorium-VERSION` as a work folder, by default it builds a -signed source package. - -For local use you probably want an unsigned binary package: - -``` -cd fractorium -./package-linux.sh --binary-only --unsigned -``` +See [Building Guide for Linux](./Data/BuildGuideLinux.md) ## Mac OS/X 10.9+ -Install Xcode from the App Store. Install [homebrew](http://brew.sh/). - -Install `git` and clone the repository: - -``` -brew install git -git clone https://github.com/mfeemster/fractorium -``` - -Install the dependencies: - -``` -brew install qt5 tbb glm dbus jpeg libpng glib libxml2 -``` - -TODO: Confirm if `glib` and `libxml2` are actually needed. - -Add the Qt `bin` folder to `PATH` to make `qmake` available. In -`~/.bash_profile` or `~/.bashrc`: - -``` -PATH=/usr/local/opt/qt5/bin:$PATH -export PATH -``` - -Compile the binary: - -``` -cd fractorium -qmake CONFIG-=app_bundle -make -``` - -Run the binary from the release folder: - -``` -cd Bin/release -./fractorium -``` - -# OpenCL tips - -Nvidia, Ati, Intel. - -## Windows - -TODO - -## Linux - -TODO - -## Mac OS/X - -TODO +See [Building Guide for Mac OS/X](./Data/BuildGuideMacOSX.md) diff --git a/Source/Fractorium/Icons/Fractorium.png b/Source/Fractorium/Icons/Fractorium.png new file mode 100644 index 0000000..ba64681 Binary files /dev/null and b/Source/Fractorium/Icons/Fractorium.png differ diff --git a/debian/changelog b/debian/changelog index afdac9e..5ac3b5a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +fractorium (0.9.9.3b-0ubuntu1) wily; urgency=low + + * release 0.9.9.3b + + -- Gambhiro Bhikkhu Wed, 20 Jan 2016 17:08:30 +0000 + fractorium (0.9.9.2e-0ubuntu1) wily; urgency=low * lib symlink fix diff --git a/main.pro b/main.pro index 1a6a1f4..b0de7c0 100644 --- a/main.pro +++ b/main.pro @@ -2,12 +2,12 @@ TEMPLATE = subdirs CONFIG += ordered CONFIG += autobuild -# message(PWD: $$(PWD)) +# message(PWD: $$PWD) -LOCAL_LIB_DIR = $$(PWD)/Builds/lib -LOCAL_INCLUDE_DIR = $$(PWD)/Builds/include +LOCAL_LIB_DIR = $$PWD/Builds/lib +LOCAL_INCLUDE_DIR = $$PWD/Builds/include -unix:symlinks.commands = $$(PWD)/Builds/create-symlinks.sh \"$$LOCAL_LIB_DIR\" \"$$LOCAL_INCLUDE_DIR\" +unix:symlinks.commands = $$PWD/Builds/create-symlinks.sh \"$$LOCAL_LIB_DIR\" \"$$LOCAL_INCLUDE_DIR\" SUBDIRS += Builds/QtCreator/Ember Builds/QtCreator/EmberCL Builds/QtCreator/EmberAnimate Builds/QtCreator/EmberGenome Builds/QtCreator/EmberRender Builds/QtCreator/Fractorium diff --git a/package-linux.sh b/package-linux.sh index a72ed72..a3757f2 100755 --- a/package-linux.sh +++ b/package-linux.sh @@ -90,7 +90,8 @@ fi # tar 1.28 required for --exclude-vcs-ignores -# FIXME: somehow it didn't ignore the 'Bin' folder. +# NOTE: ./Data/flam3-palettes.xml has to be explicitly included. The *.xml rule +# would exclude it, and tar doesn't handle "!" rules. tar --exclude='package-linux.sh' \ --exclude='debian' \ @@ -98,7 +99,9 @@ tar --exclude='package-linux.sh' \ --exclude-vcs \ --exclude-vcs-ignores \ --exclude-backups \ - -czf "$PPA_DIR/$TAR_NAME" . + -czf "$PPA_DIR/$TAR_NAME" \ + ./Data/flam3-palettes.xml \ + . [ $? -ne 0 ] && echo "Tar command failed." && exit 2