summaryrefslogtreecommitdiffstats
path: root/CMakeScripts/DefineDependsandFlags.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeScripts/DefineDependsandFlags.cmake')
-rw-r--r--CMakeScripts/DefineDependsandFlags.cmake256
1 files changed, 146 insertions, 110 deletions
diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
index ab197a7af..f2a6b5670 100644
--- a/CMakeScripts/DefineDependsandFlags.cmake
+++ b/CMakeScripts/DefineDependsandFlags.cmake
@@ -2,6 +2,7 @@
set(INKSCAPE_LIBS "")
set(INKSCAPE_INCS "")
set(INKSCAPE_INCS_SYS "")
+set(INKSCAPE_CXX_FLAGS "")
list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/src
@@ -13,40 +14,96 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR}
# ----------------------------------------------------------------------------
# Files we include
# ----------------------------------------------------------------------------
-
-find_package(GSL REQUIRED)
-list(APPEND INKSCAPE_INCS_SYS ${GSL_INCLUDE_DIRS})
-list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES})
if(WIN32)
- list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME
- list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME
- list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME
- list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME
- list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME
-elseif(APPLE)
- if(DEFINED ENV{CMAKE_PREFIX_PATH})
- # Adding the library search path explicitly seems not required
- # if MacPorts is installed in default prefix ('/opt/local') -
- # Cmake then can rely on the hard-coded paths in its modules.
- # Only prepend search path if $CMAKE_PREFIX_PATH is defined:
- list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") # FIXME
- endif()
- list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME
- list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME
- list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME
+message("---------------- BEGIN: Win32 ----------------")
+
+ # The name of the target operating system
+ set(CMAKE_SYSTEM_NAME Windows)
+
+ message("CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME})
+
+ set(CMAKE_C_COMPILER gcc)
+ set(CMAKE_CXX_COMPILER g++)
+ set(CMAKE_RC_COMPILER windres)
+
+ # Adjust the command line parameters for windres to the verion of MinGW.
+ set(CMAKE_RC_COMPILER_INIT windres)
+ enable_language(RC)
+ set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -i <SOURCE> -o <OBJECT>")
+
+ # Here is the target environment located
+ set(CMAKE_FIND_ROOT_PATH $ENV{MINGW_PATH}/)
+
+ message("CMAKE_FIND_ROOT_PATH: " ${CMAKE_FIND_ROOT_PATH})
+
+ # Tweak CMake into using Unix-style library names.
+ set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll")
+
+ message("CMAKE_FIND_LIBRARY_PREFIXES: " ${CMAKE_FIND_LIBRARY_PREFIXES})
+ message("CMAKE_FIND_LIBRARY_SUFFIXES: " ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+ set(SDL_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}x86_64-w64-mingw32/include/c++)
+
+ message("SDL_INCLUDE_DIR: " ${SDL_INCLUDE_DIR})
+
+ #if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^amd64")
+ link_directories($ENV{MINGW_PATH}/lib)
+ link_directories($ENV{DEVLIBS_PATH}/lib)
+ link_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/lib)
+ link_directories($ENV{WINDIR}/system32)
+
+ include_directories($ENV{MINGW_PATH}/include)
+
+ include_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/include)
+ include_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/include/c++)
+ #endif ()
+
+ get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
+
+ foreach(dir ${dirs})
+ message("CMAKE_INCLUDE_DIR:" ${dir})
+ endforeach()
+
+ add_definitions(-DFLT_EPSILON=1e-9)
+ add_definitions(-DFLT_MAX=1e+37)
+ add_definitions(-DFLT_MIN=1e-37)
+
+ list(APPEND INKSCAPE_LIBS "-lgomp")
+ list(APPEND INKSCAPE_LIBS "-lwinpthread")
+ list(APPEND INKSCAPE_LIBS "-lmscms")
+
+ list(APPEND INKSCAPE_CXX_FLAGS "-mwindows")
+ list(APPEND INKSCAPE_CXX_FLAGS "-mthreads")
+ list(APPEND INKSCAPE_CXX_FLAGS "-m64")
+
+ # Try to compile using C++ 11.
+ set(CMAKE_CXX_STANDARD 11)
+
+ message("---------------- END: Win32 ----------------")
+endif()
+
+pkg_check_modules(INKSCAPE_DEP REQUIRED pangocairo pangoft2 fontconfig gthread-2.0 gsl gmodule-2.0)
+list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LDFLAGS})
+list(APPEND INKSCAPE_INCS_SYS ${INKSCAPE_DEP_INCLUDE_DIRS})
+list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LIBRARIES})
+add_definitions(${INKSCAPE_DEP_CFLAGS_OTHER})
+
+if(APPLE AND DEFINED ENV{CMAKE_PREFIX_PATH})
+ list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib")
+endif()
+if(APPLE)
if(${GTK+_2.0_TARGET} MATCHES "x11")
- # only link X11 if using X11 backend of GTK2
- list(APPEND INKSCAPE_LIBS "-lX11") # FIXME
+ pkg_check_modules(x11 REQUIRED x11)
+ list(APPEND INKSCAPE_LIBS ${x11_LDFLAGS})
endif()
+elseif(WIN32)
+# X11 not available on windows
else()
- list(APPEND INKSCAPE_LIBS "-ldl") # FIXME
- list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME
- list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME
- list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME
- list(APPEND INKSCAPE_LIBS "-lX11") # FIXME
-endif()
+ pkg_check_modules(x11 REQUIRED x11)
+ list(APPEND INKSCAPE_LIBS ${x11_LDFLAGS})
-list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME
+endif()
if(WITH_GNOME_VFS)
find_package(GnomeVFS2)
@@ -193,11 +250,13 @@ else(POTRACE_FOUND)
endif()
if(WITH_DBUS)
- find_package(DBus REQUIRED)
+ pkg_check_modules(DBUS dbus-1 dbus-glib-1)
if(DBUS_FOUND)
- list(APPEND INKSCAPE_INCS_SYS ${DBUS_INCLUDE_DIR})
- list(APPEND INKSCAPE_INCS_SYS ${DBUS_ARCH_INCLUDE_DIR})
- list(APPEND INKSCAPE_LIBS ${DBUS_LIBRARIES})
+ list(APPEND INKSCAPE_LIBS ${DBUS_LDFLAGS})
+ list(APPEND INKSCAPE_INCS_SYS ${DBUS_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/src/extension/dbus/)
+ list(APPEND INKSCAPE_LIBS ${DBUS_LIBRARIES})
+ add_definitions(${DBUS_CFLAGS_OTHER})
+
else()
set(WITH_DBUS OFF)
endif()
@@ -220,15 +279,16 @@ set(TRY_GTKSPELL 1)
# use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added
if("${WITH_GTK3_EXPERIMENTAL}")
pkg_check_modules(
- GTK
+ GTK3
REQUIRED
- gtkmm-3.0>=3.2
- gdkmm-3.0>=3.2
- gtk+-3.0>=3.2
- gdk-3.0>=3.2
- gdl-3.0>=3.3.5
+ gtkmm-3.0>=3.8
+ gdkmm-3.0>=3.8
+ gtk+-3.0>=3.8
+ gdk-3.0>=3.8
+ gdl-3.0>=3.4
)
message("Using EXPERIMENTAL Gtkmm 3 build")
+ list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER})
set(WITH_GTKMM_3_0 1)
message("Using external GDL")
set(WITH_EXT_GDL 1)
@@ -248,7 +308,7 @@ if("${WITH_GTK3_EXPERIMENTAL}")
pkg_check_modules(GDL_3_6 gdl-3.0>=3.6)
if("${GDL_3_6_FOUND}")
- message("Using Gdl 3.6 or higher")
+ message("Using GDL 3.6 or higher")
set (WITH_GDL_3_6 1)
endif()
@@ -256,65 +316,46 @@ if("${WITH_GTK3_EXPERIMENTAL}")
pkg_check_modules(GTKSPELL3 gtkspell3-3.0)
if("${GTKSPELL3_FOUND}")
- message("Using GtkSpell3 3.0")
+ message("Using GtkSpell 3")
set (WITH_GTKSPELL 1)
+ else()
+ unset(WITH_GTKSPELL)
endif()
+
list(APPEND INKSCAPE_INCS_SYS
- ${GTK_INCLUDE_DIRS}
+ ${GTK3_INCLUDE_DIRS}
${GTKSPELL3_INCLUDE_DIRS}
)
list(APPEND INKSCAPE_LIBS
- ${GTK_LIBRARIES}
+ ${GTK3_LIBRARIES}
${GTKSPELL3_LIBRARIES}
)
else()
- find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
+ pkg_check_modules(GTK REQUIRED
+ gtkmm-2.4>=2.24
+ gdkmm-2.4
+ gtk+-2.0
+ gdk-2.0
+ )
+ list(APPEND INKSCAPE_CXX_FLAGS ${GTK_CFLAGS_OTHER})
+ pkg_check_modules(GTKSPELL2 gtkspell-2.0)
+ if("${GTKSPELL2_FOUND}")
+ message("Using GtkSpell 2")
+ add_definitions(${GTKSPELL2_CFLAGS_OTHER})
+ set (WITH_GTKSPELL 1)
+ else()
+ unset(WITH_GTKSPELL)
+ endif()
list(APPEND INKSCAPE_INCS_SYS
- ${GTK2_GDK_INCLUDE_DIR}
- ${GTK2_GDKMM_INCLUDE_DIR}
- ${GTK2_GDK_PIXBUF_INCLUDE_DIR}
- ${GTK2_GDKCONFIG_INCLUDE_DIR}
- ${GTK2_GDKMMCONFIG_INCLUDE_DIR}
- ${GTK2_GLIB_INCLUDE_DIR}
- ${GTK2_GLIBCONFIG_INCLUDE_DIR}
- ${GTK2_GLIBMM_INCLUDE_DIR}
- ${GTK2_GLIBMMCONFIG_INCLUDE_DIR}
- ${GTK2_GTK_INCLUDE_DIR}
- ${GTK2_GTKMM_INCLUDE_DIR}
- ${GTK2_GTKMMCONFIG_INCLUDE_DIR}
- ${GTK2_ATK_INCLUDE_DIR}
- ${GTK2_ATKMM_INCLUDE_DIR}
- ${GTK2_PANGO_INCLUDE_DIR}
- ${GTK2_PANGOMM_INCLUDE_DIR}
- ${GTK2_PANGOMMCONFIG_INCLUDE_DIR}
- ${GTK2_CAIRO_INCLUDE_DIR}
- ${GTK2_CAIROMM_INCLUDE_DIR}
- ${GTK2_CAIROMMCONFIG_INCLUDE_DIR} # <-- not in cmake 2.8.4
- ${GTK2_GIOMM_INCLUDE_DIR}
- ${GTK2_GIOMMCONFIG_INCLUDE_DIR}
- ${GTK2_SIGC++_INCLUDE_DIR}
- ${GTK2_SIGC++CONFIG_INCLUDE_DIR}
- )
+ ${GTK_INCLUDE_DIRS}
+ ${GTKSPELL2_INCLUDE_DIRS}
+ )
list(APPEND INKSCAPE_LIBS
- ${GTK2_GDK_LIBRARY}
- ${GTK2_GDKMM_LIBRARY}
- ${GTK2_GDK_PIXBUF_LIBRARY}
- ${GTK2_GLIB_LIBRARY}
- ${GTK2_GLIBMM_LIBRARY}
- ${GTK2_GTK_LIBRARY}
- ${GTK2_GTKMM_LIBRARY}
- ${GTK2_ATK_LIBRARY}
- ${GTK2_ATKMM_LIBRARY}
- ${GTK2_PANGO_LIBRARY}
- ${GTK2_PANGOMM_LIBRARY}
- ${GTK2_CAIRO_LIBRARY}
- ${GTK2_CAIROMM_LIBRARY}
- ${GTK2_GIOMM_LIBRARY}
- ${GTK2_SIGC++_LIBRARY}
- ${GTK2_GOBJECT_LIBRARY}
- )
+ ${GTK_LIBRARIES}
+ ${GTKSPELL2_LIBRARIES}
+ )
endif()
find_package(Freetype REQUIRED)
@@ -333,17 +374,6 @@ if(ASPELL_FOUND)
set(HAVE_ASPELL TRUE)
endif()
-if("${TRY_GTKSPELL}" AND "${WITH_GTKSPELL}")
- find_package(GtkSpell)
- if(GTKSPELL_FOUND)
- list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR})
- list(APPEND INKSCAPE_LIBS ${GTKSPELL_LIBRARIES})
- add_definitions(${GTKSPELL_DEFINITIONS})
- else()
- set(WITH_GTKSPELL OFF)
- endif()
-endif()
-
#find_package(OpenSSL)
#list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR})
#list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES})
@@ -362,7 +392,7 @@ if(WITH_OPENMP)
find_package(OpenMP)
if(OPENMP_FOUND)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ list(APPEND INKSCAPE_CXX_FLAGS ${OpenMP_CXX_FLAGS})
if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode")
set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES")
endif()
@@ -383,19 +413,15 @@ list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS})
list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES})
if(WITH_IMAGE_MAGICK)
- find_package(ImageMagick COMPONENTS MagickCore Magick++)
+ pkg_check_modules(ImageMagick ImageMagick MagickCore Magick++ )
if(ImageMagick_FOUND)
- # the component-specific paths apparently fail to get detected correctly
- # on some linux distros (or with older Cmake versions).
- # Use variables which list all include dirs and libraries instead:
- list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS})
- list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES})
- # TODO: Cmake's ImageMagick module misses required defines for newer
- # versions of ImageMagick. See also:
- # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832
- #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?)
- #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?)
- else()
+
+ list(APPEND INKSCAPE_LIBS ${ImageMagick_LDFLAGS})
+ add_definitions(${ImageMagick_CFLAGS_OTHER})
+
+ list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES})
+ else()
set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster'
endif()
endif()
@@ -411,8 +437,18 @@ if(WITH_NLS)
endif(GETTEXT_FOUND)
endif(WITH_NLS)
+#sets c++11 for newer sigc++ if required when pkg-config does not detect it
find_package(SigC++ REQUIRED)
+pkg_check_modules(SIGC++ REQUIRED sigc++-2.0 )
+list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS})
+
+list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER})
+
+list(REMOVE_DUPLICATES INKSCAPE_CXX_FLAGS)
+foreach(flag ${INKSCAPE_CXX_FLAGS})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" CACHE STRING "" FORCE)
+endforeach()
# end Dependencies
list(REMOVE_DUPLICATES INKSCAPE_LIBS)