From e0cfcecca077b96759bc3709195a93d8ea0c48d6 Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Sat, 4 Mar 2017 21:39:01 +0100 Subject: Support for building with MSYS2 See Wiki for build instructions: http://wiki.inkscape.org/wiki/index.php/Compiling_Inkscape_on_Windows_with_MSYS2 (bzr r15564) --- CMakeScripts/ConfigEnv.cmake | 6 +- CMakeScripts/InstallMSYS2.cmake | 228 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 CMakeScripts/InstallMSYS2.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigEnv.cmake b/CMakeScripts/ConfigEnv.cmake index ebd005cb3..dc4c70ba3 100644 --- a/CMakeScripts/ConfigEnv.cmake +++ b/CMakeScripts/ConfigEnv.cmake @@ -6,8 +6,10 @@ if(WIN32) include(mingwenv.cmake) - list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) - list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) + if(NOT HAVE_MSYS2) + list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) + list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) + endif() set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe") set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe") diff --git a/CMakeScripts/InstallMSYS2.cmake b/CMakeScripts/InstallMSYS2.cmake new file mode 100644 index 000000000..72069033c --- /dev/null +++ b/CMakeScripts/InstallMSYS2.cmake @@ -0,0 +1,228 @@ +if(WIN32) + install(PROGRAMS + ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe + ${EXECUTABLE_OUTPUT_PATH}/inkview.exe + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + install(PROGRAMS + ${EXECUTABLE_OUTPUT_PATH}/inkscape_com.exe + DESTINATION ${CMAKE_INSTALL_PREFIX} + RENAME inkscape.com + ) + + install(FILES + ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + install(FILES + AUTHORS + COPYING + NEWS + README + TRANSLATORS + GPL2.txt + GPL3.txt + LGPL2.1.txt + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + # mingw dlls + install(FILES + ${MINGW_BIN}/LIBEAY32.dll + ${MINGW_BIN}/SSLEAY32.dll + ${MINGW_BIN}/libMagick++-6.Q16HDRI-6.dll + ${MINGW_BIN}/libMagickCore-6.Q16HDRI-2.dll + ${MINGW_BIN}/libMagickWand-6.Q16HDRI-2.dll + ${MINGW_BIN}/libaspell-15.dll + ${MINGW_BIN}/libatk-1.0-0.dll + ${MINGW_BIN}/libatkmm-1.6-1.dll + ${MINGW_BIN}/libbz2-1.dll + ${MINGW_BIN}/libcairo-2.dll + ${MINGW_BIN}/libcairo-gobject-2.dll + ${MINGW_BIN}/libcairomm-1.0-1.dll + ${MINGW_BIN}/libcdr-0.1.dll + ${MINGW_BIN}/libcurl-4.dll + ${MINGW_BIN}/libenchant.dll + ${MINGW_BIN}/libepoxy-0.dll + ${MINGW_BIN}/libexpat-1.dll + ${MINGW_BIN}/libffi-6.dll + ${MINGW_BIN}/libfftw3-3.dll + ${MINGW_BIN}/libfontconfig-1.dll + ${MINGW_BIN}/libfreetype-6.dll + ${MINGW_BIN}/libgc-1.dll + ${MINGW_BIN}/libgdk-3-0.dll + ${MINGW_BIN}/libgdk_pixbuf-2.0-0.dll + ${MINGW_BIN}/libgdkmm-3.0-1.dll + ${MINGW_BIN}/libgdl-3-5.dll + ${MINGW_BIN}/libgio-2.0-0.dll + ${MINGW_BIN}/libgiomm-2.4-1.dll + ${MINGW_BIN}/libglib-2.0-0.dll + ${MINGW_BIN}/libglibmm-2.4-1.dll + ${MINGW_BIN}/libgmodule-2.0-0.dll + ${MINGW_BIN}/libgmp-10.dll + ${MINGW_BIN}/libgnutls-30.dll + ${MINGW_BIN}/libgobject-2.0-0.dll + ${MINGW_BIN}/libgomp-1.dll + ${MINGW_BIN}/libgraphite2.dll + ${MINGW_BIN}/libgsl-19.dll + ${MINGW_BIN}/libgslcblas-0.dll + ${MINGW_BIN}/libgtk-3-0.dll + ${MINGW_BIN}/libgtkmm-3.0-1.dll + ${MINGW_BIN}/libgtkspell3-3-0.dll + ${MINGW_BIN}/libharfbuzz-0.dll + ${MINGW_BIN}/libhogweed-4.dll + ${MINGW_BIN}/libiconv-2.dll + ${MINGW_BIN}/libicudt57.dll + ${MINGW_BIN}/libicuin57.dll + ${MINGW_BIN}/libicuuc57.dll + ${MINGW_BIN}/libidn-11.dll + ${MINGW_BIN}/libintl-8.dll + ${MINGW_BIN}/libjpeg-8.dll + ${MINGW_BIN}/liblcms2-2.dll + ${MINGW_BIN}/liblqr-1-0.dll + ${MINGW_BIN}/libltdl-7.dll + ${MINGW_BIN}/liblzma-5.dll + ${MINGW_BIN}/libnettle-6.dll + ${MINGW_BIN}/libnghttp2-14.dll + ${MINGW_BIN}/libnspr4.dll + ${MINGW_BIN}/libopenjp2-7.dll + ${MINGW_BIN}/libp11-kit-0.dll + ${MINGW_BIN}/libpango-1.0-0.dll + ${MINGW_BIN}/libpangocairo-1.0-0.dll + ${MINGW_BIN}/libpangoft2-1.0-0.dll + ${MINGW_BIN}/libpangomm-1.4-1.dll + ${MINGW_BIN}/libpangowin32-1.0-0.dll + ${MINGW_BIN}/libpcre-1.dll + ${MINGW_BIN}/libpixman-1-0.dll + ${MINGW_BIN}/libplc4.dll + ${MINGW_BIN}/libplds4.dll + ${MINGW_BIN}/libpng16-16.dll + ${MINGW_BIN}/libpoppler-66.dll + ${MINGW_BIN}/libpoppler-glib-8.dll + ${MINGW_BIN}/libpopt-0.dll + ${MINGW_BIN}/libpotrace-0.dll + ${MINGW_BIN}/librevenge-0.0.dll + ${MINGW_BIN}/librevenge-stream-0.0.dll + ${MINGW_BIN}/librtmp-1.dll + ${MINGW_BIN}/libsigc-2.0-0.dll + ${MINGW_BIN}/libssh2-1.dll + ${MINGW_BIN}/libstdc++-6.dll + ${MINGW_BIN}/libtasn1-6.dll + ${MINGW_BIN}/libtiff-5.dll + ${MINGW_BIN}/libunistring-2.dll + ${MINGW_BIN}/libvisio-0.1.dll + ${MINGW_BIN}/libwinpthread-1.dll + ${MINGW_BIN}/libwpd-0.10.dll + ${MINGW_BIN}/libwpg-0.3.dll + ${MINGW_BIN}/libxml2-2.dll + ${MINGW_BIN}/libxslt-1.dll + ${MINGW_BIN}/nss3.dll + ${MINGW_BIN}/nssutil3.dll + ${MINGW_BIN}/smime3.dll + ${MINGW_BIN}/zlib1.dll + # these are not picked up by 'ldd' but are required for SVG support in gdk-pixbuf-2.0 + ${MINGW_BIN}/libcroco-0.6-3.dll + ${MINGW_BIN}/librsvg-2-2.dll + # required by lxml + ${MINGW_BIN}/libexslt-0.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + # There are differences for 64-Bit and 32-Bit build environments. + if(HAVE_MINGW64) + install(FILES + ${MINGW_BIN}/libgcc_s_seh-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${MINGW_BIN}/libgcc_s_dw2-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() + + # Setup application data directories, poppler files, locales, icons and themes + file(MAKE_DIRECTORY + data + doc + modules + plugins) + + install(DIRECTORY + data + doc + modules + plugins + DESTINATION ${CMAKE_INSTALL_PREFIX} + PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV. + PATTERN CMakeLists.txt EXCLUDE + PATTERN *.am EXCLUDE) + + # Generate a dummy file in hicolor/index.theme to avoid bug 1635207 + file(GENERATE OUTPUT ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/index.theme + CONTENT "[Icon Theme]\nName=hicolor\nDirectories=") + + install(DIRECTORY ${MINGW_PATH}/share/icons/Adwaita + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons) + + install(DIRECTORY ${MINGW_PATH}/share/themes + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${MINGW_PATH}/share/locale + DESTINATION ${CMAKE_INSTALL_PREFIX}/share + PATTERN "*gtk20.mo" EXCLUDE) + + install(DIRECTORY ${MINGW_PATH}/share/poppler + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${MINGW_PATH}/share/glib-2.0/schemas + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/glib-2.0) + + install(DIRECTORY ${MINGW_PATH}/etc/fonts + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + # GTK 3.0 + install(DIRECTORY ${MINGW_LIB}/gtk-3.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + install(DIRECTORY ${MINGW_PATH}/etc/gtk-3.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + install(DIRECTORY ${MINGW_LIB}/gdk-pixbuf-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + # Aspell dictionaries + install(DIRECTORY ${MINGW_LIB}/aspell-0.60 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + + # Necessary to run extensions on windows if it is not in the path + if (HAVE_MINGW64) + install(FILES + ${MINGW_BIN}/gspawn-win64-helper.exe + ${MINGW_BIN}/gspawn-win64-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${MINGW_BIN}/gspawn-win32-helper.exe + ${MINGW_BIN}/gspawn-win32-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() + + # Python (a bit hacky for backwards compatibility with devlibs at this point) + install(FILES + ${MINGW_BIN}/python2.exe + RENAME python.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(FILES + ${MINGW_BIN}/python2w.exe + RENAME pythonw.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(FILES + ${MINGW_BIN}/libpython2.7.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(DIRECTORY ${MINGW_LIB}/python2.7 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) +endif() \ No newline at end of file -- cgit v1.2.3