summaryrefslogtreecommitdiffstats
path: root/CMakeScripts
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeScripts')
-rw-r--r--CMakeScripts/ConfigChecks.cmake17
-rw-r--r--CMakeScripts/DefineDependsandFlags.cmake121
-rw-r--r--CMakeScripts/FindSSL.cmake89
-rw-r--r--CMakeScripts/FindXML2.cmake90
-rw-r--r--CMakeScripts/FindXSLT.cmake90
-rw-r--r--CMakeScripts/HelperMacros.cmake76
6 files changed, 151 insertions, 332 deletions
diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake
index d20868767..a1c93b374 100644
--- a/CMakeScripts/ConfigChecks.cmake
+++ b/CMakeScripts/ConfigChecks.cmake
@@ -2,9 +2,9 @@
# From here on:
# Set all HAVE_XXX variables, to correctly set all defines in config.h
#SET(CMAKE_REQUIRED_INCLUDES ${INK_INCLUDES})
-INCLUDE (CheckIncludeFiles)
-INCLUDE (CheckFunctionExists)
-INCLUDE (CheckStructMember)
+include(CheckIncludeFiles)
+include(CheckFunctionExists)
+include(CheckStructMember)
# usage: CHECK_INCLUDE_FILES (<header> <RESULT_VARIABLE> )
# usage: CHECK_FUNCTION_EXISTS (<function name> <RESULT_VARIABLE> )
# usage: CHECK_STRUCT_MEMBER (<struct> <member> <header> <RESULT_VARIABLE>)
@@ -59,13 +59,12 @@ CHECK_INCLUDE_FILES(zlib.h HAVE_ZLIB_H)
#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)
- SET(RENDER_WITH_PANGO_CAIRO TRUE)
-ENDIF(HAVE_CAIRO_PDF)
+if(HAVE_CAIRO_PDF)
+ set(PANGO_ENABLE_ENGINE TRUE)
+ set(RENDER_WITH_PANGO_CAIRO TRUE)
+endif()
# Create the two configuration files: config.h and inkscape_version.h
# Create them in the binary root dir
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
-FILE(WRITE ${CMAKE_BINARY_DIR}/inkscape_version.h "#define INKSCAPE_VERSION \"${INKSCAPE_VERSION}\"\n")
+configure_file(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
add_definitions(-DHAVE_CONFIG_H)
diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
index 89f33114d..00753e980 100644
--- a/CMakeScripts/DefineDependsandFlags.cmake
+++ b/CMakeScripts/DefineDependsandFlags.cmake
@@ -1,60 +1,97 @@
+# ----------------------------------------------------------------------------
+# Files we include
+# ----------------------------------------------------------------------------
+
# Include dependencies:
find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
#find_package(GtkMM REQUIRED)
find_package(SigC++ REQUIRED)
-find_package(XML2 REQUIRED)
-find_package(XSLT REQUIRED)
find_package(GSL REQUIRED)
find_package(ImageMagick++ REQUIRED)
-find_package(Freetype2 REQUIRED)
+find_package(Freetype2 REQUIRED) # our own
find_package(GnomeVFS2)
-find_package(Boost REQUIRED)
+
find_package(BoehmGC REQUIRED)
+add_definitions(${BOEHMGC_DEFINITIONS})
+
find_package(LibWPG)
-find_package(PNG REQUIRED)
+find_package(PNG REQUIRED)
+
find_package(Popt REQUIRED)
+add_definitions(${POPT_DEFINITIONS})
+
+# ----------------------------------------------------------------------------
+# CMake's builtin
+# ----------------------------------------------------------------------------
+
+find_package(Boost REQUIRED)
+
+find_package(ASPELL)
+add_definitions(${ASPELL_DEFINITIONS})
+
find_package(OpenSSL)
-INCLUDE(IncludeJava)
+
+find_package(LibXslt REQUIRED)
+add_definitions(${LIBXSLT_DEFINITIONS})
+
+find_package(LibXml2 REQUIRED)
+add_definitions(${LIBXML2_DEFINITIONS})
+
+find_package(OpenMP REQUIRED) # cmake's
+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)
+
+include(IncludeJava)
# end Dependencies
-#Linking
-LIST(APPEND INKSCAPE_LIBS
-# ${GTK2_LIBRARIES}
-# ${SIGC++_LIBRARIES}
-# ${GSL_LIBRARIES}
-# ${XML2_LIBRARIES}
-# ${XSLT_LIBRARIES}
-# ${IMAGEMAGICK++_LIBRARIES}
-# ${FREETYPE2_LIBRARIES}
-# ${GNOMEVFS2_LIBRARIES}
-# ${BOOST_LIBRARIES}
-# ${BOEHMGC_LIBRARIES}
-# ${PNG_LIBRARIES}
-# ${POPT_LIBRARIES}
-# ${OPENSSL_LIBRARIES}
+
+# Linking
+list(APPEND INKSCAPE_LIBS
+ # ${GTK2_LIBRARIES}
+ # ${SIGC++_LIBRARIES}
+ # ${GSL_LIBRARIES}
+ ${LIBXML2_LIBRARIES}
+ ${LIBXSLT_LIBRARIES}
+ # ${IMAGEMAGICK++_LIBRARIES}
+ ${FREETYPE2_LIBRARIES}
+ # ${GNOMEVFS2_LIBRARIES}
+ ${Boost_LIBRARIES}
+ ${BOEHMGC_LIBRARIES}
+ ${PNG_LIBRARIES}
+ ${POPT_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ ${ASPELL_LIBRARIES}
)
-#Includes
-SET(INK_INCLUDES
-${CMAKE_BINARY_DIR}
-${PROJECT_SOURCE_DIR}
-${PROJECT_SOURCE_DIR}/src
-${GTK2_INCLUDE_DIRS}
-${SIGC++_INCLUDE_DIRS}
-${GSL_INCLUDE_DIRS}
-${XML2_INCLUDE_DIRS}
-${XSLT_INCLUDE_DIRS}
-${IMAGEMAGICK++_INCLUDE_DIRS}
-${FREETYPE2_INCLUDE_DIRS}
-${GNOMEVFS2_INCLUDE_DIRS}
-${BOOST_INCLUDE_DIRS}
-${BOEHMGC_INCLUDE_DIRS}
-${PNG_INCLUDE_DIRS}
-${POPT_INCLUDE_DIRS}
-${OPENSSL_INCLUDE_DIRS}
+
+# Includes
+set(INK_INCLUDES
+ ${CMAKE_BINARY_DIR}
+ ${PROJECT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}/src
+ ${GTK2_INCLUDE_DIRS}
+ ${SIGC++_INCLUDE_DIRS}
+ ${GSL_INCLUDE_DIRS}
+ ${LIBXML2_INCLUDE_DIR}
+ ${LIBXSLT_INCLUDE_DIR}
+ ${IMAGEMAGICK++_INCLUDE_DIRS}
+ ${FREETYPE2_INCLUDE_DIRS}
+ ${GNOMEVFS2_INCLUDE_DIRS}
+ ${Boost_INCLUDE_DIRS}
+ ${BOEHMGC_INCLUDE_DIRS}
+ ${PNG_INCLUDE_DIR}
+ ${POPT_INCLUDE_DIRS}
+ ${OPENSSL_INCLUDE_DIR}
+ ${ASPELL_INCLUDE_DIR}
)
-#C/C++ Flags
-INCLUDE_DIRECTORIES(${INK_INCLUDES})
-INCLUDE(ConfigChecks)
+# C/C++ Flags
+include_directories(${INK_INCLUDES})
+
+include(ConfigChecks)
diff --git a/CMakeScripts/FindSSL.cmake b/CMakeScripts/FindSSL.cmake
deleted file mode 100644
index 7a2671699..000000000
--- a/CMakeScripts/FindSSL.cmake
+++ /dev/null
@@ -1,89 +0,0 @@
-# - Try to find SSL
-# Once done this will define
-#
-# SSL_FOUND - system has SSL
-# SSL_INCLUDE_DIRS - the SSL include directory
-# SSL_LIBRARIES - Link these to use SSL
-# SSL_DEFINITIONS - Compiler switches required for using SSL
-#
-# Copyright (c) 2008 Joshua L. Blocher <verbalshadow@gmail.com>
-#
-# Redistribution and use is allowed according to the terms of the New
-# BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-#
-
-
-if (SSL_LIBRARIES AND SSL_INCLUDE_DIRS)
- # in cache already
- set(SSL_FOUND TRUE)
-else (SSL_LIBRARIES AND SSL_INCLUDE_DIRS)
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- include(UsePkgConfig)
- pkgconfig(libssl _SSL_INCLUDEDIR _SSL_LIBDIR _SSL_LDFLAGS _SSL_CFLAGS)
- else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- find_package(PkgConfig)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_SSL libssl)
- endif (PKG_CONFIG_FOUND)
- endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- find_path(SSL_INCLUDE_DIR
- NAMES
- ssl.h
- PATHS
- ${_SSL_INCLUDEDIR}
- /usr/include
- /usr/local/include
- /opt/local/include
- /sw/include
- PATH_SUFFIXES
- openssl
- )
-
- find_library(SSL_LIBRARY
- NAMES
- ssl
- PATHS
- ${_SSL_LIBDIR}
- /usr/lib
- /usr/local/lib
- /opt/local/lib
- /sw/lib
- )
-
- if (SSL_LIBRARY)
- set(SSL_FOUND TRUE)
- endif (SSL_LIBRARY)
-
- set(SSL_INCLUDE_DIRS
- ${SSL_INCLUDE_DIR}
- )
-
- if (SSL_FOUND)
- set(SSL_LIBRARIES
- ${SSL_LIBRARIES}
- ${SSL_LIBRARY}
- )
- endif (SSL_FOUND)
-
- if (SSL_INCLUDE_DIRS AND SSL_LIBRARIES)
- set(SSL_FOUND TRUE)
- endif (SSL_INCLUDE_DIRS AND SSL_LIBRARIES)
-
- if (SSL_FOUND)
- if (NOT SSL_FIND_QUIETLY)
- message(STATUS "Found SSL: ${SSL_LIBRARIES}")
- endif (NOT SSL_FIND_QUIETLY)
- else (SSL_FOUND)
- if (SSL_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find SSL")
- endif (SSL_FIND_REQUIRED)
- endif (SSL_FOUND)
-
- # show the SSL_INCLUDE_DIRS and SSL_LIBRARIES variables only in the advanced view
- mark_as_advanced(SSL_INCLUDE_DIRS SSL_LIBRARIES)
-
-endif (SSL_LIBRARIES AND SSL_INCLUDE_DIRS)
-
diff --git a/CMakeScripts/FindXML2.cmake b/CMakeScripts/FindXML2.cmake
deleted file mode 100644
index 1e2b0d3af..000000000
--- a/CMakeScripts/FindXML2.cmake
+++ /dev/null
@@ -1,90 +0,0 @@
-# - Try to find XML2
-# Once done this will define
-#
-# XML2_FOUND - system has XML2
-# XML2_INCLUDE_DIRS - the XML2 include directory
-# XML2_LIBRARIES - Link these to use XML2
-# XML2_DEFINITIONS - Compiler switches required for using XML2
-#
-# Copyright (c) 2008 Joshua L. Blocher <verbalshadow@gmail.com>
-#
-# Redistribution and use is allowed according to the terms of the New
-# BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-#
-
-
-if (XML2_LIBRARIES AND XML2_INCLUDE_DIRS)
- # in cache already
- set(XML2_FOUND TRUE)
-else (XML2_LIBRARIES AND XML2_INCLUDE_DIRS)
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- include(UsePkgConfig)
- pkgconfig(libxml-2.0 _XML2_INCLUDEDIR _XML2_LIBDIR _XML2_LDFLAGS _XML2_CFLAGS)
- else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- find_package(PkgConfig)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_XML2 libxml-2.0)
- endif (PKG_CONFIG_FOUND)
- endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- find_path(XML2_INCLUDE_DIR
- NAMES
- libxml/xmlunicode.h
- PATHS
- ${_XML2_INCLUDEDIR}
- /usr/include
- /usr/local/include
- /opt/local/include
- /sw/include
- $ENV{DEVLIBS_PATH}//include//
- PATH_SUFFIXES
- libxml2
- )
-
- find_library(XML2_LIBRARY
- NAMES
- xml2
- PATHS
- ${_XML2_LIBDIR}
- /usr/lib
- /usr/local/lib
- /opt/local/lib
- /sw/lib
- )
-
- if (XML2_LIBRARY)
- set(XML2_FOUND TRUE)
- endif (XML2_LIBRARY)
-
- set(XML2_INCLUDE_DIRS
- ${XML2_INCLUDE_DIR}
- )
-
- if (XML2_FOUND)
- set(XML2_LIBRARIES
- ${XML2_LIBRARIES}
- ${XML2_LIBRARY}
- )
- endif (XML2_FOUND)
-
- if (XML2_INCLUDE_DIRS AND XML2_LIBRARIES)
- set(XML2_FOUND TRUE)
- endif (XML2_INCLUDE_DIRS AND XML2_LIBRARIES)
-
- if (XML2_FOUND)
- if (NOT XML2_FIND_QUIETLY)
- message(STATUS "Found XML2: ${XML2_LIBRARIES}")
- endif (NOT XML2_FIND_QUIETLY)
- else (XML2_FOUND)
- if (XML2_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find XML2")
- endif (XML2_FIND_REQUIRED)
- endif (XML2_FOUND)
-
- # show the XML2_INCLUDE_DIRS and XML2_LIBRARIES variables only in the advanced view
- mark_as_advanced(XML2_INCLUDE_DIRS XML2_LIBRARIES)
-
-endif (XML2_LIBRARIES AND XML2_INCLUDE_DIRS)
-
diff --git a/CMakeScripts/FindXSLT.cmake b/CMakeScripts/FindXSLT.cmake
deleted file mode 100644
index bda46e640..000000000
--- a/CMakeScripts/FindXSLT.cmake
+++ /dev/null
@@ -1,90 +0,0 @@
-# - Try to find XSLT
-# Once done this will define
-#
-# XSLT_FOUND - system has XSLT
-# XSLT_INCLUDE_DIRS - the XSLT include directory
-# XSLT_LIBRARIES - Link these to use XSLT
-# XSLT_DEFINITIONS - Compiler switches required for using XSLT
-#
-# Copyright (c) 2008 Joshua L. Blocher <verbalshadow@gmail.com>
-#
-# Redistribution and use is allowed according to the terms of the New
-# BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-#
-
-
-if (XSLT_LIBRARIES AND XSLT_INCLUDE_DIRS)
- # in cache already
- set(XSLT_FOUND TRUE)
-else (XSLT_LIBRARIES AND XSLT_INCLUDE_DIRS)
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- include(UsePkgConfig)
- pkgconfig(libxslt _XSLT_INCLUDEDIR _XSLT_LIBDIR _XSLT_LDFLAGS _XSLT_CFLAGS)
- else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- find_package(PkgConfig)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_XSLT libxslt)
- endif (PKG_CONFIG_FOUND)
- endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
- find_path(XSLT_INCLUDE_DIR
- NAMES
- xslt.h
- PATHS
- ${_XSLT_INCLUDEDIR}
- /usr/include
- /usr/local/include
- /opt/local/include
- /sw/include
- $ENV{DEVLIBS_PATH}//include//
- PATH_SUFFIXES
- libxslt
- )
-
- find_library(XSLT_LIBRARY
- NAMES
- xslt
- PATHS
- ${_XSLT_LIBDIR}
- /usr/lib
- /usr/local/lib
- /opt/local/lib
- /sw/lib
- )
-
- if (XSLT_LIBRARY)
- set(XSLT_FOUND TRUE)
- endif (XSLT_LIBRARY)
-
- set(XSLT_INCLUDE_DIRS
- ${XSLT_INCLUDE_DIR}
- )
-
- if (XSLT_FOUND)
- set(XSLT_LIBRARIES
- ${XSLT_LIBRARIES}
- ${XSLT_LIBRARY}
- )
- endif (XSLT_FOUND)
-
- if (XSLT_INCLUDE_DIRS AND XSLT_LIBRARIES)
- set(XSLT_FOUND TRUE)
- endif (XSLT_INCLUDE_DIRS AND XSLT_LIBRARIES)
-
- if (XSLT_FOUND)
- if (NOT XSLT_FIND_QUIETLY)
- message(STATUS "Found XSLT: ${XSLT_LIBRARIES}")
- endif (NOT XSLT_FIND_QUIETLY)
- else (XSLT_FOUND)
- if (XSLT_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find XSLT")
- endif (XSLT_FIND_REQUIRED)
- endif (XSLT_FOUND)
-
- # show the XSLT_INCLUDE_DIRS and XSLT_LIBRARIES variables only in the advanced view
- mark_as_advanced(XSLT_INCLUDE_DIRS XSLT_LIBRARIES)
-
-endif (XSLT_LIBRARIES AND XSLT_INCLUDE_DIRS)
-
diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake
index dd8c25f00..592e962c7 100644
--- a/CMakeScripts/HelperMacros.cmake
+++ b/CMakeScripts/HelperMacros.cmake
@@ -1,13 +1,65 @@
# A macro to replace slashes and spaces in a string with underscores
-MACRO(SANITIZE_PATH _string_var)
- STRING(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}})
-ENDMACRO(SANITIZE_PATH _string_var)
-
-# A macro to prepend a given string onto the beginning of each string in a list
-MACRO(PREPEND _list _str)
- SET(_temp_list ${${_list}})
- SET(${_list})
- FOREACH(x ${_temp_list})
- SET(${_list} ${${_list}} ${_str}${x})
- ENDFOREACH(x)
-ENDMACRO(PREPEND _list _str)
+macro(SANITIZE_PATH _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)
+
+ 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)
+endmacro()
+
+
+# only MSVC uses SOURCE_GROUP
+macro(add_inkscape_lib
+ name
+ sources)
+
+ add_library(${name} ${sources})
+
+ # works fine without having the includes
+ # listed is helpful for IDE's (QtCreator/MSVC)
+ inkscape_source_group("${sources}")
+
+endmacro()
+
+
+# A macro to append to the global source property
+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)
+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)
+endmacro()