Skip to content

Instantly share code, notes, and snippets.

@bruceoutdoors
Last active September 25, 2016 04:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bruceoutdoors/7c1a3f6b1b58cd9bee1502db205776aa to your computer and use it in GitHub Desktop.
Save bruceoutdoors/7c1a3f6b1b58cd9bee1502db205776aa to your computer and use it in GitHub Desktop.
Krita build batch script.
:: =================== READ ME BEFORE USE!! ============================
:: This build script assumes that cmake, python, TDM-GCC (with OpenMP)
:: is in your environment paths.
::
:: It also uses Ninja to build Krita (it builds considerably faster!).
:: Make sure that ninja executable is in your PATHS also.
::
:: Run this script in administrator mode. Make sure you have a stable
:: internet connection.
::
:: Pay attention to parts in this script marked as "IMPORTANT"
:: =====================================================================
:: ===== SET VARIABLES (Change as you see fit) =====
:: IMPORTANT: Don't use directory names with spaces!
:: Also, keep the directories in C drive. In my experience,
:: Qt will fail if built in other drives.
set DEV_DIR=C:/dev
set INSTALL_DIR=%DEV_DIR%/install
set DOWNLOAD_DIR=%DEV_DIR%/lib-download
set LIB_BUILD_DIR=%DEV_DIR%/lib-build
set KRITA_DIR=%DEV_DIR%/krita
set KRITA_SOURCE_DIR=%KRITA_DIR%/src
set KRITA_BUILD_DIR=%KRITA_DIR%/build
set KRITA_PARTY_DIR=%KRITA_SOURCE_DIR%/3rdparty
:: ===== MAKE DIRECTORIES =====
mkdir %DEV_DIR:/=\%
mkdir %INSTALL_DIR:/=\%
mkdir %DOWNLOAD_DIR:/=\%
mkdir %LIB_BUILD_DIR:/=\%
mkdir %KRITA_DIR:/=\%
mkdir %KRITA_SOURCE_DIR:/=\%
mkdir %KRITA_BUILD_DIR:/=\%
mkdir %KRITA_PARTY_DIR:/=\%
:: ===== SET PATHS =====
set PATH=%INSTALL_DIR%/bin;%INSTALL_DIR%/lib;%PATH%
:: ===== CLONE GIT REPO TO SOURCE DIRECTORY =====
cd "%KRITA_SOURCE_DIR%"
git clone git://anongit.kde.org/krita.git .
:: ===== CONFIGURE AND BUILD DEPENDENCIES =====
:: Note: You can't use ninja to build dependencies; it'll fail (can't build Qt).
cmake -B%LIB_BUILD_DIR% -H%KRITA_PARTY_DIR% -DEXTERNALS_DOWNLOAD_DIR=%DOWNLOAD_DIR% -DINSTALL_ROOT=%INSTALL_DIR% -G "MinGW Makefiles"
cd "%LIB_BUILD_DIR%"
cmake --build . --target ext_patch
cmake --build . --target ext_png2ico
cmake --build . --target ext_gettext
cmake --build . --target ext_zlib
cmake --build . --target ext_boost
cmake --build . --target ext_eigen3
cmake --build . --target ext_exiv2
cmake --build . --target ext_fftw3
set FFTW_LIB_DIR=%INSTALL_DIR%/lib
dlltool.exe -k --output-lib %FFTW_LIB_DIR%/libfftw3-3.a --input-def %FFTW_LIB_DIR%/libfftw3-3.def
dlltool.exe -k --output-lib %FFTW_LIB_DIR%/libfftw3f-3.a --input-def %FFTW_LIB_DIR%/libfftw3f-3.def
dlltool.exe -k --output-lib %FFTW_LIB_DIR%/libfftw3l-3.a --input-def %FFTW_LIB_DIR%/libfftw3l-3.def
cmake --build . --target ext_qt
cmake --build . --target ext_ilmbase
cmake --build . --target ext_jpeg
cmake --build . --target ext_lcms2
cmake --build . --target ext_ocio
cmake --build . --target ext_openexr
cmake --build . --target ext_png
cmake --build . --target ext_tiff
cmake --build . --target ext_gsl
cmake --build . --target ext_vc
cmake --build . --target ext_libraw
cmake --build . --target ext_kcrash
cmake --build . --target ext_freetype
cmake --build . --target ext_poppler
:: ===== CONFIGURE AND BUILD KRITA =====
:: if all dependencies build successfully, you are now ready to build Krita!
cmake -B%KRITA_BUILD_DIR% -H%KRITA_SOURCE_DIR% -G "Ninja" -DBoost_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DCMAKE_PREFIX_PATH=%INSTALL_DIR% -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DKDE4_BUILD_TESTS=OFF -DHAVE_MEMORY_LEAK_TRACKER=OFF -DPACKAGERS_BUILD=ON -Wno-dev -DDEFINE_NO_DEPRECATED=1
cd "%KRITA_BUILD_DIR%"
ninja install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment