Last active
September 25, 2016 04:01
-
-
Save bruceoutdoors/7c1a3f6b1b58cd9bee1502db205776aa to your computer and use it in GitHub Desktop.
Krita build batch script.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:: =================== 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