diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 746867e498..400f65bfc4 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -1,115 +1,116 @@ project (krita-and-all-its-deps) # # Build all dependencies for Krita and finally Krita itself. # Parameters: EXTERNALS_DOWNLOAD_DIR place to download all packages # INSTALL_ROOT place to install everything to # MXE_TOOLCHAIN: the toolchain file to cross-compile using MXE # # Example usage: cmake ..\kritadeposx -DEXTERNALS_DOWNLOAD_DIR=/dev2/d -DINSTALL_ROOT=/dev2/i -DWIN64_BUILD=TRUE -DBOOST_LIBRARYDIR=/dev2/i/lib -G "Visual Studio 11 Win64" cmake_minimum_required(VERSION 2.8.6) if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "Compiling in the source directory is not supported. Use for example 'mkdir build; cd build; cmake ..'.") endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) # Tools must be obtained to work with: include (ExternalProject) # allow specification of a directory with pre-downloaded # requirements if(NOT IS_DIRECTORY ${EXTERNALS_DOWNLOAD_DIR}) message(FATAL_ERROR "No externals download dir set. Use -DEXTERNALS_DOWNLOAD_DIR") endif() if(NOT IS_DIRECTORY ${INSTALL_ROOT}) message(FATAL_ERROR "No install dir set. Use -DINSTALL_ROOT") endif() set(TOP_INST_DIR ${INSTALL_ROOT}) set(EXTPREFIX "${TOP_INST_DIR}") set(CMAKE_PREFIX_PATH "${EXTPREFIX}") if (${CMAKE_GENERATOR} STREQUAL "Visual Studio 14 2015 Win64") SET(GLOBAL_PROFILE -DCMAKE_MODULE_LINKER_FLAGS=/machine:x64 -DCMAKE_EXE_LINKER_FLAGS=/machine:x64 -DCMAKE_SHARED_LINKER_FLAGS=/machine:x64 -DCMAKE_STATIC_LINKER_FLAGS=/machine:x64 ) endif () message( STATUS "CMAKE_GENERATOR: ${CMAKE_GENERATOR}") message( STATUS "CMAKE_CL_64: ${CMAKE_CL_64}") set(GLOBAL_BUILD_TYPE RelWithDebInfo) set(GLOBAL_PROFILE ${GLOBAL_PROFILE} -DBUILD_TESTING=false) if (MSVC) set(GLOBAL_PROFILE ${GLOBAL_PROFILE} -DCMAKE_EXE_LINKER_FLAGS=/PROFILE -DCMAKE_SHARED_LINKER_FLAGS=/PROFILE) set(PATCH_COMMAND myptch) endif() if (MSYS) set(PATCH_COMMAND patch) set(GLOBAL_PROFILE ${GLOBAL_PROFILE} + -DCMAKE_TOOLCHAIN_FILE=${MXE_TOOLCHAIN} -DCMAKE_FIND_PREFIX_PATH=${CMAKE_PREFIX_PATH} -DCMAKE_SYSTEM_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include -DCMAKE_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include -DCMAKE_LIBRARY_PATH=${CMAKE_PREFIX_PATH}/lib -DZLIB_ROOT=${CMAKE_PREFIX_PATH} ) set(GLOBAL_AUTOMAKE_PROFILE --host=i686-pc-mingw32 ) endif() if (APPLE) set(GLOBAL_PROFILE ${GLOBAL_PROFILE} -DCMAKE_MACOSX_RPATH=ON) set(PATCH_COMMAND patch) endif () if (UNIX AND NOT APPLE) set(LINUX true) set(PATCH_COMMAND patch) endif () # this list must be dependency-ordered if (MSVC) add_subdirectory( ext_patch ) add_subdirectory( ext_png2ico ) endif (MSVC) add_subdirectory( ext_iconv ) add_subdirectory( ext_gettext ) add_subdirectory( ext_zlib ) add_subdirectory( ext_libxml2 ) add_subdirectory( ext_libxslt ) add_subdirectory( ext_boost ) add_subdirectory( ext_jpeg ) add_subdirectory( ext_tiff ) add_subdirectory( ext_png ) add_subdirectory( ext_eigen3 ) add_subdirectory( ext_expat ) # for exiv2 add_subdirectory( ext_exiv2 ) add_subdirectory( ext_ilmbase ) add_subdirectory( ext_lcms2 ) add_subdirectory( ext_openexr ) add_subdirectory( ext_vc ) add_subdirectory( ext_gsl ) add_subdirectory( ext_fftw3 ) add_subdirectory( ext_ocio ) add_subdirectory( ext_openjpeg ) if (MSVC) add_subdirectory( ext_pthreads ) endif (MSVC) add_subdirectory( ext_freetype) if (LINUX) add_subdirectory( ext_fontconfig) endif() add_subdirectory( ext_qt ) add_subdirectory( ext_poppler ) add_subdirectory( ext_libraw ) add_subdirectory( ext_frameworks ) if (MSVC) add_subdirectory( google-breakpad ) endif() diff --git a/windows/makepkg-mxe.sh b/windows/makepkg-32.sh similarity index 82% copy from windows/makepkg-mxe.sh copy to windows/makepkg-32.sh index 00ff7e40fd..aae4a478fa 100644 --- a/windows/makepkg-mxe.sh +++ b/windows/makepkg-32.sh @@ -1,82 +1,86 @@ #!/bin/bash # Halt on errors #set -e # Be verbose set -x BUILDROOT=/data2/cross -MXEROOT=/data2/cross/mxe/usr/x86_64-w64-mingw32.shared +MXEROOT=/data2/cross/mxe/usr/i686-w64-mingw32.shared APP=krita -cd ${BUILDROOT} +cd $BUILDROOT VER=$(grep "#define CALLIGRA_VERSION_STRING" /build/libs/version/calligraversion.h | cut -d '"' -f 2) -cd ${BUILDROOT}/krita +cd $BUILDROOT/krita BRANCH=$( git branch | cut -d ' ' -f 2) REVISION=$(git rev-parse --short HEAD) cd .. VERSION=$VER$BRANCH-$REVISION VERSION="$(sed s/\ /-/g <<<$VERSION)" echo $VERSION -PACKAGENAME=$APP"-"$VERSION"-x64" +PACKAGENAME=$APP"-"$VERSION"-x86" #rm -rf $BUILDROOT/out/* || true mkdir -p $BUILDROOT/out/$PACKAGENAME mkdir -p $BUILDROOT/out/$PACKAGENAME/bin mkdir -p $BUILDROOT/out/$PACKAGENAME/lib mkdir -p $BUILDROOT/out/$PACKAGENAME/share cp $MXEROOT/bin/krita.exe $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/bin/*.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/bin/*.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/lib/libOpenColorIO.dll $BUILDROOT/out/$PACKAGENAME/bin -cp -r $MXEROOT/lib/plugins $BUILDROOT/out/$PACKAGENAME/bin cp -r $MXEROOT/lib/kritaplugins $BUILDROOT/out/$PACKAGENAME/lib cp $MXEROOT/qt5/bin/Qt5Concurrent.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Core.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Gui.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Network.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5OpenGL.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5PrintSupport.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Qml.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Quick.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Script.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5ScriptTools.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Svg.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5SystemInfo.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Widgets.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5WinExtras.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Xml.dll $BUILDROOT/out/$PACKAGENAME/bin -x86_64-w64-mingw32.shared-strip $BUILDROOT/out/$PACKAGENAME/bin/* - -cp -r $MXEROOT/qt5/plugins/iconengines $BUILDROOT/out/$PACKAGENAME/bin/plugins -cp -r $MXEROOT/qt5/plugins/imageformats $BUILDROOT/out/$PACKAGENAME/bin/plugins -cp -r $MXEROOT/qt5/plugins/printsupport $BUILDROOT/out/$PACKAGENAME/bin/plugins +cp -r $MXEROOT/qt5/plugins/iconengines $BUILDROOT/out/$PACKAGENAME/bin/ +cp -r $MXEROOT/qt5/plugins/imageformats $BUILDROOT/out/$PACKAGENAME/bin/ +cp -r $MXEROOT/qt5/plugins/printsupport $BUILDROOT/out/$PACKAGENAME/bin/ cp -r $MXEROOT/qt5/plugins/platforms $BUILDROOT/out/$PACKAGENAME/bin/ +cp -r $MXEROOT/lib/plugins/imageformats/* $BUILDROOT/out/$PACKAGENAME/bin/imageformats/ cp -r $MXEROOT/qt5/translations $BUILDROOT/out/$PACKAGENAME/bin/ cp -r $MXEROOT/share/color $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/color-schemes $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/kf5 $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/krita $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/locale $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/mime $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/ocio $BUILDROOT/out/$PACKAGENAME/share rm krita-3.0-l10n-win-current.tar.gz || true rm -rf locale wget http://nonaynever.ru/pub/l10n-win/krita-3.0-l10n-win-current.tar.gz tar -xf krita-3.0-l10n-win-current.tar.gz mkdir $BUILDROOT/out/$PACKAGENAME/bin/data cp -r $BUILDROOT/locale $BUILDROOT/out/$PACKAGENAME/bin/data cd $BUILDROOT/out/ +zip -r $PACKAGENAME-dbg.zip $PACKAGENAME + +find $BUILDROOT/out/$PACKAGENAME/bin -name \*exe | xargs $BUILDROOT/mxe/usr/bin/i686-w64-mingw32.shared-strip +find $BUILDROOT/out/$PACKAGENAME/bin -name \*dll | xargs $BUILDROOT/mxe/usr/bin/i686-w64-mingw32.shared-strip +find $BUILDROOT/out/$PACKAGENAME/lib -name \*dll | xargs $BUILDROOT/mxe/usr/bin/i686-w64-mingw32.shared-strip + zip -r $PACKAGENAME.zip $PACKAGENAME diff --git a/windows/makepkg-mxe.sh b/windows/makepkg-64.sh similarity index 85% rename from windows/makepkg-mxe.sh rename to windows/makepkg-64.sh index 00ff7e40fd..6034691df3 100644 --- a/windows/makepkg-mxe.sh +++ b/windows/makepkg-64.sh @@ -1,82 +1,86 @@ #!/bin/bash # Halt on errors #set -e # Be verbose set -x BUILDROOT=/data2/cross MXEROOT=/data2/cross/mxe/usr/x86_64-w64-mingw32.shared APP=krita -cd ${BUILDROOT} +cd $BUILDROOT VER=$(grep "#define CALLIGRA_VERSION_STRING" /build/libs/version/calligraversion.h | cut -d '"' -f 2) -cd ${BUILDROOT}/krita +cd $BUILDROOT/krita BRANCH=$( git branch | cut -d ' ' -f 2) REVISION=$(git rev-parse --short HEAD) cd .. VERSION=$VER$BRANCH-$REVISION VERSION="$(sed s/\ /-/g <<<$VERSION)" echo $VERSION PACKAGENAME=$APP"-"$VERSION"-x64" #rm -rf $BUILDROOT/out/* || true mkdir -p $BUILDROOT/out/$PACKAGENAME mkdir -p $BUILDROOT/out/$PACKAGENAME/bin mkdir -p $BUILDROOT/out/$PACKAGENAME/lib mkdir -p $BUILDROOT/out/$PACKAGENAME/share cp $MXEROOT/bin/krita.exe $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/bin/*.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/bin/*.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/lib/libOpenColorIO.dll $BUILDROOT/out/$PACKAGENAME/bin -cp -r $MXEROOT/lib/plugins $BUILDROOT/out/$PACKAGENAME/bin cp -r $MXEROOT/lib/kritaplugins $BUILDROOT/out/$PACKAGENAME/lib cp $MXEROOT/qt5/bin/Qt5Concurrent.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Core.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Gui.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Network.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5OpenGL.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5PrintSupport.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Qml.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Quick.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Script.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5ScriptTools.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Svg.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5SystemInfo.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Widgets.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5WinExtras.dll $BUILDROOT/out/$PACKAGENAME/bin cp $MXEROOT/qt5/bin/Qt5Xml.dll $BUILDROOT/out/$PACKAGENAME/bin -x86_64-w64-mingw32.shared-strip $BUILDROOT/out/$PACKAGENAME/bin/* - -cp -r $MXEROOT/qt5/plugins/iconengines $BUILDROOT/out/$PACKAGENAME/bin/plugins -cp -r $MXEROOT/qt5/plugins/imageformats $BUILDROOT/out/$PACKAGENAME/bin/plugins -cp -r $MXEROOT/qt5/plugins/printsupport $BUILDROOT/out/$PACKAGENAME/bin/plugins +cp -r $MXEROOT/qt5/plugins/iconengines $BUILDROOT/out/$PACKAGENAME/bin/ +cp -r $MXEROOT/qt5/plugins/imageformats $BUILDROOT/out/$PACKAGENAME/bin/ +cp -r $MXEROOT/qt5/plugins/printsupport $BUILDROOT/out/$PACKAGENAME/bin/ cp -r $MXEROOT/qt5/plugins/platforms $BUILDROOT/out/$PACKAGENAME/bin/ +cp -r $MXEROOT/lib/plugins/imageformats/* $BUILDROOT/out/$PACKAGENAME/bin/imageformats/ cp -r $MXEROOT/qt5/translations $BUILDROOT/out/$PACKAGENAME/bin/ cp -r $MXEROOT/share/color $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/color-schemes $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/kf5 $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/krita $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/locale $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/mime $BUILDROOT/out/$PACKAGENAME/share cp -r $MXEROOT/share/ocio $BUILDROOT/out/$PACKAGENAME/share rm krita-3.0-l10n-win-current.tar.gz || true rm -rf locale wget http://nonaynever.ru/pub/l10n-win/krita-3.0-l10n-win-current.tar.gz tar -xf krita-3.0-l10n-win-current.tar.gz mkdir $BUILDROOT/out/$PACKAGENAME/bin/data cp -r $BUILDROOT/locale $BUILDROOT/out/$PACKAGENAME/bin/data cd $BUILDROOT/out/ +zip -r $PACKAGENAME-dbg.zip $PACKAGENAME + +find $BUILDROOT/out/$PACKAGENAME/bin -name \*exe | xargs $BUILDROOT/mxe/usr/bin/x86_64-w64-mingw32.shared-strip +find $BUILDROOT/out/$PACKAGENAME/bin -name \*dll | xargs $BUILDROOT/mxe/usr/bin/x86_64-w64-mingw32.shared-strip +find $BUILDROOT/out/$PACKAGENAME/lib -name \*dll | xargs $BUILDROOT/mxe/usr/bin/x86_64-w64-mingw32.shared-strip + zip -r $PACKAGENAME.zip $PACKAGENAME diff --git a/windows/mxe.txt b/windows/mxe.txt index f51a080a87..8ef80d4106 100644 --- a/windows/mxe.txt +++ b/windows/mxe.txt @@ -1,44 +1,44 @@ # Where are you building? export BUILDROOT=???? cd $BUILDROOT mkdir cross mkdir cross/b mkdir cross/d mkdir cross/krita-build git clone git@github.com:boudewijnrempt/mxe.git cd mxe export PATH=$BUILDROOT/mxe/usr/bin:$BUILDROOT/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin:$PATH # note: poppler-qt5 and gsl don't work yet # Use i686-w64-mingw32.shared for 32 bits builds # note: vc is 1.2, so we either need zagge's branch, or you need to build Vc 0.75 # yourself. Make sure you use -DBUILD_TESTING=OFF for Vc -make MXE_TARGETS=x86_64-w64-mingw32.shared gcc boost curl eigen exiv2 expat fftw fontconfig freetype gettext ilmbase openexr jpeg lcms libpng libraw opencolorio openjpeg qt5 qtscript tiff vc zlib +make MXE_TARGETS=x86_64-w64-mingw32.shared gcc boost curl eigen exiv2 expat fftw fontconfig freetype gettext ilmbase openexr jpeg lcms libpng libraw opencolorio openjpeg qt5 qtscript tiff vc zlib gsl cd $BUILDROOT git clone git://anongit.kde.org/krita.git # build the deps that aren't in mxe cd b x86_64-w64-mingw32.shared-cmake ../krita/3rdparty/ -DEXTERNALS_DOWNLOAD_DIR=$BUILDROOT/d -DINSTALL_ROOT=$BUILDROOT/mxe/usr/x86_64-w64-mingw32.shared -DMXE_TOOLCHAIN=${BUILDROOT}/mxe/usr/x86_64-w64-mingw32.shared/share/cmake/mxe-conf.cmake x86_64-w64-mingw32.shared-cmake --build . --target ext_kwindowsystem x86_64-w64-mingw32.shared-cmake --build . --target ext_poppler # You might want to build gsl and vc 0.75 manually # build krita cd ../build x86_64-w64-mingw32.shared-cmake ../krita -DDEFINE_NO_DEPRECATED=1 -DBUILD_TESTING=OFF -DKDE4_BUILD_TESTS=OFF -DPACKAGERS_BUILD=ON make -j4 install # to test, configure wine # WINEARCH=win64 WINEPREFIX=~/.wine64 winecfg # Go to the bin directory and test krita: # WINEPREFIX=~/.wine64 wine ./krita.exe