summaryrefslogtreecommitdiffstats
path: root/CMakeScripts
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeScripts')
-rw-r--r--CMakeScripts/CleanAll.cmake17
-rw-r--r--CMakeScripts/ConfigChecks.cmake4
-rw-r--r--CMakeScripts/ConfigCompileFlags.cmake10
-rw-r--r--CMakeScripts/ConfigPaths.cmake47
-rw-r--r--CMakeScripts/DefineDependsandFlags.cmake498
-rw-r--r--CMakeScripts/HelperFunctions.cmake19
-rw-r--r--CMakeScripts/HelperMacros.cmake170
-rw-r--r--CMakeScripts/IncludeJava.cmake14
-rw-r--r--CMakeScripts/Modules/FindGettext.cmake237
-rw-r--r--CMakeScripts/Modules/FindPopplerCairo.cmake6
-rw-r--r--CMakeScripts/Modules/FindPotrace.cmake62
-rw-r--r--CMakeScripts/Modules/FindSigC++.cmake22
-rw-r--r--CMakeScripts/Modules/sigcpp_test.cpp15
-rw-r--r--CMakeScripts/Pod2man.cmake54
-rw-r--r--CMakeScripts/UseGlibMarshal.cmake48
-rw-r--r--CMakeScripts/UsePkgConfig.cmake166
-rw-r--r--CMakeScripts/inkscape-version.cmake30
17 files changed, 922 insertions, 497 deletions
diff --git a/CMakeScripts/CleanAll.cmake b/CMakeScripts/CleanAll.cmake
new file mode 100644
index 000000000..0b04d188f
--- /dev/null
+++ b/CMakeScripts/CleanAll.cmake
@@ -0,0 +1,17 @@
+set(_generated
+ ${CMAKE_CURRENT_BINARY_DIR}/CMakeCache.txt
+ ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/po/cmake_install.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/Makefile
+ ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles
+)
+
+message("${_generated}")
+
+foreach(file ${_generated})
+ if(EXISTS ${file})
+ message("Removing ${file}")
+ file(REMOVE_RECURSE ${file})
+ endif()
+endforeach(file)
diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake
index 905465448..926dc3ad3 100644
--- a/CMakeScripts/ConfigChecks.cmake
+++ b/CMakeScripts/ConfigChecks.cmake
@@ -18,8 +18,6 @@ CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR)
CHECK_FUNCTION_EXISTS(fpsetmask HAVE_FPSETMASK)
CHECK_INCLUDE_FILES(gc/gc.h HAVE_GC_GC_H)
CHECK_INCLUDE_FILES(gc.h HAVE_GC_H)
-CHECK_INCLUDE_FILES(getopt.h HAVE_GETOPT_H)
-CHECK_FUNCTION_EXISTS(gettext HAVE_GETTEXT)
CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
CHECK_FUNCTION_EXISTS(gtk_window_fullscreen HAVE_GTK_WINDOW_FULLSCREEN)
CHECK_FUNCTION_EXISTS(gtk_window_set_default_icon_from_file HAVE_GTK_WINDOW_SET_DEFAULT_ICON_FROM_FILE)
@@ -60,7 +58,7 @@ CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILES(zlib.h HAVE_ZLIB_H)
-#Enable pango defines, necessary for compilation on Win32, how about Linux?
+# Enable pango defines, necessary for compilation on Win32, how about Linux?
# yes but needs to be done a better way
if(HAVE_CAIRO_PDF)
set(PANGO_ENABLE_ENGINE TRUE)
diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake
index 0ff66fad8..453ceef21 100644
--- a/CMakeScripts/ConfigCompileFlags.cmake
+++ b/CMakeScripts/ConfigCompileFlags.cmake
@@ -2,20 +2,20 @@ set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}")
add_definitions(-Wall -Wformat-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch)
add_definitions(-O2)
-#define the flags for profiling if desired:
+# Define the flags for profiling if desired:
if(WITH_PROFILING)
- set(COMPILE_PROFILING_FLAGS "-pg")
- set(LINK_PROFILING_FLAGS "-pg")
+ set(COMPILE_PROFILING_FLAGS "-pg")
+ set(LINK_PROFILING_FLAGS "-pg")
endif()
add_definitions(-DVERSION=\\\"${INKSCAPE_VERSION}\\\")
add_definitions(${DEFINE_FLAGS} -DHAVE_CONFIG_H -D_INTL_REDIRECT_INLINE)
if(WIN32)
- add_definitions(-DXP_WIN)
+ add_definitions(-DXP_WIN)
endif(WIN32)
-# for Inkboard:
+# For Inkboard:
add_definitions(-DHAVE_SSL "-DRELAYTOOL_SSL=\"static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }\"")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_PROFILING_FLAGS} ")
diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake
index 770e0c6ad..3b13a7734 100644
--- a/CMakeScripts/ConfigPaths.cmake
+++ b/CMakeScripts/ConfigPaths.cmake
@@ -1,37 +1,16 @@
-MESSAGE(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}")
+message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}")
-IF(WIN32)
- SET(PACKAGE_LOCALE_DIR "locale")
+if(WIN32)
+ set(PACKAGE_LOCALE_DIR "locale")
set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
-ELSE(WIN32)
+else(WIN32)
# TODO: check and change this to correct value:
- SET(PACKAGE_LOCALE_DIR "locale")
-
- if(NOT SHARE_INSTALL)
- set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
- endif(NOT SHARE_INSTALL)
- mark_as_advanced(SHARE_INSTALL)
-ENDIF(WIN32)
-
-#SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
-#SET(CMAKE_SKIP_RPATH:BOOL OFF)
-
-# Include base dir, so other files can refer to the generated files.
-# CMAKE_INCLUDE_CURRENT_DIR is not enough as it only includes the current dir and not the basedir with config.h in it
-#INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}" src/)
-#LINK_DIRECTORIES ("${LINK_DIRECTORIES}" "${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}" src/)
-
-#INSTALL(TARGETS INKSCAPE
-# RUNTIME DESTINATION bin
-# LIBRARY DESTINATION lib
-# ARCHIVE DESTINATION lib
-#)
-
-#FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-#INSTALL(FILES ${files} DESTINATION include/INKSCAPE/INKSCAPE)
-
-#CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/INKSCAPE.pc.in
-# ${CMAKE_BINARY_DIR}/INKSCAPE.pc @ONLY IMMEDIATE )
-#INSTALL(FILES "${CMAKE_BINARY_DIR}/INKSCAPE.pc" DESTINATION lib/pkgconfig)
-
-#SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Where to put the executables")set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "Where to put the libraries")
+ if(NOT PACKAGE_LOCALE_DIR)
+ set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this
+ endif(NOT PACKAGE_LOCALE_DIR)
+
+ if(NOT SHARE_INSTALL)
+ set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
+ endif(NOT SHARE_INSTALL)
+ mark_as_advanced(SHARE_INSTALL)
+endif(WIN32)
diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
index a4dad21b1..ab197a7af 100644
--- a/CMakeScripts/DefineDependsandFlags.cmake
+++ b/CMakeScripts/DefineDependsandFlags.cmake
@@ -4,10 +4,10 @@ set(INKSCAPE_INCS "")
set(INKSCAPE_INCS_SYS "")
list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR}
- ${PROJECT_SOURCE_DIR}/src
+ ${PROJECT_SOURCE_DIR}/src
- # generated includes
- ${CMAKE_BINARY_DIR}/include
+ # generated includes
+ ${CMAKE_BINARY_DIR}/include
)
# ----------------------------------------------------------------------------
@@ -17,55 +17,55 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR}
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
+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
- if(${GTK+_2.0_TARGET} MATCHES "x11")
- # only link X11 if using X11 backend of GTK2
- list(APPEND INKSCAPE_LIBS "-lX11") # FIXME
- endif()
-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
+ 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
+ if(${GTK+_2.0_TARGET} MATCHES "x11")
+ # only link X11 if using X11 backend of GTK2
list(APPEND INKSCAPE_LIBS "-lX11") # FIXME
+ endif()
+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()
list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME
if(WITH_GNOME_VFS)
- find_package(GnomeVFS2)
- if(GNOMEVFS2_FOUND)
- list(APPEND INKSCAPE_INCS_SYS ${GNOMEVFS2_INCLUDE_DIR})
- list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY})
- else()
- set(WITH_GNOME_VFS OFF)
- endif()
+ find_package(GnomeVFS2)
+ if(GNOMEVFS2_FOUND)
+ list(APPEND INKSCAPE_INCS_SYS ${GNOMEVFS2_INCLUDE_DIR})
+ list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY})
+ else()
+ set(WITH_GNOME_VFS OFF)
+ endif()
endif()
if(ENABLE_LCMS)
- find_package(LCMS2)
- if(LCMS2_FOUND)
- list(APPEND INKSCAPE_INCS_SYS ${LCMS2_INCLUDE_DIRS})
- list(APPEND INKSCAPE_LIBS ${LCMS2_LIBRARIES})
- add_definitions(${LCMS2_DEFINITIONS})
+ find_package(LCMS2)
+ if(LCMS2_FOUND)
+ list(APPEND INKSCAPE_INCS_SYS ${LCMS2_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${LCMS2_LIBRARIES})
+ add_definitions(${LCMS2_DEFINITIONS})
set (HAVE_LIBLCMS2 1)
- else()
+ else()
find_package(LCMS)
if(LCMS_FOUND)
list(APPEND INKSCAPE_INCS_SYS ${LCMS_INCLUDE_DIRS})
@@ -94,47 +94,31 @@ list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES})
add_definitions(${BOEHMGC_DEFINITIONS})
if(ENABLE_POPPLER)
- find_package(PopplerCairo)
- if(POPPLER_FOUND)
- set(HAVE_POPPLER ON)
- if(ENABLE_POPPLER_CAIRO)
- if(POPPLER_CAIRO_FOUND AND POPPLER_GLIB_FOUND)
- set(HAVE_POPPLER_CAIRO ON)
- endif()
- if(POPPLER_GLIB_FOUND AND CAIRO_SVG_FOUND)
- set(HAVE_POPPLER_GLIB ON)
- endif()
- endif()
- if(POPPLER_VERSION VERSION_GREATER "0.8.3" OR
- POPPLER_VERSION VERSION_EQUAL "0.8.3")
- set(POPPLER_NEW_GFXFONT ON)
- endif()
- if(POPPLER_VERSION VERSION_GREATER "0.12.2" OR
- POPPLER_VERSION VERSION_EQUAL "0.12.2")
- set(POPPLER_NEW_COLOR_SPACE_API ON)
- endif()
- if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR
- POPPLER_VERSION VERSION_EQUAL "0.26.0")
- set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON)
- endif()
- if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR
- POPPLER_VERSION VERSION_EQUAL "0.29.0")
- set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON)
- endif()
- if(POPPLER_VERSION VERSION_GREATER "0.15.1" OR
- POPPLER_VERSION VERSION_EQUAL "0.15.1")
- set(POPPLER_NEW_GFXPATCH ON)
- endif()
- if(POPPLER_VERSION VERSION_GREATER "0.20.0" OR
- POPPLER_VERSION VERSION_EQUAL "0.20.0")
- set(POPPLER_NEW_ERRORAPI ON)
- endif()
- else()
- set(ENABLE_POPPLER_CAIRO OFF)
+ find_package(PopplerCairo)
+ if(POPPLER_FOUND)
+ set(HAVE_POPPLER ON)
+ if(ENABLE_POPPLER_CAIRO)
+ if(POPPLER_CAIRO_FOUND AND POPPLER_GLIB_FOUND)
+ set(HAVE_POPPLER_CAIRO ON)
+ endif()
+ if(POPPLER_GLIB_FOUND AND CAIRO_SVG_FOUND)
+ set(HAVE_POPPLER_GLIB ON)
+ endif()
endif()
-else()
- set(HAVE_POPPLER OFF)
+ if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR
+ POPPLER_VERSION VERSION_EQUAL "0.26.0")
+ set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON)
+ endif()
+ if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR
+ POPPLER_VERSION VERSION_EQUAL "0.29.0")
+ set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON)
+ endif()
+ else()
set(ENABLE_POPPLER_CAIRO OFF)
+ endif()
+else()
+ set(HAVE_POPPLER OFF)
+ set(ENABLE_POPPLER_CAIRO OFF)
endif()
list(APPEND INKSCAPE_INCS_SYS ${POPPLER_INCLUDE_DIRS})
@@ -142,52 +126,51 @@ list(APPEND INKSCAPE_LIBS ${POPPLER_LIBRARIES})
add_definitions(${POPPLER_DEFINITIONS})
if(WITH_LIBWPG)
- find_package(LibWPG)
- if(LIBWPG_FOUND)
- set(WITH_LIBWPG01 ${LIBWPG-0.1_FOUND})
- set(WITH_LIBWPG02 ${LIBWPG-0.2_FOUND})
- set(WITH_LIBWPG03 ${LIBWPG-0.3_FOUND})
- list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS})
- list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES})
- add_definitions(${LIBWPG_DEFINITIONS})
- else()
- set(WITH_LIBWPG OFF)
- endif()
+ find_package(LibWPG)
+ if(LIBWPG_FOUND)
+ set(WITH_LIBWPG01 ${LIBWPG-0.1_FOUND})
+ set(WITH_LIBWPG02 ${LIBWPG-0.2_FOUND})
+ set(WITH_LIBWPG03 ${LIBWPG-0.3_FOUND})
+ list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES})
+ add_definitions(${LIBWPG_DEFINITIONS})
+ else()
+ set(WITH_LIBWPG OFF)
+ endif()
endif()
if(WITH_LIBVISIO)
- find_package(LibVisio)
- if(LIBVISIO_FOUND)
- set(WITH_LIBVISIO00 ${LIBVISIO-0.0_FOUND})
- set(WITH_LIBVISIO01 ${LIBVISIO-0.1_FOUND})
- list(APPEND INKSCAPE_INCS_SYS ${LIBVISIO_INCLUDE_DIRS})
- list(APPEND INKSCAPE_LIBS ${LIBVISIO_LIBRARIES})
- add_definitions(${LIBVISIO_DEFINITIONS})
- else()
- set(WITH_LIBVISIO OFF)
- endif()
+ find_package(LibVisio)
+ if(LIBVISIO_FOUND)
+ set(WITH_LIBVISIO00 ${LIBVISIO-0.0_FOUND})
+ set(WITH_LIBVISIO01 ${LIBVISIO-0.1_FOUND})
+ list(APPEND INKSCAPE_INCS_SYS ${LIBVISIO_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${LIBVISIO_LIBRARIES})
+ add_definitions(${LIBVISIO_DEFINITIONS})
+ else()
+ set(WITH_LIBVISIO OFF)
+ endif()
endif()
if(WITH_LIBCDR)
- find_package(LibCDR)
- if(LIBCDR_FOUND)
- set(WITH_LIBCDR00 ${LIBCDR-0.0_FOUND})
- set(WITH_LIBCDR01 ${LIBCDR-0.1_FOUND})
- list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS})
- list(APPEND INKSCAPE_LIBS ${LIBCDR_LIBRARIES})
- add_definitions(${LIBCDR_DEFINITIONS})
- else()
- set(WITH_LIBCDR OFF)
- endif()
+ find_package(LibCDR)
+ if(LIBCDR_FOUND)
+ set(WITH_LIBCDR00 ${LIBCDR-0.0_FOUND})
+ set(WITH_LIBCDR01 ${LIBCDR-0.1_FOUND})
+ list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${LIBCDR_LIBRARIES})
+ add_definitions(${LIBCDR_DEFINITIONS})
+ else()
+ set(WITH_LIBCDR OFF)
+ endif()
endif()
-FIND_PACKAGE(JPEG REQUIRED)
-#IF(JPEG_FOUND)
- #INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
- #TARGET_LINK_LIBRARIES(mpo ${JPEG_LIBRARIES})
-#ENDIF()
-list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR})
-list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES})
+FIND_PACKAGE(JPEG)
+IF(JPEG_FOUND)
+ list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR})
+ list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES})
+ set(HAVE_JPEG ON)
+ENDIF()
find_package(PNG REQUIRED)
list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR})
@@ -198,78 +181,141 @@ list(APPEND INKSCAPE_INCS_SYS ${POPT_INCLUDE_DIR})
list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES})
add_definitions(${POPT_DEFINITIONS})
+find_package(Potrace)
+if(POTRACE_FOUND)
+ list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES})
+ set(HAVE_POTRACE ON)
+ add_definitions(-DHAVE_POTRACE)
+else(POTRACE_FOUND)
+ set(HAVE_POTRACE OFF)
+ message(STATUS "Could not locate the Potrace library headers: the Trace Bitmap and Paintbucket tools will be disabled")
+endif()
+
if(WITH_DBUS)
- find_package(DBus REQUIRED)
- 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})
- else()
- set(WITH_DBUS OFF)
- endif()
+ find_package(DBus REQUIRED)
+ 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})
+ else()
+ set(WITH_DBUS OFF)
+ endif()
endif()
if(WITH_GTEST)
- if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}")
+ if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}")
- else()
- set(WITH_GTEST off)
- endif()
+ else()
+ set(WITH_GTEST off)
+ endif()
endif()
# ----------------------------------------------------------------------------
# CMake's builtin
# ----------------------------------------------------------------------------
+set(TRY_GTKSPELL 1)
# Include dependencies:
# use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added
-find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
-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}
-)
+if("${WITH_GTK3_EXPERIMENTAL}")
+ pkg_check_modules(
+ GTK
+ 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
+ )
+ message("Using EXPERIMENTAL Gtkmm 3 build")
+ set(WITH_GTKMM_3_0 1)
+ message("Using external GDL")
+ set(WITH_EXT_GDL 1)
+
+ # Check whether we can use new features in Gtkmm 3.10
+ # TODO: Drop this test and bump the version number in the GTK test above
+ # as soon as all supported distributions provide Gtkmm >= 3.10
+ pkg_check_modules(GTKMM_3_10
+ gtkmm-3.0>=3.10,
+ )
+
+ if("${GTKMM_3_10_FOUND}")
+ message("Using Gtkmm 3.10 build")
+ set (WITH_GTKMM_3_10 1)
+ endif()
-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}
-)
+ pkg_check_modules(GDL_3_6 gdl-3.0>=3.6)
+
+ if("${GDL_3_6_FOUND}")
+ message("Using Gdl 3.6 or higher")
+ set (WITH_GDL_3_6 1)
+ endif()
+
+ set(TRY_GTKSPELL )
+ pkg_check_modules(GTKSPELL3 gtkspell3-3.0)
+ if("${GTKSPELL3_FOUND}")
+ message("Using GtkSpell3 3.0")
+ set (WITH_GTKSPELL 1)
+ endif()
+ list(APPEND INKSCAPE_INCS_SYS
+ ${GTK_INCLUDE_DIRS}
+ ${GTKSPELL3_INCLUDE_DIRS}
+ )
+
+ list(APPEND INKSCAPE_LIBS
+ ${GTK_LIBRARIES}
+ ${GTKSPELL3_LIBRARIES}
+ )
+else()
+ find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
+ 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}
+ )
+
+ 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}
+ )
+endif()
find_package(Freetype REQUIRED)
list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS})
@@ -281,21 +327,21 @@ list(APPEND INKSCAPE_INCS_SYS ${Boost_INCLUDE_DIRS})
find_package(ASPELL)
if(ASPELL_FOUND)
- list(APPEND INKSCAPE_INCS_SYS ${ASPELL_INCLUDE_DIR})
- list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES})
- add_definitions(${ASPELL_DEFINITIONS})
- set(HAVE_ASPELL TRUE)
+ list(APPEND INKSCAPE_INCS_SYS ${ASPELL_INCLUDE_DIR})
+ list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES})
+ add_definitions(${ASPELL_DEFINITIONS})
+ set(HAVE_ASPELL TRUE)
endif()
-if(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()
+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)
@@ -313,23 +359,23 @@ list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES})
add_definitions(${LIBXML2_DEFINITIONS})
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}")
- if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode")
- set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES")
- endif()
- mark_as_advanced(OpenMP_C_FLAGS)
- mark_as_advanced(OpenMP_CXX_FLAGS)
- # '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp'
- # uncomment explicit linking below if still needed:
- set(HAVE_OPENMP ON)
- #list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME
- else()
- set(HAVE_OPENMP OFF)
- set(WITH_OPENMP OFF)
+ 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}")
+ if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode")
+ set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES")
endif()
+ mark_as_advanced(OpenMP_C_FLAGS)
+ mark_as_advanced(OpenMP_CXX_FLAGS)
+ # '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp'
+ # uncomment explicit linking below if still needed:
+ set(HAVE_OPENMP ON)
+ #list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME
+ else()
+ set(HAVE_OPENMP OFF)
+ set(WITH_OPENMP OFF)
+ endif()
endif()
find_package(ZLIB REQUIRED)
@@ -337,24 +383,36 @@ list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS})
list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES})
if(WITH_IMAGE_MAGICK)
- find_package(ImageMagick COMPONENTS 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()
- set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster'
- endif()
+ find_package(ImageMagick COMPONENTS 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()
+ set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster'
+ endif()
endif()
-include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake)
+set(ENABLE_NLS OFF)
+if(WITH_NLS)
+ find_package(Gettext)
+ if(GETTEXT_FOUND)
+ message(STATUS "Found gettext + msgfmt to convert language files. Translation enabled")
+ set(ENABLE_NLS ON)
+ else(GETTEXT_FOUND)
+ message(STATUS "Cannot find gettext + msgfmt to convert language file. Translation won't be enabled")
+ endif(GETTEXT_FOUND)
+endif(WITH_NLS)
+
+find_package(SigC++ REQUIRED)
+
# end Dependencies
list(REMOVE_DUPLICATES INKSCAPE_LIBS)
diff --git a/CMakeScripts/HelperFunctions.cmake b/CMakeScripts/HelperFunctions.cmake
index 0e6fff51a..f4ed255d5 100644
--- a/CMakeScripts/HelperFunctions.cmake
+++ b/CMakeScripts/HelperFunctions.cmake
@@ -12,8 +12,23 @@ function(pkg_check_variable _pkg _name)
set(_output_name "${_pkg_upper}_${_name_upper}")
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg}
- OUTPUT_VARIABLE _pkg_result
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+ OUTPUT_VARIABLE _pkg_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable ${_name} of ${_pkg}")
endfunction()
+
+# Join a cmake list of strings with a given glue character/string
+# E.g. join(MY_RESULT, ",", "1; 2; 3;") returns "1, 2, 3"
+function(join OUTPUT GLUE)
+ set(_TMP_RESULT "")
+ set(_GLUE "") # effective glue is empty at the beginning
+ foreach(arg ${ARGN})
+ # Skip empty lines
+ if(NOT arg STREQUAL "\n")
+ set(_TMP_RESULT "${_TMP_RESULT}${_GLUE}${arg}")
+ set(_GLUE "${GLUE}")
+ endif()
+ endforeach()
+ set(${OUTPUT} "${_TMP_RESULT}" PARENT_SCOPE)
+endfunction()
diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake
index f19baf5f2..f2fbed64b 100644
--- a/CMakeScripts/HelperMacros.cmake
+++ b/CMakeScripts/HelperMacros.cmake
@@ -1,26 +1,26 @@
# A macro to replace slashes and spaces in a string with underscores
macro(SANITIZE_PATH _string_var)
- string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}})
+ string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}})
endmacro()
macro(inkscape_source_group
sources)
- # Group by location on disk
- source_group("Source Files" FILES CMakeLists.txt)
+ # Group by location on disk
+ source_group("Source Files" FILES CMakeLists.txt)
- foreach(_SRC ${sources})
- get_filename_component(_SRC_EXT ${_SRC} EXT)
- if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp"))
- source_group("Header Files" FILES ${_SRC})
- else()
- source_group("Source Files" FILES ${_SRC})
- endif()
- endforeach()
+ foreach(_SRC ${sources})
+ get_filename_component(_SRC_EXT ${_SRC} EXT)
+ if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp"))
+ source_group("Header Files" FILES ${_SRC})
+ else()
+ source_group("Source Files" FILES ${_SRC})
+ endif()
+ endforeach()
- unset(_SRC)
- unset(_SRC_EXT)
+ unset(_SRC)
+ unset(_SRC_EXT)
endmacro()
@@ -29,11 +29,11 @@ macro(add_inkscape_lib
name
sources)
- add_library(${name} ${sources})
+ add_library(${name} ${sources})
- # works fine without having the includes
- # listed is helpful for IDE's (QtCreator/MSVC)
- inkscape_source_group("${sources}")
+ # works fine without having the includes
+ # listed is helpful for IDE's (QtCreator/MSVC)
+ inkscape_source_group("${sources}")
endmacro()
@@ -44,88 +44,88 @@ set_property(GLOBAL PROPERTY inkscape_global_SRC "")
macro (add_inkscape_source
sources)
- foreach(_SRC ${ARGV})
- get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
- set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
- endforeach()
- unset(_SRC)
- unset(_ABS_SRC)
+ foreach(_SRC ${ARGV})
+ get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
+ set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
+ endforeach()
+ unset(_SRC)
+ unset(_ABS_SRC)
endmacro()
# A macro to append to the global source property
macro (add_inkscape_library
sources)
- foreach(_SRC ${ARGV})
- get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
- set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
- endforeach()
- unset(_SRC)
- unset(_ABS_SRC)
+ foreach(_SRC ${ARGV})
+ get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
+ set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
+ endforeach()
+ unset(_SRC)
+ unset(_ABS_SRC)
endmacro()
macro(INKSCAPE_PKG_CONFIG_FIND PREFIX MODNAME VERSION PATH_NAME PATH_SUFFIXE LIB_NAME)
- if(VERSION)
- pkg_check_modules(_${PREFIX} ${MODNAME}${VERSION})
- else(VERSION)
- pkg_check_modules(_${PREFIX} ${MODNAME})
- endif(VERSION)
-
- find_path(${PREFIX}_INCLUDE_DIR
- NAMES
- ${PATH_NAME}
- PATHS
- ${_${PREFIX}_INCLUDEDIR}
- /usr/include
- /usr/local/include
- /opt/local/include
- /sw/include
- $ENV{DEVLIBS_PATH}//include//
- PATH_SUFFIXES
- ${PATH_SUFFIXE}
+ if(VERSION)
+ pkg_check_modules(_${PREFIX} ${MODNAME}${VERSION})
+ else(VERSION)
+ pkg_check_modules(_${PREFIX} ${MODNAME})
+ endif(VERSION)
+
+ find_path(${PREFIX}_INCLUDE_DIR
+ NAMES
+ ${PATH_NAME}
+ PATHS
+ ${_${PREFIX}_INCLUDEDIR}
+ /usr/include
+ /usr/local/include
+ /opt/local/include
+ /sw/include
+ $ENV{DEVLIBS_PATH}//include//
+ PATH_SUFFIXES
+ ${PATH_SUFFIXE}
)
- find_library(${PREFIX}_LIBRARY
- NAMES
- ${LIB_NAME}
- PATHS
- ${_${PREFIX}_LIBDIR}
- /usr/lib
- /usr/local/lib
- /opt/local/lib
- /sw/lib
+ find_library(${PREFIX}_LIBRARY
+ NAMES
+ ${LIB_NAME}
+ PATHS
+ ${_${PREFIX}_LIBDIR}
+ /usr/lib
+ /usr/local/lib
+ /opt/local/lib
+ /sw/lib
)
- if (${PREFIX}_LIBRARY)
- set(${PREFIX}_FOUND TRUE)
- set(${PREFIX}_VERSION ${_${PREFIX}_VERSION})
- endif (${PREFIX}_LIBRARY)
+ if (${PREFIX}_LIBRARY)
+ set(${PREFIX}_FOUND TRUE)
+ set(${PREFIX}_VERSION ${_${PREFIX}_VERSION})
+ endif (${PREFIX}_LIBRARY)
- set(${PREFIX}_INCLUDE_DIRS
- ${${PREFIX}_INCLUDE_DIR}
+ set(${PREFIX}_INCLUDE_DIRS
+ ${${PREFIX}_INCLUDE_DIR}
)
- if (${PREFIX}_FOUND)
- set(${PREFIX}_LIBRARIES
- ${${PREFIX}_LIBRARIES}
- ${${PREFIX}_LIBRARY}
- )
- endif (${PREFIX}_FOUND)
-
- if (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES)
- set(${PREFIX}_FOUND TRUE)
- endif (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES)
-
- if (${PREFIX}_FOUND)
- if (NOT ${PREFIX}_FIND_QUIETLY)
- message(STATUS "Found ${MODNAME}: ${${PREFIX}_LIBRARIES}")
- endif (NOT ${PREFIX}_FIND_QUIETLY)
- else (${PREFIX}_FOUND)
- if (${PREFIX}_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find ${MODNAME}")
- endif (${PREFIX}_FIND_REQUIRED)
- endif (${PREFIX}_FOUND)
-
- # show the <PREFIX>_INCLUDE_DIRS and <PREFIX>_LIBRARIES variables only in the advanced view
- mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES)
+ if (${PREFIX}_FOUND)
+ set(${PREFIX}_LIBRARIES
+ ${${PREFIX}_LIBRARIES}
+ ${${PREFIX}_LIBRARY}
+ )
+ endif (${PREFIX}_FOUND)
+
+ if (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES)
+ set(${PREFIX}_FOUND TRUE)
+ endif (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES)
+
+ if (${PREFIX}_FOUND)
+ if (NOT ${PREFIX}_FIND_QUIETLY)
+ message(STATUS "Found ${MODNAME}: ${${PREFIX}_LIBRARIES}")
+ endif (NOT ${PREFIX}_FIND_QUIETLY)
+ else (${PREFIX}_FOUND)
+ if (${PREFIX}_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find ${MODNAME}")
+ endif (${PREFIX}_FIND_REQUIRED)
+ endif (${PREFIX}_FOUND)
+
+ # show the <PREFIX>_INCLUDE_DIRS and <PREFIX>_LIBRARIES variables only in the advanced view
+ mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES)
endmacro()
diff --git a/CMakeScripts/IncludeJava.cmake b/CMakeScripts/IncludeJava.cmake
deleted file mode 100644
index 1e20a4ca5..000000000
--- a/CMakeScripts/IncludeJava.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-# - include the src/javainc dir in the include path and the correct config path too
-
-
-INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/bind/javainc )
-
-IF (WIN32)
- INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/bind/javainc/win32 )
-ENDIF (WIN32)
-IF (UNIX)
- INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/bind/javainc/linux )
-ENDIF (UNIX)
-IF (SOLARIS)
- INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/bind/javainc/solaris )
-ENDIF (SOLARIS)
diff --git a/CMakeScripts/Modules/FindGettext.cmake b/CMakeScripts/Modules/FindGettext.cmake
new file mode 100644
index 000000000..753040b40
--- /dev/null
+++ b/CMakeScripts/Modules/FindGettext.cmake
@@ -0,0 +1,237 @@
+#.rst:
+# FindGettext
+# -----------
+#
+# Find GNU gettext tools
+#
+# This module looks for the GNU gettext tools. This module defines the
+# following values:
+#
+# ::
+#
+# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool.
+# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool.
+# GETTEXT_FOUND: True if gettext has been found.
+# GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8)
+#
+#
+#
+# Additionally it provides the following macros:
+# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN )
+#
+# ::
+#
+# This will create a target "translations" which will convert the
+# given input po files into the binary output mo file. If the
+# ALL option is used, the translations will also be created when
+# building the default target.
+#
+# GETTEXT_PROCESS_POT( <potfile> [ALL] [INSTALL_DESTINATION <destdir>]
+# LANGUAGES <lang1> <lang2> ... )
+#
+# ::
+#
+# Process the given pot file to mo files.
+# If INSTALL_DESTINATION is given then automatically install rules will be created,
+# the language subdirectory will be taken into account (by default use share/locale/).
+# If ALL is specified, the pot file is processed when building the all traget.
+# It creates a custom target "potfile".
+#
+# GETTEXT_PROCESS_PO_FILES( <lang> [ALL] [INSTALL_DESTINATION <dir>]
+# PO_FILES <po1> <po2> ... )
+#
+# ::
+#
+# Process the given po files to mo files for the given language.
+# If INSTALL_DESTINATION is given then automatically install rules will be created,
+# the language subdirectory will be taken into account (by default use share/locale/).
+# If ALL is specified, the po files are processed when building the all traget.
+# It creates a custom target "pofiles".
+
+#=============================================================================
+# Copyright 2007-2009 Kitware, Inc.
+# Copyright 2007 Alexander Neundorf <neundorf@kde.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+#=============================================================================
+# This file got changed for Inkscape's purposes to name the .mo files installed with
+# GETTEXT_PROCESS_PO_FILES ${CMAKE_PROJECT_NAME}.mo instead of <language>.mo
+
+find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)
+
+find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
+
+if(GETTEXT_MSGMERGE_EXECUTABLE)
+ execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version
+ OUTPUT_VARIABLE gettext_version
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (gettext_version MATCHES "^msgmerge \\(.*\\) [0-9]")
+ string(REGEX REPLACE "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*).*" "\\1" GETTEXT_VERSION_STRING "${gettext_version}")
+ endif()
+ unset(gettext_version)
+endif()
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gettext
+ REQUIRED_VARS GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE
+ VERSION_VAR GETTEXT_VERSION_STRING)
+
+include(CMakeParseArguments)
+
+function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name)
+ set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}")
+ get_property(currentCounter GLOBAL PROPERTY "${propertyName}")
+ if(NOT currentCounter)
+ set(currentCounter 1)
+ endif()
+ set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE)
+ math(EXPR currentCounter "${currentCounter} + 1")
+ set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} )
+endfunction()
+
+macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg)
+ # make it a real variable, so we can modify it here
+ set(_firstPoFile "${_firstPoFileArg}")
+
+ set(_gmoFiles)
+ get_filename_component(_potName ${_potFile} NAME)
+ string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
+ get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
+
+ set(_addToAll)
+ if(${_firstPoFile} STREQUAL "ALL")
+ set(_addToAll "ALL")
+ set(_firstPoFile)
+ endif()
+
+ foreach (_currentPoFile ${_firstPoFile} ${ARGN})
+ get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
+ get_filename_component(_abs_PATH ${_absFile} PATH)
+ get_filename_component(_lang ${_absFile} NAME_WE)
+ set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
+
+ add_custom_command(
+ OUTPUT ${_gmoFile}
+ COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile}
+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile}
+ DEPENDS ${_absPotFile} ${_absFile}
+ )
+
+ install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
+ set(_gmoFiles ${_gmoFiles} ${_gmoFile})
+
+ endforeach ()
+
+ if(NOT TARGET translations)
+ add_custom_target(translations)
+ endif()
+
+ _GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName)
+
+ add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles})
+
+ add_dependencies(translations ${uniqueTargetName})
+
+endmacro()
+
+
+function(GETTEXT_PROCESS_POT_FILE _potFile)
+ set(_gmoFiles)
+ set(_options ALL)
+ set(_oneValueArgs INSTALL_DESTINATION)
+ set(_multiValueArgs LANGUAGES)
+
+ CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
+
+ get_filename_component(_potName ${_potFile} NAME)
+ string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
+ get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
+
+ foreach (_lang ${_parsedArguments_LANGUAGES})
+ set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po")
+ set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo")
+
+ add_custom_command(
+ OUTPUT "${_poFile}"
+ COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile}
+ DEPENDS ${_absPotFile}
+ )
+
+ add_custom_command(
+ OUTPUT "${_gmoFile}"
+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile}
+ DEPENDS ${_absPotFile} ${_poFile}
+ )
+
+ if(_parsedArguments_INSTALL_DESTINATION)
+ install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
+ endif()
+ list(APPEND _gmoFiles ${_gmoFile})
+ endforeach ()
+
+ if(NOT TARGET potfiles)
+ add_custom_target(potfiles)
+ endif()
+
+ _GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName)
+
+ if(_parsedArguments_ALL)
+ add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
+ else()
+ add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
+ endif()
+
+ add_dependencies(potfiles ${uniqueTargetName})
+
+endfunction()
+
+
+function(GETTEXT_PROCESS_PO_FILES _lang)
+ set(_options ALL)
+ set(_oneValueArgs INSTALL_DESTINATION)
+ set(_multiValueArgs PO_FILES)
+ set(_gmoFiles)
+
+ CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
+
+ foreach(_current_PO_FILE ${_parsedArguments_PO_FILES})
+ get_filename_component(_name ${_current_PO_FILE} NAME)
+ string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name})
+ set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo)
+ add_custom_command(OUTPUT ${_gmoFile}
+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DEPENDS ${_current_PO_FILE}
+ )
+
+ if(_parsedArguments_INSTALL_DESTINATION)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${CMAKE_PROJECT_NAME}.mo)
+ endif()
+ list(APPEND _gmoFiles ${_gmoFile})
+ endforeach()
+
+
+ if(NOT TARGET pofiles)
+ add_custom_target(pofiles)
+ endif()
+
+ _GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName)
+
+ if(_parsedArguments_ALL)
+ add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
+ else()
+ add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
+ endif()
+
+ add_dependencies(pofiles ${uniqueTargetName})
+
+endfunction()
diff --git a/CMakeScripts/Modules/FindPopplerCairo.cmake b/CMakeScripts/Modules/FindPopplerCairo.cmake
index 2565e7bb2..bde884ec6 100644
--- a/CMakeScripts/Modules/FindPopplerCairo.cmake
+++ b/CMakeScripts/Modules/FindPopplerCairo.cmake
@@ -23,9 +23,9 @@ else (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS)
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
- INKSCAPE_PKG_CONFIG_FIND(POPPLER poppler >=0.5.9 poppler-config.h poppler poppler)
+ INKSCAPE_PKG_CONFIG_FIND(POPPLER poppler >=0.20.0 poppler-config.h poppler poppler)
if (POPPLER_FOUND)
- INKSCAPE_PKG_CONFIG_FIND(POPPLER_GLIB poppler-glib >=0.5.9 poppler/glib/poppler.h "" poppler-glib)
+ INKSCAPE_PKG_CONFIG_FIND(POPPLER_GLIB poppler-glib >=0.20.0 poppler/glib/poppler.h "" poppler-glib)
if (POPPLER_GLIB_FOUND)
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_GLIB_INCLUDE_DIRS})
list(APPEND POPPLER_LIBRARIES ${POPPLER_GLIB_LIBRARIES})
@@ -36,7 +36,7 @@ else (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS)
endif (CAIRO_SVG_FOUND)
endif (POPPLER_GLIB_FOUND)
if (ENABLE_POPPLER_CAIRO)
- INKSCAPE_PKG_CONFIG_FIND(POPPLER_CAIRO poppler-cairo >=0.5.9 cairo.h cairo cairo)
+ INKSCAPE_PKG_CONFIG_FIND(POPPLER_CAIRO poppler-cairo >=0.20.0 cairo.h cairo cairo)
if (POPPLER_GLIB_FOUND AND POPPLER_CAIRO_FOUND AND NOT CAIRO_SVG_FOUND)
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_CAIRO_INCLUDE_DIRS})
list(APPEND POPPLER_LIBRARIES ${POPPLER_CAIRO_LIBRARIES})
diff --git a/CMakeScripts/Modules/FindPotrace.cmake b/CMakeScripts/Modules/FindPotrace.cmake
new file mode 100644
index 000000000..9ab995278
--- /dev/null
+++ b/CMakeScripts/Modules/FindPotrace.cmake
@@ -0,0 +1,62 @@
+# POTRACE_FOUND - system has Potrace
+# POTRACE_INCLUDE_DIRS - the Potrace include directory
+# POTRACE_LIBRARIES - The libraries needed to use Potrace
+
+IF (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS)
+ # in cache already
+ SET(POTRACE_FOUND TRUE)
+ELSE (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS)
+ FIND_PATH (POTRACE_INCLUDE_DIR
+ NAMES
+ potracelib.h
+ PATHS
+ /usr/include
+ /usr/local/include
+ $ENV{DEVLIBS_PATH}/include
+ PATH_SUFFIXES
+ potrace
+ )
+
+ FIND_LIBRARY (POTRACE_LIBRARY
+ NAMES
+ potrace
+ libpotrace
+ PATHS
+ /usr/lib
+ /usr/local/lib
+ $ENV{DEVLIBS_PATH}/lib
+ )
+
+ if (POTRACE_LIBRARY)
+ set (POTRACE_FOUND TRUE)
+ endif (POTRACE_LIBRARY)
+
+ set (POTRACE_INCLUDE_DIRS
+ ${POTRACE_INCLUDE_DIR}
+ )
+
+ if (POTRACE_FOUND)
+ set(POTRACE_LIBRARIES
+ ${POTRACE_LIBRARIES}
+ ${POTRACE_LIBRARY}
+ )
+ endif (POTRACE_FOUND)
+
+ if (POTRACE_INCLUDE_DIRS AND POTRACE_LIBRARIES)
+ set(POTRACE_FOUND TRUE)
+ endif (POTRACE_INCLUDE_DIRS AND POTRACE_LIBRARIES)
+
+ if (POTRACE_FOUND)
+ if (NOT Potrace_FIND_QUIETLY)
+ message(STATUS "Found Potrace: ${POTRACE_LIBRARIES}")
+ endif (NOT Potrace_FIND_QUIETLY)
+ else (POTRACE_FOUND)
+ if (Potrace_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find potrace")
+ endif (Potrace_FIND_REQUIRED)
+ endif (POTRACE_FOUND)
+
+ # show the POTRACE_INCLUDE_DIRS and POTRACE_LIBRARIES variables only in the advanced view
+ MARK_AS_ADVANCED(POTRACE_INCLUDE_DIRS POTRACE_LIBRARIES)
+
+endif (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS)
diff --git a/CMakeScripts/Modules/FindSigC++.cmake b/CMakeScripts/Modules/FindSigC++.cmake
index ed0abc545..8046410b5 100644
--- a/CMakeScripts/Modules/FindSigC++.cmake
+++ b/CMakeScripts/Modules/FindSigC++.cmake
@@ -13,7 +13,6 @@
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
-
if (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS)
# in cache already
set(SIGC++_FOUND TRUE)
@@ -103,4 +102,25 @@ else (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS)
endif (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS)
+# Try to add -std=c++11 if needed - see:
+# https://bugs.launchpad.net/inkscape/+bug/1488079
+
+macro (sigcpp_compile extra_cppflags)
+ try_compile(SIGCPP_COMPILES_FINE "${CMAKE_BINARY_DIR}/sigcpp-bindir"
+ SOURCES "${CMAKE_SOURCE_DIR}/CMakeScripts/Modules/sigcpp_test.cpp"
+ COMPILE_DEFINITIONS ${_SIGC++_CFLAGS} ${extra_cppflags}
+ LINK_LIBRARIES ${SIGC++_LIBRARIES})
+endmacro()
+
+
+sigcpp_compile("")
+if (NOT "${SIGCPP_COMPILES_FINE}")
+ set (cppflag "-std=c++11")
+ sigcpp_compile("${cppflag}")
+ if ("${SIGCPP_COMPILES_FINE}")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cppflag}")
+ else()
+ message(FATAL_ERROR "Could not compile against SIGC++")
+ endif()
+endif()
diff --git a/CMakeScripts/Modules/sigcpp_test.cpp b/CMakeScripts/Modules/sigcpp_test.cpp
new file mode 100644
index 000000000..b4cf2c773
--- /dev/null
+++ b/CMakeScripts/Modules/sigcpp_test.cpp
@@ -0,0 +1,15 @@
+/*
+ * Building this using:
+
+ g++ `pkg-config --cflags sigc++-2.0` sigcpp_test.cpp
+
+ Results in an error.
+ * */
+#include <stddef.h>
+#include <string>
+#include <sigc++/signal.h>
+
+int main()
+{
+ return 0;
+}
diff --git a/CMakeScripts/Pod2man.cmake b/CMakeScripts/Pod2man.cmake
new file mode 100644
index 000000000..3189192de
--- /dev/null
+++ b/CMakeScripts/Pod2man.cmake
@@ -0,0 +1,54 @@
+# Use pod2man to generate manual pages from .pod files
+
+# Usage: pod2man(<podfile> <release-string> <man-section> <heading-center-text>)
+#
+# E.g.: pod2man("/path/to/file/mypod.pod" "1.2.3" 1 "My Manual Pages")
+
+find_program(POD2MAN pod2man)
+if(NOT POD2MAN)
+ message(STATUS "Could not find pod2man - man pages disabled")
+endif()
+
+macro(pod2man PODFILE_FULL RELEASE SECTION CENTER)
+ get_filename_component(PODFILE ${PODFILE_FULL} NAME)
+ string(REPLACE "." ";" PODFILE_LIST ${PODFILE})
+ list(GET PODFILE_LIST 0 NAME)
+ list(GET PODFILE_LIST 1 LANG)
+ string(TOUPPER ${NAME} NAME_UPCASE)
+ if(${LANG} STREQUAL "pod")
+ set(LANG "")
+ endif()
+
+ if(NOT EXISTS ${PODFILE_FULL})
+ message(FATAL ERROR "Could not find pod file ${PODFILE_FULL} to generate man page")
+ endif(NOT EXISTS ${PODFILE_FULL})
+
+ if(POD2MAN)
+ if(LANG)
+ set(MANPAGE_TARGET "man-${NAME}-${LANG}")
+ set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.tmp")
+ set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.${SECTION}")
+ else()
+ set(MANPAGE_TARGET "man-${NAME}")
+ set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.tmp")
+ set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${SECTION}")
+ endif()
+ add_custom_command(
+ OUTPUT ${MANFILE_TEMP}
+ COMMAND ${POD2MAN} --utf8 --section="${SECTION}" --center="${CENTER}"
+ --release="${RELEASE}" --name="${NAME_UPCASE}" "${PODFILE_FULL}" "${MANFILE_TEMP}"
+ )
+ add_custom_command(
+ OUTPUT ${MANFILE_FULL}
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/fix-roff-punct "${MANFILE_TEMP}" > ${MANFILE_FULL}
+ DEPENDS ${MANFILE_TEMP}
+ )
+ add_custom_target(${MANPAGE_TARGET} ALL
+ DEPENDS ${MANFILE_FULL}
+ )
+ install(
+ FILES ${MANFILE_FULL}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/man/man${SECTION}
+ )
+ endif()
+endmacro(pod2man PODFILE NAME SECTION CENTER)
diff --git a/CMakeScripts/UseGlibMarshal.cmake b/CMakeScripts/UseGlibMarshal.cmake
index c9481a4f6..8fabcaa38 100644
--- a/CMakeScripts/UseGlibMarshal.cmake
+++ b/CMakeScripts/UseGlibMarshal.cmake
@@ -9,32 +9,32 @@
# GLIB_MARSHAL_OUTPUT_CPP - Result of Generation
# GLIB_MARSHAL_OUTPUT_LOCATION - Where we are putting the Output
-FIND_PROGRAM(GLIB_MARSHAL_EXECUTABLE NAMES glib-genmarshal PATHS /usr/local/bin )
+find_program(GLIB_MARSHAL_EXECUTABLE NAMES glib-genmarshal PATHS /usr/local/bin )
-MACRO(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOCATION)
- IF(GLIB_MARSHAL_EXECUTABLE)
- SET(GLIB_MARSHAL_OUTPUT_EXTRA_LINE "#include \"${GLIB_MARSHAL_FILE}.h\" \n" )
+macro(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOCATION)
+ if(GLIB_MARSHAL_EXECUTABLE)
+ set(GLIB_MARSHAL_OUTPUT_EXTRA_LINE "#include \"${GLIB_MARSHAL_FILE}.h\" \n" )
- MESSAGE(STATUS "Generating header and sourcefiles from ${GLIB_MARSHAL_FILE}.list (Glib-Marshal)")
- EXECUTE_PROCESS(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --header ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list
- OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_HEADER )
- EXECUTE_PROCESS(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list
- OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP )
+ message(STATUS "Generating header and sourcefiles from ${GLIB_MARSHAL_FILE}.list (Glib-Marshal)")
+ execute_process(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --header ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list
+ OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_HEADER )
+ execute_process(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list
+ OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP )
# check whether the generated file is the same as the existing one
- IF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h)
- FILE(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD)
- ELSE()
- SET(GLIB_MARSHAL_HEADER_OLD "")
- ENDIF()
- IF(NOT GLIB_MARSHAL_HEADER_OLD STREQUAL GLIB_MARSHAL_OUTPUT_HEADER)
- MESSAGE(STATUS "${GLIB_MARSHAL_FILE}.h changed; overwriting")
- FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}")
- FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}")
- FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}")
- ELSE()
- MESSAGE(STATUS "${GLIB_MARSHAL_FILE}.h unchanged")
- ENDIF()
- ENDIF()
-ENDMACRO()
+ if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h)
+ file(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD)
+ else()
+ set(GLIB_MARSHAL_HEADER_OLD "")
+ endif()
+ if(NOT GLIB_MARSHAL_HEADER_OLD STREQUAL GLIB_MARSHAL_OUTPUT_HEADER)
+ message(STATUS "${GLIB_MARSHAL_FILE}.h changed; overwriting")
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}")
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}")
+ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}")
+ else()
+ message(STATUS "${GLIB_MARSHAL_FILE}.h unchanged")
+ endif()
+ endif()
+endmacro()
diff --git a/CMakeScripts/UsePkgConfig.cmake b/CMakeScripts/UsePkgConfig.cmake
index 2de721238..86c2425f7 100644
--- a/CMakeScripts/UsePkgConfig.cmake
+++ b/CMakeScripts/UsePkgConfig.cmake
@@ -23,97 +23,81 @@
# Calling PKGCONFIG_DEFINITION will fill the definition (e.g -D_REENTRANT) into the argument,
# e.g. PKGCONFIG_DEFINITION(libart-2.0 LIBART_DEFINITION)
-FIND_PROGRAM(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/local/bin )
-
-MACRO(STRIP_NEWLINES _string_var)
- STRING(REGEX REPLACE "[\n\r]+" "" ${_string_var} ${${_string_var}})
-ENDMACRO(STRIP_NEWLINES _string_var)
-
-MACRO(PKGCONFIG_FOUND _package _found)
- # reset the variable at the beginning
- SET(${_found})
-
-# if pkg-config has been found
- IF(PKGCONFIG_EXECUTABLE)
-
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --print-errors --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+find_program(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/local/bin )
+
+macro(STRIP_NEWLINES _string_var)
+ string(REGEX REPLACE "[\n\r]+" "" ${_string_var} ${${_string_var}})
+endmacro(STRIP_NEWLINES _string_var)
+
+macro(PKGCONFIG_FOUND _package _found)
+ # reset the variable at the beginning
+ set(${_found})
+
+ # if pkg-config has been found
+ if(PKGCONFIG_EXECUTABLE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --print-errors --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+ if(${_pkgconfigDevNull})
+ message(STATUS "${_pkgconfigDevNull}")
+ endif(${_pkgconfigDevNull})
- IF(${_pkgconfigDevNull})
- MESSAGE(STATUS "${_pkgconfigDevNull}")
- ENDIF(${_pkgconfigDevNull})
-
- IF(NOT _return_VALUE)
- SET(${_found} "TRUE")
- ENDIF(NOT _return_VALUE)
- ENDIF(PKGCONFIG_EXECUTABLE)
-
-ENDMACRO(PKGCONFIG_FOUND _found)
-
-MACRO(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags)
-# reset the variables at the beginning
- SET(${_include_DIR})
- SET(${_link_DIR})
- SET(${_link_FLAGS})
- SET(${_cflags})
-
- # if pkg-config has been found
- IF(PKGCONFIG_EXECUTABLE)
-
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+ if(NOT _return_VALUE)
+ set(${_found} "TRUE")
+ endif(NOT _return_VALUE)
+ endif(PKGCONFIG_EXECUTABLE)
+endmacro(PKGCONFIG_FOUND _found)
+
+macro(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags)
+ # reset the variables at the beginning
+ set(${_include_DIR})
+ set(${_link_DIR})
+ set(${_link_FLAGS})
+ set(${_cflags})
+
+ # if pkg-config has been found
+ if(PKGCONFIG_EXECUTABLE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
# and if the package of interest also exists for pkg-config, then get the information
- IF(NOT _return_VALUE)
-
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir OUTPUT_VARIABLE ${_include_DIR} )
-
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir OUTPUT_VARIABLE ${_link_DIR} )
-
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs OUTPUT_VARIABLE ${_link_FLAGS} )
-
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags OUTPUT_VARIABLE ${_cflags} )
-
- STRIP_NEWLINES(${_cflags})
-
- ENDIF(NOT _return_VALUE)
-
- ENDIF(PKGCONFIG_EXECUTABLE)
-
-ENDMACRO(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags)
-
-MACRO(PKGCONFIG_VERSION _package _version)
-# reset the variables at the beginning
- SET(${_version})
-
-# if pkg-config has been found
- IF(PKGCONFIG_EXECUTABLE)
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
-
-# and if the package of interest also exists for pkg-config, then get the information
- IF(NOT _return_VALUE)
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --modversion OUTPUT_VARIABLE ${_version} )
- ENDIF(NOT _return_VALUE)
-
- ENDIF(PKGCONFIG_EXECUTABLE)
-
-ENDMACRO(PKGCONFIG_VERSION _package _version)
-
-MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE)
-
-MACRO(PKGCONFIG_DEFINITION _package _definition)
-# reset the variables at the beginning
- SET(${_definition})
-
-# if pkg-config has been found
- IF(PKGCONFIG_EXECUTABLE)
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
-
-# and if the package of interest also exists for pkg-config, then get the information
- IF(NOT _return_VALUE)
- EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --cflags-only-other OUTPUT_VARIABLE ${_definition} )
- ENDIF(NOT _return_VALUE)
-
- ENDIF(PKGCONFIG_EXECUTABLE)
-
-ENDMACRO(PKGCONFIG_DEFINITION _package _definition)
-
-MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE)
+ if(NOT _return_VALUE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir OUTPUT_VARIABLE ${_include_DIR} )
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir OUTPUT_VARIABLE ${_link_DIR} )
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs OUTPUT_VARIABLE ${_link_FLAGS} )
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags OUTPUT_VARIABLE ${_cflags} )
+ strip_newlines(${_cflags})
+ endif(NOT _return_VALUE)
+ endif(PKGCONFIG_EXECUTABLE)
+endmacro(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags)
+
+macro(PKGCONFIG_VERSION _package _version)
+ # reset the variables at the beginning
+ set(${_version})
+
+ # if pkg-config has been found
+ if(PKGCONFIG_EXECUTABLE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+
+ # and if the package of interest also exists for pkg-config, then get the information
+ if(NOT _return_VALUE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --modversion OUTPUT_VARIABLE ${_version} )
+ endif(NOT _return_VALUE)
+ endif(PKGCONFIG_EXECUTABLE)
+endmacro(PKGCONFIG_VERSION _package _version)
+
+mark_as_advanced(PKGCONFIG_EXECUTABLE)
+
+macro(PKGCONFIG_DEFINITION _package _definition)
+ # reset the variables at the beginning
+ set(${_definition})
+
+ # if pkg-config has been found
+ if(PKGCONFIG_EXECUTABLE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+
+ # and if the package of interest also exists for pkg-config, then get the information
+ if(NOT _return_VALUE)
+ exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --cflags-only-other OUTPUT_VARIABLE ${_definition} )
+ endif(NOT _return_VALUE)
+ endif(PKGCONFIG_EXECUTABLE)
+endmacro(PKGCONFIG_DEFINITION _package _definition)
+
+mark_as_advanced(PKGCONFIG_EXECUTABLE)
diff --git a/CMakeScripts/inkscape-version.cmake b/CMakeScripts/inkscape-version.cmake
index a72946ac5..cf6cadbc4 100644
--- a/CMakeScripts/inkscape-version.cmake
+++ b/CMakeScripts/inkscape-version.cmake
@@ -10,25 +10,25 @@
set(INKSCAPE_REVISION "unknown")
if(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/)
- execute_process(COMMAND
- bzr revno --tree ${INKSCAPE_SOURCE_DIR}
- OUTPUT_VARIABLE INKSCAPE_REVISION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND
+ bzr revno --tree ${INKSCAPE_SOURCE_DIR}
+ OUTPUT_VARIABLE INKSCAPE_REVISION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
file(WRITE
- ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt
- # unlike autoconf, include config.h
- "#ifdef HAVE_CONFIG_H\n"
- "# include <config.h>\n"
- "#endif\n"
- "\n"
- "namespace Inkscape {\n"
- " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n"
- "}\n")
+ ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt
+ # unlike autoconf, include config.h
+ "#ifdef HAVE_CONFIG_H\n"
+ "# include <config.h>\n"
+ "#endif\n"
+ "\n"
+ "namespace Inkscape {\n"
+ " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n"
+ "}\n")
# Copy the file to the final header only if the version changes
# and avoid needless rebuilds
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt
- ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp)
+ ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt
+ ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp)