diff options
| -rw-r--r-- | CMakeScripts/ConfigEnv.cmake | 54 | ||||
| -rw-r--r-- | CMakeScripts/Install.cmake | 273 | ||||
| -rw-r--r-- | mingwenv.cmake | 184 |
3 files changed, 511 insertions, 0 deletions
diff --git a/CMakeScripts/ConfigEnv.cmake b/CMakeScripts/ConfigEnv.cmake new file mode 100644 index 000000000..91404f874 --- /dev/null +++ b/CMakeScripts/ConfigEnv.cmake @@ -0,0 +1,54 @@ +# -----------------------------------------------------------------------------
+# Set platform defaults (originally copied from darktable)
+# -----------------------------------------------------------------------------
+if(WIN32)
+ message("-- Windows build detected, setting default features")
+
+ include(mingwenv.cmake)
+
+ list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH})
+ list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH})
+
+ set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe")
+ set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe")
+ set(CMAKE_CXX_COMPILER "${MINGW_BIN}/g++.exe")
+ set(CMAKE_CXX_LINK_EXECUTABLE "${MINGW_BIN}/g++.exe")
+ set(CMAKE_CXX_STANDARD 11)
+
+ # Setup Windows resource files compiler.
+ set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe")
+ set(CMAKE_RC_COMPILER_INIT windres)
+ enable_language(RC)
+ set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -i <SOURCE> -o <OBJECT>")
+
+ # These options are required for having i18n support on Windows.
+ option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON)
+ option(HAVE_BIND_TEXTDOMAIN_CODESET "Compile with 'bind_textdomain_codeset' function" ON)
+
+ # Does not compile on Windows with these options.
+ option(BR_PTHREADS "Use binreloc thread support" OFF)
+ option(ENABLE_BINRELOC "Use AutoPackage" OFF)
+endif()
+
+if(APPLE)
+ message("-- Mac OS X build detected, setting default features")
+
+ # prefer macports and/or user-installed libraries over system ones
+ #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local)
+ set(CMAKE_FIND_FRAMEWORK "LAST")
+
+ # test and display relevant env variables
+ if(DEFINED ENV{CMAKE_PREFIX_PATH})
+ message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}")
+ endif()
+
+ if(DEFINED ENV{GTKMM_BASEPATH})
+ message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}")
+ endif()
+
+ # detect current GTK+ backend
+ pkg_check_variable(gtk+-2.0 target)
+ message("GTK2 backend: ${GTK+_2.0_TARGET}")
+endif()
+
+include(CMakeScripts/ConfigPaths.cmake)
\ No newline at end of file diff --git a/CMakeScripts/Install.cmake b/CMakeScripts/Install.cmake new file mode 100644 index 000000000..e7311f080 --- /dev/null +++ b/CMakeScripts/Install.cmake @@ -0,0 +1,273 @@ +if(UNIX)
+ #Define the installation
+ install(
+ TARGETS inkscape_base inkscape inkview
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib/inkscape
+ ARCHIVE DESTINATION lib/inkscape
+ )
+
+ #The install directive for the binaries and libraries are found in src/CMakeList.txt
+ install(
+ FILES ${CMAKE_BINARY_DIR}/inkscape.desktop
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications
+ )
+
+ # this should probably be done no matter what the platform is, just set SHARE_INSTALL first
+ add_subdirectory(share)
+elseif(WIN32)
+ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/inkscape)
+
+ install(PROGRAMS
+ ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe
+ ${EXECUTABLE_OUTPUT_PATH}/inkview.exe
+ DESTINATION ${CMAKE_INSTALL_PREFIX}
+ )
+
+ install(FILES
+ ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll
+ ${LIBRARY_OUTPUT_PATH}/libgrid2.dll
+ DESTINATION ${CMAKE_INSTALL_PREFIX}
+ )
+
+ # devlibs and mingw dlls
+ install(FILES
+ AUTHORS
+ COPYING
+ NEWS
+ README
+ TRANSLATORS
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
+
+ # There are differences in the devlibs for 64-Bit and 32-Bit build environments.
+ if(HAVE_MINGW64)
+ install(FILES
+ ${DEVLIBS_BIN}/bz2-1.dll
+ ${DEVLIBS_BIN}/icudt56.dll
+ ${DEVLIBS_BIN}/icuin56.dll
+ ${DEVLIBS_BIN}/icuuc56.dll
+ ${DEVLIBS_BIN}/libMagick++-6.Q16-6.dll
+ ${DEVLIBS_BIN}/libMagickCore-6.Q16-2.dll
+ ${DEVLIBS_BIN}/libMagickWand-6.Q16-2.dll
+ ${DEVLIBS_BIN}/libaspell-15.dll
+ ${DEVLIBS_BIN}/libatk-1.0-0.dll
+ ${DEVLIBS_BIN}/libatkmm-1.6-1.dll
+ ${DEVLIBS_BIN}/libcairo-2.dll
+ ${DEVLIBS_BIN}/libcairomm-1.0-1.dll
+ ${DEVLIBS_BIN}/libcdr-0.1.dll
+ ${DEVLIBS_BIN}/libcurl-4.dll
+ ${DEVLIBS_BIN}/libexif-12.dll
+ ${DEVLIBS_BIN}/libexpat-1.dll
+ ${DEVLIBS_BIN}/libexslt-0.dll
+ ${DEVLIBS_BIN}/libffi-6.dll
+ ${DEVLIBS_BIN}/libfontconfig-1.dll
+ ${DEVLIBS_BIN}/libfreetype-6.dll
+ ${DEVLIBS_BIN}/libgc-1.dll
+ ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll
+ ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll
+ ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll
+ ${DEVLIBS_BIN}/libgio-2.0-0.dll
+ ${DEVLIBS_BIN}/libgiomm-2.4-1.dll
+ ${DEVLIBS_BIN}/libglib-2.0-0.dll
+ ${DEVLIBS_BIN}/libglibmm-2.4-1.dll
+ ${DEVLIBS_BIN}/libgmodule-2.0-0.dll
+ ${DEVLIBS_BIN}/libgobject-2.0-0.dll
+ ${DEVLIBS_BIN}/libgsl-19.dll
+ ${DEVLIBS_BIN}/libgslcblas-0.dll
+ ${DEVLIBS_BIN}/libgthread-2.0-0.dll
+ ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll
+ ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll
+ ${DEVLIBS_BIN}/libharfbuzz-0.dll
+ ${DEVLIBS_BIN}/libiconv-2.dll
+ ${DEVLIBS_BIN}/libintl-8.dll
+ ${DEVLIBS_BIN}/libjpeg-9.dll
+ ${DEVLIBS_BIN}/liblcms2-2.dll
+ ${DEVLIBS_BIN}/liblzma-5.dll
+ ${DEVLIBS_BIN}/libpango-1.0-0.dll
+ ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll
+ ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll
+ ${DEVLIBS_BIN}/libpangomm-1.4-1.dll
+ ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll
+ ${DEVLIBS_BIN}/libpixman-1-0.dll
+ ${DEVLIBS_BIN}/libpng16-16.dll
+ ${DEVLIBS_BIN}/libpoppler-58.dll
+ ${DEVLIBS_BIN}/libpoppler-glib-8.dll
+ ${DEVLIBS_BIN}/libpopt-0.dll
+ ${DEVLIBS_BIN}/libpotrace-0.dll
+ ${DEVLIBS_BIN}/librevenge-0.0.dll
+ ${DEVLIBS_BIN}/librevenge-stream-0.0.dll
+ ${DEVLIBS_BIN}/libsigc-2.0-0.dll
+ ${DEVLIBS_BIN}/libtiff-5.dll
+ ${DEVLIBS_BIN}/libvisio-0.1.dll
+ ${DEVLIBS_BIN}/libwpd-0.10.dll
+ ${DEVLIBS_BIN}/libwpg-0.3.dll
+ ${DEVLIBS_BIN}/libxml2-2.dll
+ ${DEVLIBS_BIN}/libxslt-1.dll
+ ${DEVLIBS_BIN}/zlib1.dll
+ ${MINGW_BIN}/libstdc++-6.dll
+ ${MINGW_BIN}/libwinpthread-1.dll
+ ${MINGW_BIN}/libgcc_s_seh-1.dll
+ ${MINGW_BIN}/libgomp-1.dll
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
+ else()
+ install(FILES
+ ${DEVLIBS_BIN}/bzip2.dll
+ ${DEVLIBS_BIN}/freetype6.dll
+ ${DEVLIBS_BIN}/iconv.dll
+ ${DEVLIBS_BIN}/icudata50.dll
+ ${DEVLIBS_BIN}/icui18n50.dll
+ ${DEVLIBS_BIN}/icuuc50.dll
+ ${DEVLIBS_BIN}/intl.dll
+ ${DEVLIBS_BIN}/libMagick++-3.dll
+ ${DEVLIBS_BIN}/libMagickCore-3.dll
+ ${DEVLIBS_BIN}/libMagickWand-3.dll
+ ${DEVLIBS_BIN}/libatk-1.0-0.dll
+ ${DEVLIBS_BIN}/libatkmm-1.6-1.dll
+ ${DEVLIBS_BIN}/libcairo-2.dll
+ ${DEVLIBS_BIN}/libcairomm-1.0-1.dll
+ ${DEVLIBS_BIN}/libcdr-0.1.dll
+ ${DEVLIBS_BIN}/libexif-12.dll
+ ${DEVLIBS_BIN}/libexpat-1.dll
+ ${DEVLIBS_BIN}/libexslt.dll
+ ${DEVLIBS_BIN}/libfontconfig-1.dll
+ ${DEVLIBS_BIN}/libgcc_s_sjlj-1.dll
+ ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll
+ ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll
+ ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll
+ ${DEVLIBS_BIN}/libgio-2.0-0.dll
+ ${DEVLIBS_BIN}/libgiomm-2.4-1.dll
+ ${DEVLIBS_BIN}/libglib-2.0-0.dll
+ ${DEVLIBS_BIN}/libglibmm-2.4-1.dll
+ ${DEVLIBS_BIN}/libgmodule-2.0-0.dll
+ ${DEVLIBS_BIN}/libgobject-2.0-0.dll
+ ${DEVLIBS_BIN}/libgthread-2.0-0.dll
+ ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll
+ ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll
+ ${DEVLIBS_BIN}/libintl-8.dll
+ ${DEVLIBS_BIN}/libjpeg-7.dll
+ ${DEVLIBS_BIN}/liblcms-1.dll
+ ${DEVLIBS_BIN}/liblcms2-2.dll
+ ${DEVLIBS_BIN}/libopenjpeg-2.dll
+ ${DEVLIBS_BIN}/libpango-1.0-0.dll
+ ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll
+ ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll
+ ${DEVLIBS_BIN}/libpangomm-1.4-1.dll
+ ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll
+ ${DEVLIBS_BIN}/libpixman-1-0.dll
+ ${DEVLIBS_BIN}/libpng12-0.dll
+ ${DEVLIBS_BIN}/libpng14-14.dll
+ ${DEVLIBS_BIN}/libpoppler-58.dll
+ ${DEVLIBS_BIN}/libpoppler-glib-8.dll
+ ${DEVLIBS_BIN}/libpopt-0.dll
+ ${DEVLIBS_BIN}/librevenge-0.0.dll
+ ${DEVLIBS_BIN}/librevenge-stream-0.0.dll
+ ${DEVLIBS_BIN}/libsigc-2.0-0.dll
+ ${DEVLIBS_BIN}/libtiff-3.dll
+ ${DEVLIBS_BIN}/libvisio-0.1.dll
+ ${DEVLIBS_BIN}/libwpd-0.9.dll
+ ${DEVLIBS_BIN}/libwpd-stream-0.9.dll
+ ${DEVLIBS_BIN}/libwpg-0.2.dll
+ ${DEVLIBS_BIN}/libxml2.dll
+ ${DEVLIBS_BIN}/libxslt.dll
+ ${DEVLIBS_BIN}/msvcr70.dll
+ ${DEVLIBS_BIN}/msvcr71.dll
+ ${DEVLIBS_BIN}/pthreadGC2.dll
+ ${DEVLIBS_BIN}/zlib1.dll
+ ${MINGW_BIN}/mingwm10.dll
+ ${MINGW_BIN}/libgomp-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
+ share
+ DESTINATION ${CMAKE_INSTALL_PREFIX}
+ PATTERN Adwaita EXCLUDE # NOTE: The theme is not used on Windows.
+ PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV.
+ PATTERN CMakeLists.txt EXCLUDE
+ PATTERN *.am EXCLUDE)
+
+ install(DIRECTORY ${DEVLIBS_PATH}/share/themes
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share)
+
+ install(DIRECTORY ${DEVLIBS_PATH}/share/locale
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share)
+
+ install(DIRECTORY ${DEVLIBS_PATH}/share/poppler
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share)
+
+ install(DIRECTORY ${DEVLIBS_PATH}/etc/fonts
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/etc)
+
+ install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/etc)
+
+ # GTK 2.0
+ install(DIRECTORY ${DEVLIBS_LIB}/gtk-2.0
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+ FILES_MATCHING
+ PATTERN "*.dll"
+ PATTERN "*.cache")
+
+ install(DIRECTORY ${DEVLIBS_LIB}/gdk-pixbuf-2.0
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+ FILES_MATCHING
+ PATTERN "*.dll"
+ PATTERN "*.cache")
+
+ # Aspell dictionaries
+ install(DIRECTORY ${DEVLIBS_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
+ ${DEVLIBS_BIN}/gspawn-win64-helper.exe
+ ${DEVLIBS_BIN}/gspawn-win64-helper-console.exe
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
+ else()
+ install(FILES
+ ${DEVLIBS_BIN}/gspawn-win32-helper.exe
+ ${DEVLIBS_BIN}/gspawn-win32-helper-console.exe
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
+ endif()
+
+ # Perl
+ install(FILES
+ ${DEVLIBS_PATH}/perl/bin/perl58.dll
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
+
+ # Python
+ install(FILES
+ ${DEVLIBS_PATH}/python/python.exe
+ ${DEVLIBS_PATH}/python/pythonw.exe
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/python)
+
+ if(HAVE_MINGW64)
+ install(FILES
+ ${DEVLIBS_PATH}/python/python27.dll
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/python)
+ else()
+ install(FILES
+ ${DEVLIBS_PATH}/python/python26.dll
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/python)
+ endif()
+
+ install(DIRECTORY ${DEVLIBS_PATH}/python/lib
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/python)
+
+ install(DIRECTORY ${DEVLIBS_PATH}/python/dlls
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/python)
+elseif(APPLE)
+ # TODO
+endif()
\ No newline at end of file diff --git a/mingwenv.cmake b/mingwenv.cmake new file mode 100644 index 000000000..03a653b5d --- /dev/null +++ b/mingwenv.cmake @@ -0,0 +1,184 @@ +# -----------------------------------------------------------------------------
+# Set the paths in this file if you want to build Inkscape from a shell other than the
+# Windows built-in command line (i.e. MSYS) or IDEs such as CodeLite. These variables
+# will be used as default if no environment variables are set.
+# -----------------------------------------------------------------------------
+
+# Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64
+set(ENV_DEVLIBS_PATH C:/devlibs)
+
+# Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64
+set(ENV_MINGW_PATH C:/mingw)
+
+# Directory containing the (optional) Ghostscript installation.
+set(ENV_GS_PATH C:/latex/gs/gs8.61)
+
+# -----------------------------------------------------------------------------
+# MinGW Configuration
+# -----------------------------------------------------------------------------
+message(STATUS "Configuring MinGW environment:")
+
+if($ENV{DEVLIBS_PATH} STREQUAL "")
+ message(STATUS "Setting path to development libraries from mingwenv.cmake: ${ENV_DEVLIBS_PATH}")
+ set(DEVLIBS_PATH ${ENV_DEVLIBS_PATH})
+else()
+ message(STATUS "Setting path to development libraries from environment: $ENV{DEVLIBS_PATH}")
+ set(DEVLIBS_PATH $ENV{DEVLIBS_PATH})
+endif()
+
+if($ENV{MINGW_PATH} STREQUAL "")
+ message(STATUS "Setting path to MinGW from mingwenv.cmake: ${ENV_MINGW_PATH}")
+ set(MINGW_PATH ${ENV_MINGW_PATH})
+else()
+ message(STATUS "Setting path to MinGW from environment: $ENV{MINGW_PATH}")
+ set(MINGW_PATH $ENV{MINGW_PATH})
+endif()
+
+if($ENV{GS_PATH} STREQUAL "")
+ message(STATUS "Setting path to Ghostscript from mingwenv.cmake: ${ENV_GS_PATH}")
+ set(GS_PATH ${ENV_GS_PATH})
+else()
+ message(STATUS "Setting path to Ghostscript from environment: $ENV{GS_PATH}")
+ set(GS_PATH $ENV{GS_PATH})
+endif()
+
+# Normalize directory separator slashes.
+string(REGEX REPLACE "\\\\" "/" DEVLIBS_PATH ${DEVLIBS_PATH})
+string(REGEX REPLACE "\\\\" "/" MINGW_PATH ${MINGW_PATH})
+string(REGEX REPLACE "\\\\" "/" GS_PATH ${GS_PATH})
+
+# -----------------------------------------------------------------------------
+# DEVLIBS CHECKS
+# -----------------------------------------------------------------------------
+
+# Directory containing the compile time .dll.a and .a files.
+set(DEVLIBS_LIB "${DEVLIBS_PATH}/lib")
+
+if(NOT EXISTS "${DEVLIBS_LIB}")
+ message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_LIB}")
+endif()
+
+# Add devlibs libraries to linker path.
+link_directories(${DEVLIBS_LIB})
+
+set(DEVLIBS_INCLUDE ${DEVLIBS_PATH}/include)
+
+if(NOT EXISTS ${DEVLIBS_INCLUDE})
+ message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_INCLUDE}")
+endif()
+
+# Add general MinGW headers to compiler include path.
+#include_directories(${DEVLIBS_INCLUDE})
+
+# Directory containing the precompiled .dll files.
+set(DEVLIBS_BIN ${DEVLIBS_PATH}/bin)
+
+if(NOT EXISTS ${DEVLIBS_BIN})
+ message(FATAL_ERROR "Inkscape development binaries directory does not exist: ${DEVLIBS_BIN}")
+endif()
+
+# Directory containing the pkgconfig .pc files.
+set(PKG_CONFIG_PATH "${DEVLIBS_PATH}/lib/pkgconfig")
+
+if(NOT EXISTS "${PKG_CONFIG_PATH}")
+ message(FATAL_ERROR "pkgconfig directory does not exist: ${PKG_CONFIG_PATH}")
+endif()
+
+# Add the devlibs directories to the paths used to find libraries and programs.
+list(APPEND CMAKE_PREFIX_PATH ${DEVLIBS_PATH})
+
+# Eliminate error messages when not having mingw in the environment path variable.
+list(APPEND CMAKE_PROGRAM_PATH ${DEVLIBS_BIN})
+
+# -----------------------------------------------------------------------------
+# MINGW CHECKS
+# -----------------------------------------------------------------------------
+
+# We are in a MinGW environment.
+set(HAVE_MINGW ON)
+
+# Try to determine the MinGW processor architecture.
+if(EXISTS ${MINGW_PATH}/mingw32)
+ set(HAVE_MINGW64 OFF)
+ set(MINGW_ARCH mingw32)
+elseif(EXISTS ${MINGW_PATH}/x86_64-w64-mingw32)
+ set(HAVE_MINGW64 ON)
+ set(MINGW_ARCH x86_64-w64-mingw32)
+else()
+ message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?")
+endif()
+
+# Path to processor architecture specific binaries and libs.
+set(MINGW_ARCH_PATH ${MINGW_PATH}/${MINGW_ARCH})
+
+set(MINGW_BIN ${MINGW_PATH}/bin)
+
+if(NOT EXISTS ${MINGW_BIN})
+ message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}")
+endif()
+
+# Eliminate error messages when not having mingw in the environment path variable.
+list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN})
+
+set(MINGW_LIB ${MINGW_PATH}/lib)
+
+if(NOT EXISTS ${MINGW_LIB})
+ message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}")
+endif()
+
+# Add MinGW libraries to linker path.
+link_directories(${MINGW_LIB})
+
+set(MINGW_INCLUDE ${MINGW_PATH}/include)
+
+if(NOT EXISTS ${MINGW_INCLUDE})
+ message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}")
+endif()
+
+# Add general MinGW headers to compiler include path.
+include_directories(SYSTEM ${MINGW_INCLUDE})
+
+if(HAVE_MINGW64)
+ set(MINGW64_LIB ${MINGW_ARCH_PATH}/lib)
+
+ if(NOT EXISTS ${MINGW64_LIB})
+ message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}")
+ endif()
+
+ # Add 64-Bit libraries to linker path.
+ link_directories(${MINGW64_LIB})
+
+ set(MINGW64_INCLUDE ${MINGW_ARCH_PATH}/include)
+
+ if(NOT EXISTS ${MINGW64_INCLUDE})
+ message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}")
+ endif()
+
+ # Add 64-Bit MinGW headers to compiler include path.
+ include_directories(${MINGW64_INCLUDE})
+endif()
+
+# -----------------------------------------------------------------------------
+# GHOSTSCRIPT CHECKS
+# -----------------------------------------------------------------------------
+
+# Check for Ghostscript.
+set(GS_BIN "${GS_PATH}/bin")
+
+if(EXISTS "${GS_BIN}")
+ set(HAVE_GS_BIN ON)
+else()
+ set(HAVE_GS_BIN OFF)
+endif()
+
+# -----------------------------------------------------------------------------
+# LIBRARY AND LINKER SETTINGS
+# -----------------------------------------------------------------------------
+
+# Tweak CMake into using Unix-style library names.
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll")
+
+if(NOT HAVE_MINGW64)
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+endif()
\ No newline at end of file |
