======Windows======
Download and run the installer. Also have a look at the [[download:#changelog|changelog]].
* [[https://bitbucket.org/Photivo/photivo/downloads/photivo-setup-2020-11-19-win64.exe|Photivo Setup 64bit, 2020-11-19]]
* [[https://bitbucket.org/Photivo/photivo/downloads/photivo-setup-2014-05-25-win32.exe|Photivo Setup 32bit, 2014-05-25]] (Official 32bit builds stopped with this version. Keep the [[manual:internals:32bit_issue|32 bit issue]] in mind.)
* [[https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/photivo/photivo-2010-10-25-gimp2.6win32-plugin.zip|Plugin for Gimp 2.6 and 2.8 32bit, 2010-10-25]] (Read the [[download:gimp|]] page!)
Older versions are available on [[https://bitbucket.org/Photivo/photivo/downloads|Bitbucket]] (2014 and newer) or [[https://code.google.com/archive/p/photivo/downloads|Google Code]] (2013 and older).
Photivo for Windows has a portable mode. See below for more information.
=====Portable Mode=====
Portable mode makes it possible to carry Photivo around on a USB drive or SD card by keeping all program files and settings together in one place.
To enable portable mode create a file called ''use-portable-profile'' (just like this, no file extension) in Photivo’s program folder (where ''photivo.exe'' is located). The content of that file is not important, it can be completely empty.
When ''use-portable-profile'' is present Photivo stores all user data (settings, presets etc.) inside its program folder instead of in your user application data folder.
===== Building Photivo from Source =====
This section covers compiling 64bit Photivo binaries on a Windows machine with the GCC/MinGW compiler.
Photivo has quite a few dependencies, and building all of them manually is a tedious task. Luckily MSys2 provides almost everything through its package manager for easy installation. So, MSys it is. :-)
==== Setting Up the MSys2 Toolchain ====
The MSys project provides a [[https://github.com/msys2/msys2/wiki/MSYS2-installation|detailed installation guide]]. Here is the short version.
Download the latest version of the [[http://repo.msys2.org/distrib/x86_64/|msys2-base-x86_64 tar.xz archive]] and unpack it to wherever you want to run MSys from.
For some people the default repository URL //repo.msys2.org// is not reachable. In that case get the archive from the [[https://github.com/msys2/msys2-installer/releases|MSys2 Github project]]. After unpacking comment out the unreachable mirror in all mirrorlist files in the ///etc/pacman.d// folder.
The project seems to be aware of the problem and is trying to fix it. Keep an eye on [[https://github.com/msys2/MSYS2-packages/issues/1884|issue 1884]] for news.
Run the ///msys2_shell.cmd// script and let it configure itself. When it’s done close the console window with the close button as explained on screen.
If you’re affected by the unreachable mirror, check the mirrorlist files. You might have to edit them again. Then restart //msys2_shell.cmd// and update the system by running:
pacman -Syuu
Run it as often as needed until it says there are no packages to update. If prompted to do so, restart the console with //msys2_shell.cmd//.
Finally install the compiler toolchain and support tools:
pacman -S pactoys git patch zip autoconf automake make
pacboy -S gcc:x pkg-config:x make:x ninja:x cmake:x
Now close the console. We are done with //msys2_shell.cmd// at this point. It is only needed for the initial installation. Do not use it to build Photivo!
==== Installing Dependencies ====
Start the MinGW 64bit Bash console with ///mingw64.exe//.
Almost all of Photivo’s dependencies can be installed through the package manager. Note that we’re using the //pacboy// wrapper to keep the package names short. The '':x'' marks the MinGW 64bit version of the packages:
pacboy -S exiv2:x fftw:x lensfun:x liblqr:x libraw:x qt5:x
The only dependency we need to build manually is **GraphicsMagick**. Pacman only provides a version built with quantum depth 8 (i.e. 8 bit colour depth), but we need 16.
We’re going to use the official MSys GraphicsMagick build script, modify it for Q16, then build and install it as a normal package managed by Pacman. Run this:
git clone https://github.com/msys2/MINGW-packages.git
cd MINGW-packages/mingw-w64-graphicsmagick
sed -i 's:\(pkgver\}/configure\):\1 --with-quantum-depth=16:' PKGBUILD
sed -i 's:--with-modules:--without-modules:' PKGBUILD
sed -i 's:--with-wmf:--without-wmf --without-trio --without-ttf:' PKGBUILD
The //PKGBUILD// build script is now modified to create a Q16 GraphicsMagick. Run:
makepkg -si
With this command dependencies are installed, GraphicsMagick is built and finally installed with Pacman. We’re now ready to build Photivo.
==== Compiling Photivo ====
Clone the Git repository, create a build directory and run the build in there:
git clone https://bitbucket.org/Photivo/photivo.git
cd photivo
mkdir _build
cd _build
qmake ../photivo.pro CONFIG-=debug INCLUDEPATH=/mingw64/include/lensfun
mingw32-make -j`nproc` && echo Success.
The Gimp plugin is not built by default. Gimp 2.10 does not need it anymore. If you still want to try building it, you probably need to install ''gimp:x'' as a dependency.
==== Packaging Photivo ====
In this step we’ll create a self contained package directory that contains all the binaries and data files Photivo needs to run.
Make sure you still have a console open in the build directory from the previous step. Then run the following commands.
The version numbers of the DLLs might differ depending on the exact version you installed earlier through the MSys package manager.
mkdir deploy
cd deploy
cp ../photivo.exe .
cp ../ptClear.exe .
mkdir -p Translations
cp ../../Translations/*.qm Translations
cp -r ../../ChannelMixers .
cp -r ../../Curves .
cp -r ../../LensfunDatabase .
cp -r ../../Presets .
cp -r ../../Profiles .
cp -r ../../Themes .
cp -r ../../UISettings .
cp /mingw64/bin/Qt5Core.dll .
cp /mingw64/bin/Qt5Gui.dll .
cp /mingw64/bin/Qt5Network.dll .
cp /mingw64/bin/Qt5Widgets.dll .
cp /mingw64/bin/libGraphicsMagick++-12.dll .
cp /mingw64/bin/libGraphicsMagick-3.dll .
cp /mingw64/bin/libGraphicsMagickWand-2.dll .
cp /mingw64/bin/libbrotlicommon.dll .
cp /mingw64/bin/libbrotlidec.dll .
cp /mingw64/bin/libbz2-1.dll .
cp /mingw64/bin/libcrypto-1_1-x64.dll .
cp /mingw64/bin/libcurl-4.dll .
cp /mingw64/bin/libdouble-conversion.dll .
cp /mingw64/bin/libexiv2.dll .
cp /mingw64/bin/libexpat-1.dll .
cp /mingw64/bin/libfftw3-3.dll .
cp /mingw64/bin/libfreetype-6.dll .
cp /mingw64/bin/libgcc_s_seh-1.dll .
cp /mingw64/bin/libglib-2.0-0.dll .
cp /mingw64/bin/libgomp-1.dll .
cp /mingw64/bin/libgraphite2.dll .
cp /mingw64/bin/libharfbuzz-0.dll .
cp /mingw64/bin/libiconv-2.dll .
cp /mingw64/bin/libicudt67.dll .
cp /mingw64/bin/libicuin67.dll .
cp /mingw64/bin/libicuuc67.dll .
cp /mingw64/bin/libidn2-0.dll .
cp /mingw64/bin/libintl-8.dll .
cp /mingw64/bin/libjasper-4.dll .
cp /mingw64/bin/libjbig-0.dll .
cp /mingw64/bin/libjbig2dec-0.dll .
cp /mingw64/bin/libjpeg-8.dll .
cp /mingw64/bin/liblcms2-2.dll .
cp /mingw64/bin/liblensfun.dll .
cp /mingw64/bin/liblqr-1-0.dll .
cp /mingw64/bin/libltdl-7.dll .
cp /mingw64/bin/liblzma-5.dll .
cp /mingw64/bin/libnghttp2-14.dll .
cp /mingw64/bin/libpcre-1.dll .
cp /mingw64/bin/libpcre2-16-0.dll .
cp /mingw64/bin/libpng16-16.dll .
cp /mingw64/bin/libpsl-5.dll .
cp /mingw64/bin/libraw-20.dll .
cp /mingw64/bin/libssh2-1.dll .
cp /mingw64/bin/libssl-1_1-x64.dll .
cp /mingw64/bin/libstdc++-6.dll .
cp /mingw64/bin/libsystre-0.dll .
cp /mingw64/bin/libtiff-5.dll .
cp /mingw64/bin/libtiffxx-5.dll .
cp /mingw64/bin/libtre-5.dll .
cp /mingw64/bin/libunistring-2.dll .
cp /mingw64/bin/libwebp-7.dll .
cp /mingw64/bin/libwebpmux-3.dll .
cp /mingw64/bin/libwinpthread-1.dll .
cp /mingw64/bin/libxml2-2.dll .
cp /mingw64/bin/libzstd.dll .
cp /mingw64/bin/zlib1.dll .
mkdir -p platforms
cp /mingw64/share/qt5/plugins/platforms/qwindows.dll platforms
cp -r /mingw64/share/qt5/plugins/imageformats .