From 5557c73f06d4c2b3640a93cb3dd2d0eba72ed2ca Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 02:32:07 -0400 Subject: cmake: Don't depend on OpenSSL I'm not sure why this was in the cmake rules but it doesn't seem to be required for plain vanilla Inkscape builds. (bzr r14070.1.2) --- CMakeScripts/DefineDependsandFlags.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 12f0b5240..ffeab5808 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -227,9 +227,9 @@ if(WITH_GTKSPELL) set(WITH_GTKSPELL ${GTKSPELL_FOUND}) endif() -find_package(OpenSSL) -list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) +#find_package(OpenSSL) +#list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) +#list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) find_package(LibXslt REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${LIBXSLT_INCLUDE_DIR}) -- cgit v1.2.3 From 7969df944138a5524d40be8e9030b90629f6ec18 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 19:25:17 -0400 Subject: cmake: Add missing dependencies for libgomp and libjpg (bzr r14070.1.5) --- CMakeScripts/DefineDependsandFlags.cmake | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index ffeab5808..637e48d6a 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -3,8 +3,7 @@ set(INKSCAPE_LIBS "") set(INKSCAPE_INCS "") set(INKSCAPE_INCS_SYS "") -list(APPEND INKSCAPE_INCS - ${PROJECT_SOURCE_DIR} +list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src # generated includes @@ -33,6 +32,7 @@ else() list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() +list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME if(WITH_GNOME_VFS) @@ -127,6 +127,14 @@ if(WITH_LIBWPG) 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(PNG REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${PNG_LIBRARY}) -- cgit v1.2.3 From 3c185d781ac7a7031397c6651baf046d900efc3a Mon Sep 17 00:00:00 2001 From: su_v Date: Fri, 1 May 2015 05:52:17 +0200 Subject: cmake: Fix osx-related issues with cmake-build Add new helper function to retrive pkg-config variables in Cmake; use paths defined as environment variables for builds on OS X (useful if MacPorts is not installed into default prefix); check backend of GTK2 on OS X in main cmake file (x11|quartz). (bzr r14080) --- CMakeScripts/DefineDependsandFlags.cmake | 30 +++++++++++++++++++++++++++++- CMakeScripts/HelperFunctions.cmake | 19 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 CMakeScripts/HelperFunctions.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 637e48d6a..b0e5aa8b2 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -24,6 +24,31 @@ if (WIN32) 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 + # TODO: verify whether linking the next two libs explicitly is always + # required, or only if MacPorts is installed in custom prefix: + list(APPEND INKSCAPE_LIBS "-liconv") # FIXME + list(APPEND INKSCAPE_LIBS "-lintl") # FIXME + endif() + list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME + # GTK+ backend + if(${GTK+_2.0_TARGET} MATCHES "x11") + # only link X11 if using X11 backend of GTK2 + list(APPEND INKSCAPE_LIBS "-lX11") # FIXME + elseif(${GTK+_2.0_TARGET} MATCHES "quartz") + # TODO: gtk-mac-integration (currently only useful for osxmenu branch) + # 1) add configure option (ON/OFF) for gtk-mac-integration + # 2) add checks (GTK+ backend must be "quartz") + # 3) link relevant lib(s) + endif() else() list(APPEND INKSCAPE_LIBS "-ldl") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME @@ -32,7 +57,10 @@ else() list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() -list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME +if(NOT APPLE) + # FIXME: should depend on availability of OpenMP support (see below) (?) + list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME +endif() list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME if(WITH_GNOME_VFS) diff --git a/CMakeScripts/HelperFunctions.cmake b/CMakeScripts/HelperFunctions.cmake new file mode 100644 index 000000000..0e6fff51a --- /dev/null +++ b/CMakeScripts/HelperFunctions.cmake @@ -0,0 +1,19 @@ +# pkg_check_variable() - a function to retrieve pkg-config variables in CMake +# +# source: http://bloerg.net/2015/03/06/pkg-config-variables-in-cmake.html + +find_package(PkgConfig REQUIRED) + +function(pkg_check_variable _pkg _name) + string(TOUPPER ${_pkg} _pkg_upper) + string(TOUPPER ${_name} _name_upper) + string(REPLACE "-" "_" _pkg_upper ${_pkg_upper}) + string(REPLACE "-" "_" _name_upper ${_name_upper}) + set(_output_name "${_pkg_upper}_${_name_upper}") + + execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg} + OUTPUT_VARIABLE _pkg_result + OUTPUT_STRIP_TRAILING_WHITESPACE) + + set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable ${_name} of ${_pkg}") +endfunction() -- cgit v1.2.3 From 046602640873c37516516c9903079d6c5528bd05 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 2 May 2015 02:05:29 -0400 Subject: cmake: Fix WPG 0.2 build variables WPG 0.1 appears to have been tested and made to work, but a parallel set of code checks WPG 0.2 and the variable names are all wrong (looks like they didn't get properly updated from the original automake scripts). The detection fails entirely on Ubuntu 14.04 and probably other recent distros. With this change, cmake now builds inkscape properly for me. (bzr r14087) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++-- CMakeScripts/Modules/FindLibWPG.cmake | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index b0e5aa8b2..321f0982c 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -145,8 +145,8 @@ add_definitions(${POPPLER_DEFINITIONS}) if(WITH_LIBWPG) find_package(LibWPG) if(LIBWPG_FOUND) - set(WITH_LIBWPG01 ${LIBWPG01_FOUND}) - set(WITH_LIBWPG02 ${LIBWPG02_FOUND}) + set(WITH_LIBWPG-0.1 ${LIBWPG-0.1_FOUND}) + set(WITH_LIBWPG-0.2 ${LIBWPG-0.2_FOUND}) list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) add_definitions(${LIBWPG_DEFINITIONS}) diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 4f173da2d..136267070 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -38,17 +38,17 @@ else (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.2 libwpg-0.2 0 libwpg/libwpg.h libwpg-0.2 wpg-0.2) INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) - if (LIBWPG02_FOUND) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG02_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG02_LIBRARIES}) + if (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.2_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.2_LIBRARIES}) list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) list(APPEND LIBWPG_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) set(LIBWPG02_FOUND TRUE) - endif (LIBWPG02_FOUND) - if (LIBWPG01_FOUND OR LIBWPG_02_FOUND) + endif (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + if (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) set(LIBWPG_FOUND TRUE) - endif (LIBWPG01_FOUND OR LIBWPG_02_FOUND) + endif (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) endif (PKG_CONFIG_FOUND) endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) -- cgit v1.2.3 From bd9cc9950b2cb841a3d0f92609f38a907133d31e Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 2 May 2015 10:35:25 +0200 Subject: cmake: fix build with poppler >= 0.29 (bzr r14089) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 321f0982c..697f2166d 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -122,6 +122,10 @@ if(ENABLE_POPPLER) 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) -- cgit v1.2.3 From d043dd57f00f0fc4a170eb48fce1bf616c81c753 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 2 May 2015 12:03:29 +0200 Subject: cmake: enable Image Magick++ support for bitmap effects (bzr r14090) --- CMakeScripts/DefineDependsandFlags.cmake | 1 + 1 file changed, 1 insertion(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 697f2166d..d9c0977e1 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -300,6 +300,7 @@ find_package(ImageMagick COMPONENTS MagickCore Magick++) if(ImageMagick_FOUND) list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) + set(WITH_IMAGE_MAGICK ON) # enable 'Extensions > Raster' endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) -- cgit v1.2.3 From daa49de4de9aecd929913de4677bccd105bbf628 Mon Sep 17 00:00:00 2001 From: houz Date: Sat, 2 May 2015 12:39:03 +0200 Subject: cmake: fix failing checks due to missing include and library paths (e.g. for gtk_window_fullscreen) (bzr r14091) --- CMakeScripts/ConfigChecks.cmake | 3 +++ CMakeScripts/DefineDependsandFlags.cmake | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 5f76e01e9..905465448 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -9,6 +9,9 @@ include(CheckStructHasMember) # usage: CHECK_FUNCTION_EXISTS ( ) # usage: CHECK_STRUCT_HAS_MEMBER (
) +set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${INKSCAPE_LIBS}) +set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${INKSCAPE_INCS_SYS}) + CHECK_INCLUDE_FILES(boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP) CHECK_INCLUDE_FILES(cairo-pdf.h HAVE_CAIRO_PDF) CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index d9c0977e1..27802ad92 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -311,7 +311,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) include_directories(${INKSCAPE_INCS}) include_directories(SYSTEM ${INKSCAPE_INCS_SYS}) +include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) + unset(INKSCAPE_INCS) unset(INKSCAPE_INCS_SYS) - -include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) -- cgit v1.2.3 From 4734a666fc4fa6eb3bacb8d2243a2cfb603a08d8 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 2 May 2015 16:23:11 +0200 Subject: cmake: add support for librevenge-based input formats (WPG, Visio, CDR) (bzr r14093) --- CMakeScripts/DefineDependsandFlags.cmake | 36 ++++++++++++++++- CMakeScripts/Modules/FindLibCDR.cmake | 56 ++++++++++++++++++++++++++ CMakeScripts/Modules/FindLibRevenge.cmake | 41 +++++++++++++++++++ CMakeScripts/Modules/FindLibVisio.cmake | 56 ++++++++++++++++++++++++++ CMakeScripts/Modules/FindLibWPG.cmake | 65 ++++++++++++++++++------------- 5 files changed, 226 insertions(+), 28 deletions(-) create mode 100644 CMakeScripts/Modules/FindLibCDR.cmake create mode 100644 CMakeScripts/Modules/FindLibRevenge.cmake create mode 100644 CMakeScripts/Modules/FindLibVisio.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 27802ad92..e96609d34 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -149,8 +149,9 @@ add_definitions(${POPPLER_DEFINITIONS}) if(WITH_LIBWPG) find_package(LibWPG) if(LIBWPG_FOUND) - set(WITH_LIBWPG-0.1 ${LIBWPG-0.1_FOUND}) - set(WITH_LIBWPG-0.2 ${LIBWPG-0.2_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}) @@ -159,6 +160,32 @@ if(WITH_LIBWPG) 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() +endif() + +if(WITH_LIBCDR) + find_package(LibCDR) + if(LIBCDR_FOUND) + set(WITH_LIBCDR00 ${LIBVISIO-0.0_FOUND}) + set(WITH_LIBCDR01 ${LIBVISIO-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}) @@ -301,6 +328,11 @@ if(ImageMagick_FOUND) list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) set(WITH_IMAGE_MAGICK ON) # enable 'Extensions > Raster' + # 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?) endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) diff --git a/CMakeScripts/Modules/FindLibCDR.cmake b/CMakeScripts/Modules/FindLibCDR.cmake new file mode 100644 index 000000000..57a04807e --- /dev/null +++ b/CMakeScripts/Modules/FindLibCDR.cmake @@ -0,0 +1,56 @@ +# - Try to find LibCDR +# Once done this will define +# +# LIBCDR_FOUND - system has LibCDR +# LIBCDR_INCLUDE_DIRS - the LibCDR include directory +# LIBCDR_LIBRARIES - Link these to use LibCDR +# LIBCDR_DEFINITIONS - Compiler switches required for using LibCDR +# +# Copyright (c) 2008 Joshua L. Blocher +# Copyright (c) 2015 su_v +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) + +if (LIBCDR_LIBRARIES AND LIBCDR_INCLUDE_DIRS) + # in cache already + set(LIBCDR_FOUND TRUE) +else (LIBCDR_LIBRARIES AND LIBCDR_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBCDR-0.1 libcdr-0.1 0 libcdr/libcdr.h libcdr-0.1 cdr-0.1) + if (LIBCDR-0.1_FOUND) + find_package(LibRevenge) + if (LIBREVENGE_FOUND) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBCDR-0.1_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBCDR-0.1_LIBRARIES}) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBREVENGE_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBREVENGE_LIBRARIES}) + set(LIBCDR01_FOUND TRUE) + endif (LIBREVENGE_FOUND) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBCDR-0.0 libcdr-0.0 0 libcdr/libcdr.h libcdr-0.0 cdr-0.0) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) + if (LIBCDR-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBCDR-0.0_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBCDR-0.0_LIBRARIES}) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) + set(LIBCDR00_FOUND TRUE) + endif (LIBCDR-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + endif (LIBCDR-0.1_FOUND) + if (LIBCDR-0.1_FOUND OR LIBCDR-0.0_FOUND) + set(LIBCDR_FOUND TRUE) + endif (LIBCDR-0.1_FOUND OR LIBCDR-0.0_FOUND) + endif (PKG_CONFIG_FOUND) +endif (LIBCDR_LIBRARIES AND LIBCDR_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibRevenge.cmake b/CMakeScripts/Modules/FindLibRevenge.cmake new file mode 100644 index 000000000..90d1ecf06 --- /dev/null +++ b/CMakeScripts/Modules/FindLibRevenge.cmake @@ -0,0 +1,41 @@ +# - Try to find LibRevenge +# Once done this will define +# +# LIBREVENGE_FOUND - system has LibRevenge +# LIBREVENGE_INCLUDE_DIRS - the LibRevenge include directory +# LIBREVENGE_LIBRARIES - Link these to use LibRevenge +# LIBREVENGE_DEFINITIONS - Compiler switches required for using LibRevenge +# +# Copyright (c) 2008 Joshua L. Blocher +# Copyright (c) 2015 su_v +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) + +if (LIBREVENGE_LIBRARIES AND LIBREVENGE_INCLUDE_DIRS) + # in cache already + set(LIBREVENGE_FOUND TRUE) +else (LIBREVENGE_LIBRARIES AND LIBREVENGE_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBREVENGE-0.0 librevenge-0.0 0 librevenge/librevenge.h librevenge-0.0 revenge-0.0) + INKSCAPE_PKG_CONFIG_FIND(LIBREVENGE-STREAM-0.0 librevenge-stream-0.0 0 librevenge-0.0/librevenge-stream/librevenge-stream.h librevenge-stream-0.0 revenge-stream-0.0) + if (LIBREVENGE-0.0_FOUND AND LIBREVENGE-STREAM-0.0_FOUND) + list(APPEND LIBREVENGE_INCLUDE_DIRS ${LIBREVENGE-0.0_INCLUDE_DIRS}) + list(APPEND LIBREVENGE_LIBRARIES ${LIBREVENGE-0.0_LIBRARIES}) + list(APPEND LIBREVENGE_INCLUDE_DIRS ${LIBREVENGE-STREAM-0.0_INCLUDE_DIRS}) + list(APPEND LIBREVENGE_LIBRARIES ${LIBREVENGE-STREAM-0.0_LIBRARIES}) + set(LIBREVENGE00_FOUND TRUE) + endif (LIBREVENGE-0.0_FOUND AND LIBREVENGE-STREAM-0.0_FOUND) + if (LIBREVENGE-0.0_FOUND) + set(LIBREVENGE_FOUND TRUE) + endif (LIBREVENGE-0.0_FOUND) + endif (PKG_CONFIG_FOUND) +endif (LIBREVENGE_LIBRARIES AND LIBREVENGE_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibVisio.cmake b/CMakeScripts/Modules/FindLibVisio.cmake new file mode 100644 index 000000000..a4e88aeaa --- /dev/null +++ b/CMakeScripts/Modules/FindLibVisio.cmake @@ -0,0 +1,56 @@ +# - Try to find LibVisio +# Once done this will define +# +# LIBVISIO_FOUND - system has LibVisio +# LIBVISIO_INCLUDE_DIRS - the LibVisio include directory +# LIBVISIO_LIBRARIES - Link these to use LibVisio +# LIBVISIO_DEFINITIONS - Compiler switches required for using LibVisio +# +# Copyright (c) 2008 Joshua L. Blocher +# Copyright (c) 2015 su_v +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) + +if (LIBVISIO_LIBRARIES AND LIBVISIO_INCLUDE_DIRS) + # in cache already + set(LIBVISIO_FOUND TRUE) +else (LIBVISIO_LIBRARIES AND LIBVISIO_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBVISIO-0.1 libvisio-0.1 0 libvisio/libvisio.h libvisio-0.1 visio-0.1) + if (LIBVISIO-0.1_FOUND) + find_package(LibRevenge) + if (LIBREVENGE_FOUND) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBVISIO-0.1_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBVISIO-0.1_LIBRARIES}) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBREVENGE_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBREVENGE_LIBRARIES}) + set(LIBVISIO01_FOUND TRUE) + endif (LIBREVENGE_FOUND) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBVISIO-0.0 libvisio-0.0 0 libvisio/libvisio.h libvisio-0.0 visio-0.0) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) + if (LIBVISIO-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBVISIO-0.0_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBVISIO-0.0_LIBRARIES}) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) + set(LIBVISIO00_FOUND TRUE) + endif (LIBVISIO-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + endif (LIBVISIO-0.1_FOUND) + if (LIBVISIO-0.1_FOUND OR LIBVISIO-0.0_FOUND) + set(LIBVISIO_FOUND TRUE) + endif (LIBVISIO-0.1_FOUND OR LIBVISIO-0.0_FOUND) + endif (PKG_CONFIG_FOUND) +endif (LIBVISIO_LIBRARIES AND LIBVISIO_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 136267070..0eaf8f102 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -23,32 +23,45 @@ else (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig) if (PKG_CONFIG_FOUND) - INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.1 libwpg-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-0.1) - INKSCAPE_PKG_CONFIG_FIND(LIBWPG-STREAM-0.1 libwpg-stream-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-stream-0.1) - INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.8 libwpd-0.8 0 libwpd/libwpd.h libwpd-0.8 wpd-0.8) - if (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.1_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.1_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-STREAM-0.1_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG-STREAM-0.1_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.8_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.8_LIBRARIES}) - set(LIBWPG01_FOUND TRUE) - endif (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) - INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.2 libwpg-0.2 0 libwpg/libwpg.h libwpg-0.2 wpg-0.2) - INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) - INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) - if (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.2_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.2_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) - set(LIBWPG02_FOUND TRUE) - endif (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) - if (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.3 libwpg-0.3 0 libwpg/libwpg.h libwpg-0.3 wpg-0.3) + if (LIBWPG-0.3_FOUND) + find_package(LibRevenge) + if (LIBREVENGE_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.3_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.3_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBREVENGE-0.0_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBREVENGE-0.0_LIBRARIES}) + set(LIBWPG03_FOUND TRUE) + endif (LIBREVENGE_FOUND) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.2 libwpg-0.2 0 libwpg/libwpg.h libwpg-0.2 wpg-0.2) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) + if (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.2_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.2_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) + set(LIBWPG02_FOUND TRUE) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.1 libwpg-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-0.1) + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-STREAM-0.1 libwpg-stream-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-stream-0.1) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.8 libwpd-0.8 0 libwpd/libwpd.h libwpd-0.8 wpd-0.8) + if (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.1_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.1_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-STREAM-0.1_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-STREAM-0.1_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.8_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.8_LIBRARIES}) + set(LIBWPG01_FOUND TRUE) + endif (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) + endif (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + endif (LIBWPG-0.3_FOUND) + if (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND OR LIBWPG-0.3_FOUND) set(LIBWPG_FOUND TRUE) - endif (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) + endif (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND OR LIBWPG-0.3_FOUND) endif (PKG_CONFIG_FOUND) endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) -- cgit v1.2.3 From a3a21be8fe3eda83fb74a2392bd67c895e2ff08b Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sun, 3 May 2015 20:17:20 +0200 Subject: cmake: wpg-0.3 - fix librevenge paths (bzr r14097) --- CMakeScripts/Modules/FindLibWPG.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 0eaf8f102..ea241a570 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -29,8 +29,8 @@ else (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) if (LIBREVENGE_FOUND) list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.3_INCLUDE_DIRS}) list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.3_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBREVENGE-0.0_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBREVENGE-0.0_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBREVENGE_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBREVENGE_LIBRARIES}) set(LIBWPG03_FOUND TRUE) endif (LIBREVENGE_FOUND) else() -- cgit v1.2.3 From e5d2b25011292d4df0297939c30357ac23fac856 Mon Sep 17 00:00:00 2001 From: su_v Date: Sun, 3 May 2015 20:57:08 +0200 Subject: cmake: use cmake modules for iconv and inlt (bzr r14098) --- CMakeScripts/DefineDependsandFlags.cmake | 21 +++-- CMakeScripts/Modules/FindIconv.cmake | 60 +++++++++++++++ CMakeScripts/Modules/FindIntl.cmake | 127 +++++++++++++++++++++++++++++++ 3 files changed, 197 insertions(+), 11 deletions(-) create mode 100644 CMakeScripts/Modules/FindIconv.cmake create mode 100644 CMakeScripts/Modules/FindIntl.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index e96609d34..71bb042bc 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -19,7 +19,6 @@ 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 "-lintl.dll") # 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 @@ -31,23 +30,13 @@ elseif(APPLE) # 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 - # TODO: verify whether linking the next two libs explicitly is always - # required, or only if MacPorts is installed in custom prefix: - list(APPEND INKSCAPE_LIBS "-liconv") # FIXME - list(APPEND INKSCAPE_LIBS "-lintl") # FIXME endif() list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME - # GTK+ backend if(${GTK+_2.0_TARGET} MATCHES "x11") # only link X11 if using X11 backend of GTK2 list(APPEND INKSCAPE_LIBS "-lX11") # FIXME - elseif(${GTK+_2.0_TARGET} MATCHES "quartz") - # TODO: gtk-mac-integration (currently only useful for osxmenu branch) - # 1) add configure option (ON/OFF) for gtk-mac-integration - # 2) add checks (GTK+ backend must be "quartz") - # 3) link relevant lib(s) endif() else() list(APPEND INKSCAPE_LIBS "-ldl") # FIXME @@ -93,6 +82,11 @@ if(ENABLE_LCMS) endif() endif() +find_package(Iconv REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${ICONV_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${ICONV_LIBRARIES}) +add_definitions(${ICONV_DEFINITIONS}) + find_package(BoehmGC REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) @@ -268,6 +262,11 @@ list(APPEND INKSCAPE_LIBS ) +find_package(Intl REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES}) +add_definitions(${Intl_DEFINITIONS}) + find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) diff --git a/CMakeScripts/Modules/FindIconv.cmake b/CMakeScripts/Modules/FindIconv.cmake new file mode 100644 index 000000000..338d17d05 --- /dev/null +++ b/CMakeScripts/Modules/FindIconv.cmake @@ -0,0 +1,60 @@ +# - Try to find Iconv +# Once done this will define +# +# ICONV_FOUND - system has Iconv +# ICONV_INCLUDE_DIR - the Iconv include directory +# ICONV_LIBRARIES - Link these to use Iconv +# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const +# +include(CheckCXXSourceCompiles) + +IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + # Already in cache, be silent + SET(ICONV_FIND_QUIETLY TRUE) +ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + +FIND_PATH(ICONV_INCLUDE_DIR iconv.h) + +FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c) + +IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + SET(ICONV_FOUND TRUE) +ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + +set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) +set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) +IF(ICONV_FOUND) + check_cxx_source_compiles(" + #include + int main(){ + iconv_t conv = 0; + const char* in = 0; + size_t ilen = 0; + char* out = 0; + size_t olen = 0; + iconv(conv, &in, &ilen, &out, &olen); + return 0; + } +" ICONV_SECOND_ARGUMENT_IS_CONST ) + IF(ICONV_SECOND_ARGUMENT_IS_CONST) + SET(ICONV_CONST "const") + ENDIF(ICONV_SECOND_ARGUMENT_IS_CONST) +ENDIF(ICONV_FOUND) +set(CMAKE_REQUIRED_INCLUDES) +set(CMAKE_REQUIRED_LIBRARIES) + +IF(ICONV_FOUND) + IF(NOT ICONV_FIND_QUIETLY) + MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}") + ENDIF(NOT ICONV_FIND_QUIETLY) +ELSE(ICONV_FOUND) + IF(Iconv_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find Iconv") + ENDIF(Iconv_FIND_REQUIRED) +ENDIF(ICONV_FOUND) + +MARK_AS_ADVANCED( + ICONV_INCLUDE_DIR + ICONV_LIBRARIES + ICONV_SECOND_ARGUMENT_IS_CONST +) diff --git a/CMakeScripts/Modules/FindIntl.cmake b/CMakeScripts/Modules/FindIntl.cmake new file mode 100644 index 000000000..e6c5f6d0c --- /dev/null +++ b/CMakeScripts/Modules/FindIntl.cmake @@ -0,0 +1,127 @@ +#.rst: +# FindIntl +# -------- +# +# Find the Gettext libintl headers and libraries. +# +# This module reports information about the Gettext libintl +# installation in several variables. General variables:: +# +# Intl_FOUND - true if the libintl headers and libraries were found +# Intl_INCLUDE_DIRS - the directory containing the libintl headers +# Intl_LIBRARIES - libintl libraries to be linked +# +# The following cache variables may also be set:: +# +# Intl_INCLUDE_DIR - the directory containing the libintl headers +# Intl_LIBRARY - the libintl library (if any) +# +# .. note:: +# On some platforms, such as Linux with GNU libc, the gettext +# functions are present in the C standard library and libintl +# is not required. ``Intl_LIBRARIES`` will be empty in this +# case. +# +# .. note:: +# If you wish to use the Gettext tools (``msgmerge``, +# ``msgfmt``, etc.), use :module:`FindGettext`. + + +# Written by Roger Leigh + +#============================================================================= +# Copyright 2014 Roger Leigh +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. + +# CMake - Cross Platform Makefile Generator +# Copyright 2000-2015 Kitware, Inc. +# Copyright 2000-2011 Insight Software Consortium +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the names of Kitware, Inc., the Insight Software Consortium, +# nor the names of their contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# ------------------------------------------------------------------------------ +# +# The above copyright and license notice applies to distributions of +# CMake in source and binary form. Some source files contain additional +# notices of original copyright by their contributors; see each source +# for details. Third-party software packages supplied with CMake under +# compatible licenses provide their own copyright notices documented in +# corresponding subdirectories. +# +# ------------------------------------------------------------------------------ +# +# CMake was initially developed by Kitware with the following sponsorship: +# +# * National Library of Medicine at the National Institutes of Health +# as part of the Insight Segmentation and Registration Toolkit (ITK). +# +# * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel +# Visualization Initiative. +# +# * National Alliance for Medical Image Computing (NAMIC) is funded by the +# National Institutes of Health through the NIH Roadmap for Medical Research, +# Grant U54 EB005149. +# +# * Kitware, Inc. + +# 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.) + +# Find include directory +find_path(Intl_INCLUDE_DIR + NAMES "libintl.h" + DOC "libintl include directory") +mark_as_advanced(Intl_INCLUDE_DIR) + +# Find all Intl libraries +find_library(Intl_LIBRARY "intl" + DOC "libintl libraries (if not in the C library)") +mark_as_advanced(Intl_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Intl + FOUND_VAR Intl_FOUND + REQUIRED_VARS Intl_INCLUDE_DIR + FAIL_MESSAGE "Failed to find Gettext libintl") + +if(Intl_FOUND) + set(Intl_INCLUDE_DIRS "${Intl_INCLUDE_DIR}") + if(Intl_LIBRARY) + set(Intl_LIBRARIES "${Intl_LIBRARY}") + else() + unset(Intl_LIBRARIES) + endif() +endif() -- cgit v1.2.3 From fe043be9888e82f4d199099629824d7e62da3dfa Mon Sep 17 00:00:00 2001 From: su_v Date: Sun, 3 May 2015 22:30:56 +0200 Subject: cmake: move Intl check to 'Files we include' section Because the FindIntl module was only recently added to Cmake, I added a copy to Inkscape's Modules dir in r14098 but forgot to properly reflect this in CMakeScripts/DefineDependsandFlags.cmake. (bzr r14099) --- CMakeScripts/DefineDependsandFlags.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 71bb042bc..f7c371bae 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -87,6 +87,11 @@ list(APPEND INKSCAPE_INCS_SYS ${ICONV_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ICONV_LIBRARIES}) add_definitions(${ICONV_DEFINITIONS}) +find_package(Intl REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES}) +add_definitions(${Intl_DEFINITIONS}) + find_package(BoehmGC REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) @@ -262,11 +267,6 @@ list(APPEND INKSCAPE_LIBS ) -find_package(Intl REQUIRED) -list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS}) -list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES}) -add_definitions(${Intl_DEFINITIONS}) - find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) -- cgit v1.2.3 From 20f22e56999d2b90ec2b7a77149748b0c9740dc1 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 3 May 2015 16:05:14 -0700 Subject: Added base unit test source utilizing Google Test and corresponding CMake support. (bzr r14100) --- CMakeScripts/DefineDependsandFlags.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index f7c371bae..abad73a4d 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -213,6 +213,14 @@ if(WITH_DBUS) endif() endif() +if(WITH_GTEST) + if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}") + + else() + set(WITH_GTEST off) + endif() +endif() + # ---------------------------------------------------------------------------- # CMake's builtin # ---------------------------------------------------------------------------- -- cgit v1.2.3 From fb173e93270726a750d8928cc3adc540deb88267 Mon Sep 17 00:00:00 2001 From: su_v Date: Mon, 4 May 2015 03:04:21 +0200 Subject: cmake: add configuration option for ImageMagick Usage of ImageMagick for raster extensions and detection of image import resolution is optional; allow compiling without it. Fix failure to correctly detect ImageMagick component include dirs and libraries on linux as reported on irc: use variables which list all include dirs and libraries instead. (bzr r14102) --- CMakeScripts/DefineDependsandFlags.cmake | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index abad73a4d..854701145 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -330,16 +330,22 @@ find_package(ZLIB REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) -find_package(ImageMagick COMPONENTS MagickCore Magick++) -if(ImageMagick_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) - set(WITH_IMAGE_MAGICK ON) # enable 'Extensions > Raster' - # 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?) +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() endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) -- cgit v1.2.3 From 2495bd800225461079ed3b893a55dd4f73ec4d03 Mon Sep 17 00:00:00 2001 From: Ken Moffat <> Date: Mon, 4 May 2015 03:35:42 +0200 Subject: cmake: fix WITH_GTKSPELL configuration option (bzr r14103) --- CMakeScripts/DefineDependsandFlags.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 854701145..2ce7ffce9 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -297,8 +297,9 @@ if(WITH_GTKSPELL) list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${GTKSPELL_LIBRARIES}) add_definitions(${GTKSPELL_DEFINITIONS}) + else() + set(WITH_GTKSPELL OFF) endif() - set(WITH_GTKSPELL ${GTKSPELL_FOUND}) endif() #find_package(OpenSSL) -- cgit v1.2.3 From c4c82bf875072c6a7796adcd67add5694fdd2cdd Mon Sep 17 00:00:00 2001 From: houz Date: Mon, 4 May 2015 11:29:57 +0200 Subject: cmake: fix copy&paste error in LibCDR check (bzr r14105) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 2ce7ffce9..321bf63bc 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -175,8 +175,8 @@ endif() if(WITH_LIBCDR) find_package(LibCDR) if(LIBCDR_FOUND) - set(WITH_LIBCDR00 ${LIBVISIO-0.0_FOUND}) - set(WITH_LIBCDR01 ${LIBVISIO-0.1_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}) -- cgit v1.2.3 From 2eab6fad30c9c838902d9113c7e0d41b34ce79ea Mon Sep 17 00:00:00 2001 From: houz Date: Mon, 4 May 2015 12:39:09 +0200 Subject: cmake: shorter linker list (remove duplicates) (bzr r14106) --- CMakeScripts/DefineDependsandFlags.cmake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 321bf63bc..dceed9560 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -352,6 +352,8 @@ endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) # end Dependencies +list(REMOVE_DUPLICATES INKSCAPE_LIBS) +list(REMOVE_DUPLICATES INKSCAPE_INCS_SYS) # C/C++ Flags include_directories(${INKSCAPE_INCS}) -- cgit v1.2.3 From c24270d14aad415c4b771138407a23e1239aa8f8 Mon Sep 17 00:00:00 2001 From: houz Date: Fri, 8 May 2015 19:10:46 +0200 Subject: cmake: Bring cmake installation in line with autotools (bug #1451481) Fixed bugs: - https://launchpad.net/bugs/1451481 (bzr r14128) --- CMakeScripts/ConfigPaths.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index af0a7d50c..770e0c6ad 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -2,9 +2,15 @@ MESSAGE(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") IF(WIN32) SET(PACKAGE_LOCALE_DIR "locale") -ELSEIF(WIN32) + 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) # 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) -- cgit v1.2.3