From ab26c0d1db7d099f7256a7b45d3b2b0cd4532aa0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 00:04:33 +0000 Subject: cmake: fix for error reading non existing file which would error out cmake's first run. (bzr r10275) --- CMakeScripts/UseGlibMarshal.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/UseGlibMarshal.cmake b/CMakeScripts/UseGlibMarshal.cmake index 63d501a57..c9481a4f6 100644 --- a/CMakeScripts/UseGlibMarshal.cmake +++ b/CMakeScripts/UseGlibMarshal.cmake @@ -22,7 +22,11 @@ MACRO(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOC OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP ) # check whether the generated file is the same as the existing one - FILE(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD) + 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}") -- cgit v1.2.3 From 1ecb54d13080d91d9c5cc06ae9bb590dfafecff9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 03:18:50 +0000 Subject: cmake: remove FindBoost, is an old copy of the one that comes with cmake. (bzr r10279) --- CMakeScripts/FindBoost.cmake | 403 ------------------------------------------- 1 file changed, 403 deletions(-) delete mode 100644 CMakeScripts/FindBoost.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/FindBoost.cmake b/CMakeScripts/FindBoost.cmake deleted file mode 100644 index b1a83803a..000000000 --- a/CMakeScripts/FindBoost.cmake +++ /dev/null @@ -1,403 +0,0 @@ -# - Try to find Boost include dirs and libraries -# Usage of this module as follows: -# -# FIND_PACKAGE( Boost COMPONENTS date_time filesystem iostreams ... ) -# -# The Boost_ADDITIONAL_VERSIONS variable can be used to specify a list of -# boost version numbers that should be taken into account when searching -# for the libraries. Unfortunately boost puts the version number into the -# actual filename for the libraries, so this might be needed in the future -# when new boost versions are released. -# -# Currently this module searches for the following version numbers: -# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1 -# -# The components list needs to be the actual names of boost libraries, that is -# the part of the actual library files that differ on different libraries. So -# its "date_time" for "libboost_date_time...". Anything else will result in -# errors -# -# Variables used by this module, they can change the default behaviour: -# Boost_USE_NONMULTITHREAD Can be set to TRUE to use the non-multithreaded -# boost libraries. -# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching -# the boost include directory. The default list -# of version numbers is: -# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1 -# If you want to look for an older or newer -# version set this variable to a list of -# strings, where each string contains a number, i.e. -# SET(Boost_ADDITIONAL_VERSIONS "0.99.0" "1.35.0") -# Boost_ROOT Preferred installation prefix for searching for Boost, -# set this if the module has problems finding the proper Boost installation -# Boost_INCLUDEDIR Set this to the include directory of Boost, if the -# module has problems finding the proper Boost installation -# Boost_LIBRARYDIR Set this to the lib directory of Boost, if the -# module has problems finding the proper Boost installation -# -# The last three variables are available also as environment variables -# -# -# Variables defined by this module: -# -# Boost_FOUND System has Boost, this means the include dir was found, -# as well as all the libraries specified in the COMPONENTS list -# Boost_INCLUDE_DIRS Boost include directories, not cached -# Boost_INCLUDE_DIR This is almost the same as above, but this one is cached and may be -# modified by advanced users -# Boost_LIBRARIES Link these to use the Boost libraries that you specified, not cached -# Boost_LIBRARY_DIRS The path to where the Boost library files are. -# Boost_VERSION The version number of the boost libraries that have been found, -# same as in version.hpp from Boost -# Boost_LIB_VERSION The version number in filename form as its appended to the library filenames -# Boost_MAJOR_VERSION major version number of boost -# Boost_MINOR_VERSION minor version number of boost -# Boost_SUBMINOR_VERSION subminor version number of boost - -# For each component you list the following variables are set. -# ATTENTION: The component names need to be in lower case, just as the boost -# library names however the cmake variables use upper case for the component -# part. So you'd get Boost_SERIALIZATION_FOUND for example. -# -# Boost_${COMPONENT}_FOUND True IF the Boost library "component" was found. -# Boost_${COMPONENT}_LIBRARY The absolute path of the Boost library "component". -# Boost_${COMPONENT}_LIBRARY_DEBUG The absolute path of the debug version of the -# Boost library "component". -# Boost_${COMPONENT}_LIBRARY_RELEASE The absolute path of the release version of the -# Boost library "component" -# -# Copyright (c) 2006-2008 Andreas Schneider -# Copyright (c) 2007 Wengo -# Copyright (c) 2007 Mike Jackson -# Copyright (c) 2008 Andreas Pakulat -# -# Redistribution AND use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - -# MESSAGE(STATUS "Finding Boost libraries.... ") - -SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.33" "1.33.0" "1.33.1" "1.34" "1.34.0" "1.34.1" ) - -############################################ -# -# Check the existence of the libraries. -# -############################################ -# This macro was taken directly from the FindQt4.cmake file that is included -# with the CMake distribution. This is NOT my work. All work was done by the -# original authors of the FindQt4.cmake file. Only minor modifications were -# made to remove references to Qt and make this file more generally applicable -######################################################################### - -MACRO (_Boost_ADJUST_LIB_VARS basename) - IF (Boost_INCLUDE_DIR ) - #MESSAGE(STATUS "Adjusting ${basename} ") - - IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) - # if the generator supports configuration types then set - # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value - IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) - ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - # if there are no configuration types and CMAKE_BUILD_TYPE has no value - # then just use the release libraries - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} ) - ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) - ENDIF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) - - # if only the release version was found, set the debug variable also to the release version - IF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) - SET(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE}) - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE}) - SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE}) - ENDIF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) - - # if only the debug version was found, set the release variable also to the debug version - IF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) - SET(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG}) - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_DEBUG}) - SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_DEBUG}) - ENDIF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) - - IF (Boost_${basename}_LIBRARY) - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") - GET_FILENAME_COMPONENT(Boost_LIBRARY_DIRS "${Boost_${basename}_LIBRARY}" PATH) - SET(Boost_${basename}_FOUND 1) - ENDIF (Boost_${basename}_LIBRARY) - - ENDIF (Boost_INCLUDE_DIR ) - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - Boost_${basename}_LIBRARY - Boost_${basename}_LIBRARY_RELEASE - Boost_${basename}_LIBRARY_DEBUG - ) -ENDMACRO (_Boost_ADJUST_LIB_VARS) - -#------------------------------------------------------------------------------- - - -SET( _boost_IN_CACHE TRUE) - -IF(Boost_INCLUDE_DIR) - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} COMPONENT) - IF(NOT Boost_${COMPONENT}_FOUND) - SET( _boost_IN_CACHE FALSE) - ENDIF(NOT Boost_${COMPONENT}_FOUND) - ENDFOREACH(COMPONENT) -ELSE(Boost_INCLUDE_DIR) - SET( _boost_IN_CACHE FALSE) -ENDIF(Boost_INCLUDE_DIR) - -IF (_boost_IN_CACHE) - # in cache already - SET(Boost_FOUND TRUE) - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} COMPONENT) - _Boost_ADJUST_LIB_VARS( ${COMPONENT} ) - ENDFOREACH(COMPONENT) - SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) -ELSE (_boost_IN_CACHE) - # Need to search for boost - - SET(_boost_INCLUDE_SEARCH_DIRS - C:/boost/include - "C:/Program Files/boost/boost_${Boost_REQUIRED_VERSION}" - # D: is very often the cdrom drive, IF you don't have a - # cdrom inserted it will popup a very annoying dialog - #D:/boost/include - /sw/local/include - ) - - SET(_boost_LIBRARIES_SEARCH_DIRS - C:/boost/lib - "C:/Program Files/boost/boost_${Boost_REQUIRED_VERSION}/lib" - /sw/local/lib - ) - - IF( NOT $ENV{Boost_ROOT} STREQUAL "" ) - SET(_boost_INCLUDE_SEARCH_DIRS $ENV{Boost_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS}) - SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{Boost_ROOT}/lib ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( NOT $ENV{Boost_ROOT} STREQUAL "" ) - - IF( NOT $ENV{Boost_INCLUDEDIR} STREQUAL "" ) - SET(_boost_INCLUDE_SEARCH_DIRS $ENV{Boost_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( NOT $ENV{Boost_INCLUDEDIR} STREQUAL "" ) - - IF( NOT $ENV{Boost_LIBRARYDIR} STREQUAL "" ) - SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{Boost_LIBRARYDIR} ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( NOT $ENV{Boost_LIBRARYDIR} STREQUAL "" ) - - IF( Boost_ROOT ) - SET(_boost_INCLUDE_SEARCH_DIRS ${Boost_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS}) - SET(_boost_LIBRARIES_SEARCH_DIRS ${Boost_ROOT}/lib ${_boost_LIBRARIES_SEARCH_DIRS}) - ENDIF( Boost_ROOT ) - - IF( Boost_INCLUDEDIR ) - SET(_boost_INCLUDE_SEARCH_DIRS ${Boost_INCLUDEDIR}/include ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( Boost_INCLUDEDIR ) - - IF( Boost_LIBRARYDIR ) - SET(_boost_LIBRARIES_SEARCH_DIRS ${Boost_LIBRARYDIR}/include ${_boost_LIBRARIES_SEARCH_DIRS}) - ENDIF( Boost_LIBRARYDIR ) - - FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) - IF( NOT Boost_INCLUDE_DIR ) - - # Add in a path suffix, based on the required version, ideally we could - # read this from version.hpp, but for that to work we'd need to know the include - # dir already - SET(_boost_PATH_SUFFIX - boost-${_boost_VER} - ) - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) - - - FIND_PATH(Boost_INCLUDE_DIR - NAMES boost/config.hpp - PATHS ${_boost_INCLUDE_SEARCH_DIRS} - PATH_SUFFIXES ${_boost_PATH_SUFFIX} - ) - - # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp - # Read the whole file: - # - SET(BOOST_VERSION 0) - SET(BOOST_LIB_VERSION "") - FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS) - - STRING(REGEX REPLACE ".*#define BOOST_VERSION ([0-9]+).*" "\\1" Boost_VERSION "${_boost_VERSION_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define BOOST_LIB_VERSION \"([0-9_]+)\".*" "\\1" Boost_LIB_VERSION "${_boost_VERSION_HPP_CONTENTS}") - - SET(Boost_LIB_VERSION ${Boost_LIB_VERSION} CACHE STRING "The library version string for boost libraries") - SET(Boost_VERSION ${Boost_VERSION} CACHE STRING "The version number for boost libraries") - - IF(NOT "${Boost_VERSION}" STREQUAL "0") - MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") - MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") - MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") - ENDIF(NOT "${Boost_VERSION}" STREQUAL "0") - - - ENDIF( NOT Boost_INCLUDE_DIR ) - ENDFOREACH(_boost_VER) - - #Setting some more suffixes for the library - SET (Boost_LIB_PREFIX "") - IF ( WIN32 ) - SET (Boost_LIB_PREFIX "lib") - ENDIF ( WIN32 ) - SET (_boost_COMPILER "-gcc") - IF (MSVC71) - SET (_boost_COMPILER "-vc71") - ENDIF(MSVC71) - IF (MSVC80) - SET (_boost_COMPILER "-vc80") - ENDIF(MSVC80) - IF (MINGW) - SET (_boost_COMPILER "-mgw") - ENDIF(MINGW) - IF (CYGWIN) - SET (_boost_COMPILER "-gcc") - ENDIF (CYGWIN) - IF (UNIX) - IF (APPLE) - SET (_boost_COMPILER "") - ELSE (APPLE) - IF (NOT CMAKE_COMPILER_IS_GNUCC) - # This is for the intel compiler - SET (_boost_COMPILER "-il") - ELSE (NOT CMAKE_COMPILER_IS_GNUCC) - #find out the version of gcc being used. - EXEC_PROGRAM(${CMAKE_CXX_COMPILER} - ARGS --version - OUTPUT_VARIABLE _boost_COMPILER_VERSION - ) - STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9] .*" "\\1\\2" - _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) - SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}") - ENDIF (NOT CMAKE_COMPILER_IS_GNUCC) - ENDIF (APPLE) - ENDIF(UNIX) - - SET (_boost_MULTITHREADED "-mt") - - IF( Boost_USE_NONMULTITHREADED ) - SET (_boost_MULTITHREADED "") - ENDIF( Boost_USE_NONMULTITHREADED ) - - SET( _boost_STATIC_TAG "") - IF (WIN32) - SET (_boost_ABI_TAG "g") - SET( _boost_STATIC_TAG "-s") - ENDIF(WIN32) - SET (_boost_ABI_TAG "${_boost_ABI_TAG}d") - - # ------------------------------------------------------------------------ - # Begin finding boost libraries - # ------------------------------------------------------------------------ - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) - SET( Boost_{UPPERCOMPONENT}_LIBRARY FALSE) - SET( Boost_{UPPERCOMPONENT}_LIBRARY_RELEASE FALSE) - SET( Boost_{UPPERCOMPONENT}_LIBRARY_DEBUG FALSE) - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT} - PATHS ${_boost_LIBRARIES_SEARCH_DIRS} - NO_DEFAULT_PATH - ) - - IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} ) - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT} - ) - ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} ) - - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} - PATHS ${_boost_LIBRARIES_SEARCH_DIRS} - NO_DEFAULT_PATH - ) - - IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} ) - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} - ) - ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} ) - _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT}) - ENDFOREACH(COMPONENT) - # ------------------------------------------------------------------------ - # End finding boost libraries - # ------------------------------------------------------------------------ - - SET(Boost_INCLUDE_DIRS - ${Boost_INCLUDE_DIR} - ) - - # MESSAGE(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") - # MESSAGE(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}") - - SET(Boost_FOUND FALSE) - IF(Boost_INCLUDE_DIR) - SET( Boost_FOUND TRUE ) - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} COMPONENT) - IF(NOT Boost_${COMPONENT}_FOUND) - SET( Boost_FOUND FALSE) - ENDIF(NOT Boost_${COMPONENT}_FOUND) - ENDFOREACH(COMPONENT) - ELSE(Boost_INCLUDE_DIR) - SET( Boost_FOUND FALSE) - ENDIF(Boost_INCLUDE_DIR) - - IF (Boost_FOUND) - IF (NOT Boost_FIND_QUIETLY) - MESSAGE(STATUS "Found The Following Boost Libraries:") - FOREACH ( COMPONENT ${Boost_FIND_COMPONENTS} ) - STRING( TOUPPER ${COMPONENT} UPPERCOMPONENT ) - IF ( Boost_${UPPERCOMPONENT}_FOUND ) - MESSAGE (STATUS " ${COMPONENT}") - SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${UPPERCOMPONENT}_LIBRARY}) - ENDIF ( Boost_${UPPERCOMPONENT}_FOUND ) - ENDFOREACH(COMPONENT) - MESSAGE(STATUS "Boost Version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") - ENDIF(NOT Boost_FIND_QUIETLY) - ELSE (Boost_FOUND) - IF (Boost_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Please install the Boost libraries AND development packages") - ENDIF(Boost_FIND_REQUIRED) - ENDIF(Boost_FOUND) - - # Under Windows, automatic linking is performed, so no need to specify the libraries. - IF (WIN32) - SET(Boost_LIBRARIES "") - ENDIF(WIN32) - - # show the Boost_INCLUDE_DIRS AND Boost_LIBRARIES variables only in the advanced view - MARK_AS_ADVANCED(Boost_INCLUDE_DIRS - Boost_LIBRARIES - Boost_LIBRARY_DIRS - ) -ENDIF(_boost_IN_CACHE) - - -- cgit v1.2.3 From b7a4f23ed217a36eaaefe8f707bcc1b968d1e562 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 05:39:42 +0000 Subject: cmake: - group source/headers per library (for some IDE's) - include headers with source listing (also for IDE's) - remove unneeded Find modules (bzr r10281) --- CMakeScripts/ConfigChecks.cmake | 17 ++--- CMakeScripts/DefineDependsandFlags.cmake | 121 ++++++++++++++++++++----------- CMakeScripts/FindSSL.cmake | 89 ----------------------- CMakeScripts/FindXML2.cmake | 90 ----------------------- CMakeScripts/FindXSLT.cmake | 90 ----------------------- CMakeScripts/HelperMacros.cmake | 76 ++++++++++++++++--- 6 files changed, 151 insertions(+), 332 deletions(-) delete mode 100644 CMakeScripts/FindSSL.cmake delete mode 100644 CMakeScripts/FindXML2.cmake delete mode 100644 CMakeScripts/FindXSLT.cmake (limited to 'CMakeScripts') 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 (
) # usage: CHECK_FUNCTION_EXISTS ( ) # usage: CHECK_STRUCT_MEMBER (
) @@ -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 -# -# 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 -# -# 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 -# -# 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() -- cgit v1.2.3 From 4c44aac126f24b41539e9a60bb69c20ce55b99eb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 13:01:21 +0000 Subject: cmake: script to check for coverage in our cmake files (that we dont miss any headers or source files) (bzr r10285) --- CMakeScripts/cmake_consistency_check.py | 265 ++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100755 CMakeScripts/cmake_consistency_check.py (limited to 'CMakeScripts') diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py new file mode 100755 index 000000000..10418caf0 --- /dev/null +++ b/CMakeScripts/cmake_consistency_check.py @@ -0,0 +1,265 @@ +#!/usr/bin/env python + +# $Id: cmake_consistency_check.py 36708 2011-05-16 06:11:14Z gsrb3d $ +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Contributor(s): Campbell Barton +# +# ***** END GPL LICENSE BLOCK ***** + +# + +IGNORE = ( + # dirs + "/cxxtest/", + "/dom/work/", + "/extension/dbus/", + "/pedro/", + "/src/extension/dxf2svg/", + + # files + "buildtool.cpp", + "jabber_whiteboard/node-tracker.cpp", + "jabber_whiteboard/node-utilities.cpp", + "packaging/macosx/ScriptExec/main.c", + "share/ui/keybindings.rc", + "src/2geom/conic_section_clipper_impl.cpp", + "src/2geom/conicsec.cpp", + "src/2geom/recursive-bezier-intersection.cpp", + "src/deptool.cpp", + "src/display/nr-filter-skeleton.cpp", + "src/display/testnr.cpp", + "src/dom/io/httpclient.cpp", + "src/dom/odf/SvgOdg.cpp", + "src/dom/xmlwriter.cpp", + "src/inkview.cpp", + "src/inkview.rc", + "src/io/streamtest.cpp", + "src/libcola/cycle_detector.cpp", + "src/libnr/nr-compose-reference.cpp", + "src/libnr/testnr.cp", + "src/live_effects/lpe-skeleton.cpp", + "src/sp-animation.cpp", + "src/sp-skeleton.cpp", + "src/svg/test-stubs.cpp", + "src/ui/dialog/session-player.cpp", + "src/ui/dialog/whiteboard-connect.cpp", + "src/ui/dialog/whiteboard-sharewithchat.cpp", + "src/ui/dialog/whiteboard-sharewithuser.cpp", + "src/winconsole.cpp", + + # header files + "share/filters/filters.svg.h", + "share/palettes/palettes.h", + "src/inkscape/share/palettes/palettes.h", + "src/inkscape/share/patterns/patterns.svg.h", + "src/inkscape/src/libcola/cycle_detector.h", + "src/inkscape/src/libnr/in-svg-plane-test.h", + "src/inkscape/src/libnr/nr-point-fns-test.h", + "src/inkscape/src/libnr/nr-translate-test.h", + "src/inkscape/src/libnr/nr-types-test.h", + "src/inkscape/src/sp-skeleton.h", + "src/inkscape/src/svg/test-stubs.h", + ) + +import os +from os.path import join, dirname, normpath, abspath, splitext + +base = join(os.path.dirname(__file__), "..") +base = normpath(base) +base = abspath(base) + +print("Scanning:", base) + +global_h = set() +global_c = set() + + +def source_list(path, filename_check=None): + for dirpath, dirnames, filenames in os.walk(path): + + # skip '.svn' + if dirpath.startswith("."): + continue + + for filename in filenames: + if filename_check is None or filename_check(filename): + yield os.path.join(dirpath, filename) + + +# extension checking +def is_cmake(filename): + ext = splitext(filename)[1] + return (ext == ".cmake") or (filename == "CMakeLists.txt") + + +def is_c_header(filename): + ext = splitext(filename)[1] + return (ext in (".h", ".hpp", ".hxx")) + + +def is_c(filename): + ext = splitext(filename)[1] + return (ext in (".c", ".cpp", ".cxx", ".m", ".mm", ".rc")) + + +def is_c_any(filename): + return is_c(filename) or is_c_header(filename) + + +def cmake_get_src(f): + + sources_h = [] + sources_c = [] + + filen = open(f, "r", encoding="utf8") + it = iter(filen) + found = False + i = 0 + # print(f) + while it is not None: + while it is not None: + i += 1 + try: + l = next(it) + except StopIteration: + it = None + break + l = l.strip() + if not l.startswith("#"): + if 'set(SRC' in l or ('set(' in l and l.endswith("SRC")): + if len(l.split()) > 1: + raise Exception("strict formatting not kept 'set(SRC*' %s:%d" % (f, i)) + found = True + break + + if "list(APPEND SRC" in l or ('list(APPEND ' in l and l.endswith("SRC")): + if l.endswith(")"): + raise Exception("strict formatting not kept 'list(APPEND SRC...)' on 1 line %s:%d" % (f, i)) + found = True + break + + if found: + cmake_base = dirname(f) + + while it is not None: + i += 1 + try: + l = next(it) + except StopIteration: + it = None + break + + l = l.strip() + + if not l.startswith("#"): + + if ")" in l: + if l.strip() != ")": + raise Exception("strict formatting not kept '*)' %s:%d" % (f, i)) + break + + # replace dirs + l = l.replace("${CMAKE_CURRENT_SOURCE_DIR}", cmake_base) + + if not l: + pass + elif l.startswith("$"): + # assume if it ends with SRC we know about it + if not l.split("}")[0].endswith("SRC"): + print("Can't use var '%s' %s:%d" % (l, f, i)) + elif len(l.split()) > 1: + raise Exception("Multi-line define '%s' %s:%d" % (l, f, i)) + else: + new_file = normpath(join(cmake_base, l)) + + if is_c_header(new_file): + sources_h.append(new_file) + elif is_c(new_file): + sources_c.append(new_file) + elif l in ("PARENT_SCOPE", ): + # cmake var, ignore + pass + elif new_file.endswith(".list"): + pass + elif new_file.endswith(".def"): + pass + else: + raise Exception("unknown file type - not c or h %s -> %s" % (f, new_file)) + + # print(new_file) + + global_h.update(set(sources_h)) + global_c.update(set(sources_c)) + ''' + if not sources_h and not sources_c: + raise Exception("No sources %s" % f) + + sources_h_fs = list(source_list(cmake_base, is_c_header)) + sources_c_fs = list(source_list(cmake_base, is_c)) + ''' + # find missing C files: + ''' + for ff in sources_c_fs: + if ff not in sources_c: + print(" missing: " + ff) + ''' + + filen.close() + + +for cmake in source_list(base, is_cmake): + cmake_get_src(cmake) + + +def is_ignore(f): + for ig in IGNORE: + if ig in f: + return True + return False + +# First do stupid check, do these files exist? +for f in (global_h | global_c): + if f.endswith("dna.c"): + continue + + if not os.path.exists(f): + raise Exception("CMake referenced file missing: " + f) + +# now check on files not accounted for. +print("\nC/C++ Files CMake doesnt know about...") +for cf in sorted(source_list(base, is_c)): + if not is_ignore(cf): + if cf not in global_c: + print("missing_c: ", cf) + + # check if automake builds a corrasponding .o file. + ''' + if cf in global_c: + out1 = os.path.splitext(cf)[0] + ".o" + out2 = os.path.splitext(cf)[0] + ".Po" + out2_dir, out2_file = out2 = os.path.split(out2) + out2 = os.path.join(out2_dir, ".deps", out2_file) + if not os.path.exists(out1) and not os.path.exists(out2): + print("bad_c: ", cf) + ''' + +print("\nC/C++ Headers CMake doesnt know about...") +for hf in sorted(source_list(base, is_c_header)): + if not is_ignore(hf): + if hf not in global_h: + print("missing_h: ", hf) -- cgit v1.2.3 From a2b7dea644a60886927e185e558d280ce280b94b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 13:28:51 +0000 Subject: replace local CheckStructMember.cmake with cmake's (bzr r10287) --- CMakeScripts/CheckStructMember.cmake | 62 ------------------------------------ CMakeScripts/ConfigChecks.cmake | 14 ++++---- 2 files changed, 7 insertions(+), 69 deletions(-) delete mode 100644 CMakeScripts/CheckStructMember.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/CheckStructMember.cmake b/CMakeScripts/CheckStructMember.cmake deleted file mode 100644 index e71eb902a..000000000 --- a/CMakeScripts/CheckStructMember.cmake +++ /dev/null @@ -1,62 +0,0 @@ -# - Check if the given struct or class has the specified member variable -# CHECK_STRUCT_MEMBER (STRUCT MEMBER HEADER VARIABLE) -# -# STRUCT - the name of the struct or class you are interested in -# MEMBER - the member which existence you want to check -# HEADER - the header(s) where the prototype should be declared -# VARIABLE - variable to store the result -# -# The following variables may be set before calling this macro to -# modify the way the check is run: -# -# CMAKE_REQUIRED_FLAGS = string of compile command line flags -# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) -# CMAKE_REQUIRED_INCLUDES = list of include directories - -# Copyright (c) 2006, Alexander Neundorf, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - - -INCLUDE(CheckCXXSourceCompiles) - -MACRO (CHECK_STRUCT_MEMBER _STRUCT _MEMBER _HEADER _RESULT) - SET(_INCLUDE_FILES) - FOREACH (it ${_HEADER}) - SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n") - ENDFOREACH (it) - - SET(_CHECK_STRUCT_MEMBER_SOURCE_CODE " -${_INCLUDE_FILES} -int main() -{ - ${_STRUCT}* tmp; - tmp->${_MEMBER}; - return 0; -} -") - CHECK_CXX_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT}) - -ENDMACRO (CHECK_STRUCT_MEMBER) \ No newline at end of file diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index a1c93b374..097dc888e 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -4,10 +4,10 @@ #SET(CMAKE_REQUIRED_INCLUDES ${INK_INCLUDES}) include(CheckIncludeFiles) include(CheckFunctionExists) -include(CheckStructMember) +include(CheckStructHasMember) # usage: CHECK_INCLUDE_FILES (
) # usage: CHECK_FUNCTION_EXISTS ( ) -# usage: CHECK_STRUCT_MEMBER (
) +# usage: CHECK_STRUCT_HAS_MEMBER (
) CHECK_INCLUDE_FILES(boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP) CHECK_INCLUDE_FILES(cairo-pdf.h HAVE_CAIRO_PDF) @@ -45,11 +45,11 @@ CHECK_FUNCTION_EXISTS(strrchr HAVE_STRRCHR) CHECK_FUNCTION_EXISTS(strspn HAVE_STRSPN) CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR) CHECK_FUNCTION_EXISTS(strtoul HAVE_STRTOUL) -CHECK_STRUCT_MEMBER(fordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FORDBLKS) -CHECK_STRUCT_MEMBER(fsmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FSMBLKS) -CHECK_STRUCT_MEMBER(hblkhd mallinfo malloc.h HAVE_STRUCT_MALLINFO_HBLKHD) -CHECK_STRUCT_MEMBER(uordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_UORDBLKS) -CHECK_STRUCT_MEMBER(usmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_USMBLKS) +CHECK_STRUCT_HAS_MEMBER(fordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FORDBLKS) +CHECK_STRUCT_HAS_MEMBER(fsmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FSMBLKS) +CHECK_STRUCT_HAS_MEMBER(hblkhd mallinfo malloc.h HAVE_STRUCT_MALLINFO_HBLKHD) +CHECK_STRUCT_HAS_MEMBER(uordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_UORDBLKS) +CHECK_STRUCT_HAS_MEMBER(usmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_USMBLKS) CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H) CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H) CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H) -- cgit v1.2.3 From eceeca65839d5e61234c235d5a6df0e360707862 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 15:24:52 +0000 Subject: cmake: The cmake files were using the inkscape-version.cpp file generated by autoconfigure. now generate our own. Also remove bad include. (bzr r10289) --- CMakeScripts/inkscape-version.cmake | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 CMakeScripts/inkscape-version.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/inkscape-version.cmake b/CMakeScripts/inkscape-version.cmake new file mode 100644 index 000000000..7e53f710b --- /dev/null +++ b/CMakeScripts/inkscape-version.cmake @@ -0,0 +1,30 @@ +# This is called by cmake as an extermal process from +# ./src/CMakeLists.txt and creates inkscape-version.cpp +# +# These variables are defined by the caller, matching the CMake equivilents. +# - ${INKSCAPE_SOURCE_DIR} +# - ${INKSCAPE_BINARY_DIR} + +# We should extract the version from build.xml +# but for now just hard code +set(INKSCAPE_VERSION "0.48+devel") +set(INKSCAPE_REVISION "unknown") + +if(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/) + execute_process(COMMAND + bzr revno ${INKSCAPE_SOURCE_DIR} + OUTPUT_VARIABLE INKSCAPE_REVISION + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +file(WRITE + ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt + "namespace Inkscape {\n" + " char const *version_string = \"${INKSCAPE_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) -- cgit v1.2.3 From ab46fa7f924696faa9e4876d685006ed669ae34d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 18:13:23 +0000 Subject: cmake: - remove hard coded include and libraries. - remove gtk/imagemagic modules (use cmakes). (bzr r10294) --- CMakeScripts/DefineDependsandFlags.cmake | 139 ++++++++---- CMakeScripts/FindGTK2.cmake | 363 ------------------------------- CMakeScripts/FindImageMagick++.cmake | 90 -------- 3 files changed, 93 insertions(+), 499 deletions(-) delete mode 100644 CMakeScripts/FindGTK2.cmake delete mode 100644 CMakeScripts/FindImageMagick++.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 00753e980..6cfb38257 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -1,41 +1,116 @@ +set(INKSCAPE_INCS + ${CMAKE_BINARY_DIR} + ${PROJECT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/src +) + +set(INKSCAPE_LIBS "") + # ---------------------------------------------------------------------------- # Files we include # ---------------------------------------------------------------------------- -# Include dependencies: -find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) -#find_package(GtkMM REQUIRED) -find_package(SigC++ REQUIRED) find_package(GSL REQUIRED) -find_package(ImageMagick++ REQUIRED) +list(APPEND INKSCAPE_INCS ${GSL_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) +list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME + find_package(Freetype2 REQUIRED) # our own +list(APPEND INKSCAPE_INCS ${FREETYPE2_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${FREETYPE2_LIBRARIES}) + + find_package(GnomeVFS2) +list(APPEND INKSCAPE_INCS ${GNOMEVFS2_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY}) find_package(BoehmGC REQUIRED) +list(APPEND INKSCAPE_INCS ${BOEHMGC_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) add_definitions(${BOEHMGC_DEFINITIONS}) find_package(LibWPG) + find_package(PNG REQUIRED) +list(APPEND INKSCAPE_INCS ${PNG_PNG_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${PNG_LIBRARY}) find_package(Popt REQUIRED) +list(APPEND INKSCAPE_INCS ${POPT_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) # ---------------------------------------------------------------------------- # CMake's builtin # ---------------------------------------------------------------------------- +# Include dependencies: +find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) +list(APPEND INKSCAPE_INCS + ${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_GIOMM_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} + +) + find_package(Boost REQUIRED) +list(APPEND INKSCAPE_INCS ${Boost_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${Boost_LIBRARIES}) find_package(ASPELL) +list(APPEND INKSCAPE_INCS ${ASPELL_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES}) add_definitions(${ASPELL_DEFINITIONS}) find_package(OpenSSL) +list(APPEND INKSCAPE_INCS ${OPENSSL_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) find_package(LibXslt REQUIRED) +list(APPEND INKSCAPE_INCS ${LIBXSLT_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${LIBXSLT_LIBRARIES}) add_definitions(${LIBXSLT_DEFINITIONS}) find_package(LibXml2 REQUIRED) +list(APPEND INKSCAPE_INCS ${LIBXML2_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES}) add_definitions(${LIBXML2_DEFINITIONS}) find_package(OpenMP REQUIRED) # cmake's @@ -47,51 +122,23 @@ endif() mark_as_advanced(OpenMP_C_FLAGS) mark_as_advanced(OpenMP_CXX_FLAGS) -include(IncludeJava) -# end Dependencies +find_package(ZLIB REQUIRED) +list(APPEND INKSCAPE_INCS ${ZLIB_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) +find_package(ImageMagick COMPONENTS MagickCore Magick++ REQUIRED) +list(APPEND INKSCAPE_INCS ${ImageMagick_MagickCore_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) -# 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} -) - +include(IncludeJava) +# end Dependencies -# 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} -) +# message(FATAL_ERROR "Whee: ${INKSCAPE_INCS}") +# message(FATAL_ERROR "Whee: ${INKSCAPE_LIBS}") +# message(FATAL_ERROR "Whee: ${INKSCAPE_LINK_DIRS}") # C/C++ Flags -include_directories(${INK_INCLUDES}) +include_directories(${INKSCAPE_INCS}) +unset(INKSCAPE_INCS) include(ConfigChecks) diff --git a/CMakeScripts/FindGTK2.cmake b/CMakeScripts/FindGTK2.cmake deleted file mode 100644 index b8b88bf4d..000000000 --- a/CMakeScripts/FindGTK2.cmake +++ /dev/null @@ -1,363 +0,0 @@ -# - FindGTK2.cmake -# This module finds the GTK2/GTKMM widget libraries -# -# Specify one or more of the following components -# as you call this Find macro: -# -# gtk -# gtkmm -# glade -# glademm -# -# The following variables will be defined for your use -# GTK2_FOUND - Were all of your specified components found? -# GTK2_INCLUDE_DIRS - All include directories -# GTK2_LIBRARIES - All libraries -# -# Optional variables you can define prior to calling this module -# GTK2_DEBUG - Enables verbose debugging of the module -# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced -# -#================= -# Example Usage: -# -# FIND_PACKAGE(GTK2 COMPONENTS gtk) -# or -# FIND_PACKAGE(GTK2 COMPONENTS gtk glade) # if you're also using glade -# -# INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) -# ADD_EXECUTABLE(foo foo.cc) -# TARGET_LINK_LIBRARIES(foo ${GTK2_LIBRARIES}) -#================= -# -# Copyright (c) 2008 -# Philip Lowman -# -# Version 0.6 (1/8/08) -# Added GTK2_SKIP_MARK_AS_ADVANCED option -# Version 0.5 (12/19/08) -# Second release to cmake mailing list -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -#============================================================= -# _GTK2_FIND_INCLUDE_DIR -# Internal macro to find the GTK include directories -# _var = variable to set -# _hdr = header file to look for -#============================================================= -MACRO(_GTK2_FIND_INCLUDE_DIR _var _hdr) - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] - _GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") - ENDIF() - - SET(_relatives - # FIXME - glibmm-2.4 - glib-2.0 - atk-1.0 - atkmm-1.6 - cairo - cairomm-1.0 - gdkmm-2.4 - giomm-2.4 - gtk-2.0 - gtkmm-2.4 - libglade-2.0 - libglademm-2.4 - pango-1.0 - pangomm-1.4 - sigc++-2.0 - ) - - SET(_suffixes) - FOREACH(_d ${_relatives}) - LIST(APPEND _suffixes ${_d}) - LIST(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include - ENDFOREACH() - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] include suffixes = ${_suffixes}") - ENDIF() - - FIND_PATH(${_var} ${_hdr} - PATHS - /usr/local/include - /usr/local/lib - /usr/include - /usr/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - PATH_SUFFIXES - ${_suffixes} - ) - - IF(${_var}) - LIST(APPEND GTK2_INCLUDE_DIRS ${${_var}}) - IF(NOT GTK2_SKIP_MARK_AS_ADVANCED) - MARK_AS_ADVANCED(${_var}) - ENDIF() - ENDIF() -ENDMACRO() - -#============================================================= -# _GTK2_FIND_LIBRARY -# Internal macro to find libraries packaged with GTK2 -# _var = library variable to create -#============================================================= -MACRO(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] - _GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") - ENDIF() - - # Not GTK versions per se but the versions encoded into Windows - # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) - # Also the MSVC libraries use _ for . (this is handled below) - SET(_versions 2.20 2.18 2.16 2.14 2.12 - 2.10 2.8 2.6 2.4 2.2 2.0 - 1.20 1.18 1.16 1.14 1.12 - 1.10 1.8 1.6 1.4 1.2 1.0) - - SET(_library) - SET(_library_d) - - SET(_library ${_lib}) - - IF(${_expand_vc}) - # Add vc80/vc90 midfixes - IF(MSVC80) - SET(_library ${_library}-vc80) - SET(_library_d ${_library}-d) - ELSEIF(MSVC90) - SET(_library ${_library}-vc90) - SET(_library_d ${_library}-d) - ENDIF() - ENDIF() - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] After midfix addition = ${_library} and ${_library_d}") - ENDIF() - - SET(_lib_list) - SET(_libd_list) - IF(${_append_version}) - FOREACH(_ver ${_versions}) - LIST(APPEND _lib_list "${_library}-${_ver}") - LIST(APPEND _libd_list "${_library_d}-${_ver}") - ENDFOREACH() - ELSE() - SET(_lib_list ${_library}) - SET(_libd_list ${_library_d}) - ENDIF() - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] library list = ${_lib_list} and library debug list = ${_libd_list}") - ENDIF() - - # For some silly reason the MSVC libraries use _ instead of . - # in the version fields - IF(${_expand_vc} AND MSVC) - SET(_no_dots_lib_list) - SET(_no_dots_libd_list) - FOREACH(_l ${_lib_list}) - STRING(REPLACE "." "_" _no_dots_library ${_l}) - LIST(APPEND _no_dots_lib_list ${_no_dots_library}) - ENDFOREACH() - # And for debug - SET(_no_dots_libsd_list) - FOREACH(_l ${_libd_list}) - STRING(REPLACE "." "_" _no_dots_libraryd ${_l}) - LIST(APPEND _no_dots_libd_list ${_no_dots_libraryd}) - ENDFOREACH() - - # Copy list back to original names - SET(_lib_list ${_no_dots_lib_list}) - SET(_libd_list ${_no_dots_libd_list}) - ENDIF() - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] Whilst searching for ${_var} our proposed library list is ${_lib_list}") - ENDIF() - - FIND_LIBRARY(${_var} - NAMES ${_lib_list} - PATHS - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - IF(${_expand_vc} AND MSVC) - - IF(GTK2_DEBUG) - MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] Whilst searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") - ENDIF() - - FIND_LIBRARY(${_var}_DEBUG - NAMES ${_libd_list} - PATHS - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - IF(NOT GTK2_SKIP_MARK_AS_ADVANCED) - MARK_AS_ADVANCED(${_var}_DEBUG) - ENDIF() - ELSE() - SET(${_var}_DEBUG ${${_var}}) - ENDIF() - - IF(${_var}) - LIST(APPEND GTK2_LIBRARIES optimized ${${_var}} debug ${${_var}_DEBUG} ) - IF(NOT GTK2_SKIP_MARK_AS_ADVANCED) - MARK_AS_ADVANCED(${_var}) - ENDIF() - ENDIF() -ENDMACRO() -#============================================================= - -# -# main() -# - -SET(GTK2_FOUND) -SET(GTK2_INCLUDE_DIRS) -SET(GTK2_LIBRARIES) - -IF(NOT GTK2_FIND_COMPONENTS) - MESSAGE(FATAL_ERROR "You must specify components with this module. See the documentation at the top of FindGTK2.cmake") -ENDIF() - -FOREACH(_component ${GTK2_FIND_COMPONENTS}) - IF(_component STREQUAL "gtk") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib 0 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 0 1) - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 0 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 0 1) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 0 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) - _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo 0 0) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) - _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango 0 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) - _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk 0 1) - - #ELSEIF(_component STREQUAL "gdk_pixbuf") - #_GTK2_FIND_INCLUDE_DIR(GTK2_GDKPIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) - #_GTK2_FIND_LIBRARY (GTK2_GDKPIXBUF_LIBRARY gdk_pixbuf 0 1) - - ELSEIF(_component STREQUAL "gtkmm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) - _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) - _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) - _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm 1 1) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) - _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm 1 1) - - ELSEIF(_component STREQUAL "glade") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) - _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade 0 1) - - ELSEIF(_component STREQUAL "glademm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm 1 1) - - ELSE() - MESSAGE(FATAL_ERROR "Unknown GTK2 component ${_component}") - ENDIF() -ENDFOREACH() - -# -# Try to enforce components -# - -SET(_did_we_find_everything true) # This gets set to GTK2_FOUND - -INCLUDE(FindPackageHandleStandardArgs) - -FOREACH(_component ${GTK2_FIND_COMPONENTS}) - STRING(TOUPPER ${_component} _COMPONENT_UPPER) - - IF(_component STREQUAL "gtk") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." - GTK2_GTK_LIBRARY - GTK2_GTK_INCLUDE_DIR - - GTK2_GLIB_INCLUDE_DIR - GTK2_GLIBCONFIG_INCLUDE_DIR - GTK2_GLIB_LIBRARY - - GTK2_GDK_INCLUDE_DIR - GTK2_GDKCONFIG_INCLUDE_DIR - GTK2_GDK_LIBRARY - ) - ELSEIF(_component STREQUAL "gtkmm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." - GTK2_GTKMM_LIBRARY - GTK2_GTKMM_INCLUDE_DIR - GTK2_GTKMMCONFIG_INCLUDE_DIR - - GTK2_GLIBMM_INCLUDE_DIR - GTK2_GLIBMMCONFIG_INCLUDE_DIR - GTK2_GLIBMM_LIBRARY - - GTK2_GDKMM_INCLUDE_DIR - GTK2_GDKMMCONFIG_INCLUDE_DIR - GTK2_GDKMM_LIBRARY - ) - ELSEIF(_component STREQUAL "glade") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." - GTK2_GLADE_LIBRARY - GTK2_GLADE_INCLUDE_DIR - ) - ELSEIF(_component STREQUAL "glademm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." - GTK2_GLADEMM_LIBRARY - GTK2_GLADEMM_INCLUDE_DIR - GTK2_GLADEMMCONFIG_INCLUDE_DIR - ) - ENDIF() - - IF(NOT GTK2_${_COMPONENT_UPPER}_FOUND) - SET(_did_we_find_everything false) - ENDIF() -ENDFOREACH() - -SET(GTK2_FOUND ${_did_we_find_everything}) diff --git a/CMakeScripts/FindImageMagick++.cmake b/CMakeScripts/FindImageMagick++.cmake deleted file mode 100644 index b12acdffc..000000000 --- a/CMakeScripts/FindImageMagick++.cmake +++ /dev/null @@ -1,90 +0,0 @@ -# - Try to find ImageMagick++ -# Once done this will define -# -# IMAGEMAGICK++_FOUND - system has ImageMagick++ -# IMAGEMAGICK++_INCLUDE_DIRS - the ImageMagick++ include directory -# IMAGEMAGICK++_LIBRARIES - Link these to use ImageMagick++ -# IMAGEMAGICK++_DEFINITIONS - Compiler switches required for using ImageMagick++ -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (IMAGEMAGICK++_LIBRARIES AND IMAGEMAGICK++_INCLUDE_DIRS) - # in cache already - set(IMAGEMAGICK++_FOUND TRUE) -else (IMAGEMAGICK++_LIBRARIES AND IMAGEMAGICK++_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(ImageMagick++ _IMAGEMAGICK++_INCLUDEDIR _IMAGEMAGICK++_LIBDIR _IMAGEMAGICK++_LDFLAGS _IMAGEMAGICK++_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_IMAGEMAGICK++ ImageMagick++) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(IMAGEMAGICK++_INCLUDE_DIR - NAMES - Image.h - PATHS - ${_IMAGEMAGICK++_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - Magick++ - ) - - find_library(MAGICK++_LIBRARY - NAMES - Magick++ - PATHS - ${_IMAGEMAGICK++_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (MAGICK++_LIBRARY) - set(MAGICK++_FOUND TRUE) - endif (MAGICK++_LIBRARY) - - set(IMAGEMAGICK++_INCLUDE_DIRS - ${IMAGEMAGICK++_INCLUDE_DIR} - ) - - if (MAGICK++_FOUND) - set(IMAGEMAGICK++_LIBRARIES - ${IMAGEMAGICK++_LIBRARIES} - ${MAGICK++_LIBRARY} - ) - endif (MAGICK++_FOUND) - - if (IMAGEMAGICK++_INCLUDE_DIRS AND IMAGEMAGICK++_LIBRARIES) - set(IMAGEMAGICK++_FOUND TRUE) - endif (IMAGEMAGICK++_INCLUDE_DIRS AND IMAGEMAGICK++_LIBRARIES) - - if (IMAGEMAGICK++_FOUND) - if (NOT ImageMagick++_FIND_QUIETLY) - message(STATUS "Found ImageMagick++: ${IMAGEMAGICK++_LIBRARIES}") - endif (NOT ImageMagick++_FIND_QUIETLY) - else (IMAGEMAGICK++_FOUND) - if (ImageMagick++_FIND_REQUIRED) - message(FATAL_ERROR "Could not find ImageMagick++") - endif (ImageMagick++_FIND_REQUIRED) - endif (IMAGEMAGICK++_FOUND) - - # show the IMAGEMAGICK++_INCLUDE_DIRS and IMAGEMAGICK++_LIBRARIES variables only in the advanced view - mark_as_advanced(IMAGEMAGICK++_INCLUDE_DIRS IMAGEMAGICK++_LIBRARIES) - -endif (IMAGEMAGICK++_LIBRARIES AND IMAGEMAGICK++_INCLUDE_DIRS) - -- cgit v1.2.3 From 4f20cb327f420917d761b0fa41e50cb9d4eb1a19 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 21:59:45 +0000 Subject: cmake: - added option WITH_DBUS (currently uses hard coded paths) - remove duplicate version variable. (bzr r10297) --- CMakeScripts/ConfigCompileFlags.cmake | 35 ++++++++++++++++---------------- CMakeScripts/DefineDependsandFlags.cmake | 13 +++++++++--- CMakeScripts/inkscape-version.cmake | 8 ++++++-- 3 files changed, 34 insertions(+), 22 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake index bc3b42ef6..0ff66fad8 100644 --- a/CMakeScripts/ConfigCompileFlags.cmake +++ b/CMakeScripts/ConfigCompileFlags.cmake @@ -1,25 +1,26 @@ -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) +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: -IF (ENABLE_PROFILING) - SET(COMPILE_PROFILING_FLAGS "-pg") - SET(LINK_PROFILING_FLAGS "-pg") -ENDIF (ENABLE_PROFILING) +if(WITH_PROFILING) + 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) +add_definitions(-DVERSION=\\\"${INKSCAPE_VERSION}\\\") +add_definitions(${DEFINE_FLAGS} -DHAVE_CONFIG_H -D_INTL_REDIRECT_INLINE) -IF (WIN32) - ADD_DEFINITIONS(-DXP_WIN) -ENDIF (WIN32) +if(WIN32) + add_definitions(-DXP_WIN) +endif(WIN32) # 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; }\"") +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} ") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILE_PROFILING_FLAGS} ") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_PROFILING_FLAGS} ") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILE_PROFILING_FLAGS} ") -SET(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} ") -#message(STATUS "${CMAKE_CXX_FLAGS}") +set(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} ") + +# message(STATUS "${CMAKE_CXX_FLAGS}") diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 6cfb38257..6c0abf362 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -133,9 +133,16 @@ list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) include(IncludeJava) # end Dependencies -# message(FATAL_ERROR "Whee: ${INKSCAPE_INCS}") -# message(FATAL_ERROR "Whee: ${INKSCAPE_LIBS}") -# message(FATAL_ERROR "Whee: ${INKSCAPE_LINK_DIRS}") +# ---------------------------------------------------------------------------- +# Optional +# ---------------------------------------------------------------------------- + +if(WITH_DBUS) + # XXX, needs s module + list(APPEND INKSCAPE_INCS "/usr/include/dbus-1.0") + list(APPEND INKSCAPE_INCS "/usr/lib/dbus-1.0/include") + list(APPEND INKSCAPE_LIBS "/usr/lib/libdbus-1.so") +endif() # C/C++ Flags include_directories(${INKSCAPE_INCS}) diff --git a/CMakeScripts/inkscape-version.cmake b/CMakeScripts/inkscape-version.cmake index 7e53f710b..1d98a5799 100644 --- a/CMakeScripts/inkscape-version.cmake +++ b/CMakeScripts/inkscape-version.cmake @@ -7,7 +7,6 @@ # We should extract the version from build.xml # but for now just hard code -set(INKSCAPE_VERSION "0.48+devel") set(INKSCAPE_REVISION "unknown") if(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/) @@ -19,8 +18,13 @@ endif() file(WRITE ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt + # unlike autoconf, include config.h + "#ifdef HAVE_CONFIG_H\n" + "# include \n" + "#endif\n" + "\n" "namespace Inkscape {\n" - " char const *version_string = \"${INKSCAPE_VERSION} ${INKSCAPE_REVISION}\";\n" + " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n" "}\n") # Copy the file to the final header only if the version changes -- cgit v1.2.3 From 2d1fed0c497cc729315683c106a6e2331e0e8990 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Jun 2011 22:47:55 +0000 Subject: cmake: use cmakes freetype module (bzr r10298) --- CMakeScripts/DefineDependsandFlags.cmake | 24 +++------ CMakeScripts/FindFreetype2.cmake | 90 -------------------------------- 2 files changed, 8 insertions(+), 106 deletions(-) delete mode 100644 CMakeScripts/FindFreetype2.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 6c0abf362..0797362d3 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -16,11 +16,6 @@ list(APPEND INKSCAPE_INCS ${GSL_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME -find_package(Freetype2 REQUIRED) # our own -list(APPEND INKSCAPE_INCS ${FREETYPE2_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${FREETYPE2_LIBRARIES}) - - find_package(GnomeVFS2) list(APPEND INKSCAPE_INCS ${GNOMEVFS2_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY}) @@ -90,9 +85,13 @@ list(APPEND INKSCAPE_LIBS ) +find_package(Freetype REQUIRED) +list(APPEND INKSCAPE_INCS ${FREETYPE_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) + find_package(Boost REQUIRED) list(APPEND INKSCAPE_INCS ${Boost_INCLUDE_DIRS}) -list(APPEND INKSCAPE_LIBS ${Boost_LIBRARIES}) +# list(APPEND INKSCAPE_LIBS ${Boost_LIBRARIES}) find_package(ASPELL) list(APPEND INKSCAPE_INCS ${ASPELL_INCLUDE_DIR}) @@ -133,16 +132,9 @@ list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) include(IncludeJava) # end Dependencies -# ---------------------------------------------------------------------------- -# Optional -# ---------------------------------------------------------------------------- - -if(WITH_DBUS) - # XXX, needs s module - list(APPEND INKSCAPE_INCS "/usr/include/dbus-1.0") - list(APPEND INKSCAPE_INCS "/usr/lib/dbus-1.0/include") - list(APPEND INKSCAPE_LIBS "/usr/lib/libdbus-1.so") -endif() +# message(FATAL_ERROR "Whee: ${INKSCAPE_INCS}") +# message(FATAL_ERROR "Whee: ${INKSCAPE_LIBS}") +# message(FATAL_ERROR "Whee: ${INKSCAPE_LINK_DIRS}") # C/C++ Flags include_directories(${INKSCAPE_INCS}) diff --git a/CMakeScripts/FindFreetype2.cmake b/CMakeScripts/FindFreetype2.cmake deleted file mode 100644 index 140dbd6c0..000000000 --- a/CMakeScripts/FindFreetype2.cmake +++ /dev/null @@ -1,90 +0,0 @@ -# - Try to find FREETYPE2 -# Once done this will define -# -# FREETYPE2_FOUND - system has FREETYPE2 -# FREETYPE2_INCLUDE_DIRS - the FREETYPE2 include directory -# FREETYPE2_LIBRARIES - Link these to use FREETYPE2 -# FREETYPE2_DEFINITIONS - Compiler switches required for using FREETYPE2 -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (FREETYPE2_LIBRARIES AND FREETYPE2_INCLUDE_DIRS) - # in cache already - set(FREETYPE2_FOUND TRUE) -else (FREETYPE2_LIBRARIES AND FREETYPE2_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(freetype2 _FREETYPE2_INCLUDEDIR _FREETYPE2_LIBDIR _FREETYPE2_LDFLAGS _FREETYPE2_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_FREETYPE2 freetype2) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(FREETYPE2_INCLUDE_DIR - NAMES - freetype/freetype.h - PATHS - ${_FREETYPE2_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - freetype2 - ) - - find_library(FREETYPE_LIBRARY - NAMES - freetype - PATHS - ${_FREETYPE2_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (FREETYPE_LIBRARY) - set(FREETYPE_FOUND TRUE) - endif (FREETYPE_LIBRARY) - - set(FREETYPE2_INCLUDE_DIRS - ${FREETYPE2_INCLUDE_DIR} - ) - - if (FREETYPE_FOUND) - set(FREETYPE2_LIBRARIES - ${FREETYPE2_LIBRARIES} - ${FREETYPE_LIBRARY} - ) - endif (FREETYPE_FOUND) - - if (FREETYPE2_INCLUDE_DIRS AND FREETYPE2_LIBRARIES) - set(FREETYPE2_FOUND TRUE) - endif (FREETYPE2_INCLUDE_DIRS AND FREETYPE2_LIBRARIES) - - if (FREETYPE2_FOUND) - if (NOT FREETYPE2_FIND_QUIETLY) - message(STATUS "Found FREETYPE2: ${FREETYPE2_LIBRARIES}") - endif (NOT FREETYPE2_FIND_QUIETLY) - else (FREETYPE2_FOUND) - if (FREETYPE2_FIND_REQUIRED) - message(FATAL_ERROR "Could not find FREETYPE2") - endif (FREETYPE2_FIND_REQUIRED) - endif (FREETYPE2_FOUND) - - # show the FREETYPE2_INCLUDE_DIRS and FREETYPE2_LIBRARIES variables only in the advanced view - mark_as_advanced(FREETYPE2_INCLUDE_DIRS FREETYPE2_LIBRARIES) - -endif (FREETYPE2_LIBRARIES AND FREETYPE2_INCLUDE_DIRS) - -- cgit v1.2.3 From 299f5609f16ca3752b095a4c2de03a39ee6b39b0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 09:28:48 +0000 Subject: cmake: update ignore list. (bzr r10299) --- CMakeScripts/cmake_consistency_check.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index 10418caf0..f308a2f8b 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -74,6 +74,14 @@ IGNORE = ( "src/inkscape/src/libnr/nr-types-test.h", "src/inkscape/src/sp-skeleton.h", "src/inkscape/src/svg/test-stubs.h", + + # generated files, created by an in-source build + "CMakeFiles/CompilerIdC/CMakeCCompilerId.c", + "CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp", + "src/helper/sp-marshal.cpp", + "src/helper/sp-marshal.h", + "src/inkscape-version.cpp", + "config.h", ) import os -- cgit v1.2.3 From eb4f54557015dba90f59d573733ba7105fe52063 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Jun 2011 10:13:18 +0000 Subject: cmake: use system includes (-isystem in gcc). (bzr r10300) --- CMakeScripts/DefineDependsandFlags.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 0797362d3..c374eec0e 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -137,7 +137,7 @@ include(IncludeJava) # message(FATAL_ERROR "Whee: ${INKSCAPE_LINK_DIRS}") # C/C++ Flags -include_directories(${INKSCAPE_INCS}) +include_directories(SYSTEM ${INKSCAPE_INCS}) unset(INKSCAPE_INCS) include(ConfigChecks) -- cgit v1.2.3 From 521ff01fbdb678fe649138a6d8b482dc792fa5fc Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Wed, 15 Jun 2011 01:19:02 -0700 Subject: Attempt to make ImageMagick and OpenMP optional with cmake. (bzr r10306) --- CMakeScripts/DefineDependsandFlags.cmake | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index c374eec0e..c64cb6fdf 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -113,21 +113,25 @@ list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES}) 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) +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) +endif(OpenMP_FOUND) find_package(ZLIB REQUIRED) list(APPEND INKSCAPE_INCS ${ZLIB_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) -find_package(ImageMagick COMPONENTS MagickCore Magick++ REQUIRED) -list(APPEND INKSCAPE_INCS ${ImageMagick_MagickCore_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) +find_package(ImageMagick COMPONENTS MagickCore Magick++) +if(ImageMagick_FOUND) + list(APPEND INKSCAPE_INCS ${ImageMagick_MagickCore_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) +endif(ImageMagick_FOUND) include(IncludeJava) # end Dependencies -- cgit v1.2.3 From 9a92284acd9da0c6294b6c0925149b1b3b00d589 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Jun 2011 03:48:27 +0000 Subject: minor changes to cmake, use lib/ and bin/ in the build dir. (bzr r10311) --- CMakeScripts/DefineDependsandFlags.cmake | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index c64cb6fdf..591de1327 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -112,7 +112,7 @@ list(APPEND INKSCAPE_INCS ${LIBXML2_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES}) add_definitions(${LIBXML2_DEFINITIONS}) -find_package(OpenMP REQUIRED) # cmake's +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}") @@ -121,7 +121,7 @@ if(OpenMP_FOUND) endif() mark_as_advanced(OpenMP_C_FLAGS) mark_as_advanced(OpenMP_CXX_FLAGS) -endif(OpenMP_FOUND) +endif() find_package(ZLIB REQUIRED) list(APPEND INKSCAPE_INCS ${ZLIB_INCLUDE_DIRS}) @@ -131,14 +131,11 @@ find_package(ImageMagick COMPONENTS MagickCore Magick++) if(ImageMagick_FOUND) list(APPEND INKSCAPE_INCS ${ImageMagick_MagickCore_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) -endif(ImageMagick_FOUND) +endif() include(IncludeJava) # end Dependencies -# message(FATAL_ERROR "Whee: ${INKSCAPE_INCS}") -# message(FATAL_ERROR "Whee: ${INKSCAPE_LIBS}") -# message(FATAL_ERROR "Whee: ${INKSCAPE_LINK_DIRS}") # C/C++ Flags include_directories(SYSTEM ${INKSCAPE_INCS}) -- cgit v1.2.3 From 5f618503076c1ce114f89d134e5c61eb652b8cb9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 18 Jun 2011 18:42:27 +0000 Subject: cmake: correct syntax error. (bzr r10314) --- CMakeScripts/HelperMacros.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake index 592e962c7..cdb4d0386 100644 --- a/CMakeScripts/HelperMacros.cmake +++ b/CMakeScripts/HelperMacros.cmake @@ -12,7 +12,7 @@ macro(inkscape_source_group foreach(_SRC ${sources}) get_filename_component(_SRC_EXT ${_SRC} EXT) - if(${_SRC_EXT} MATCHES ".h" OR ${_SRC_EXT} MATCHES ".hpp") + if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp")) source_group("Header Files" FILES ${_SRC}) else() source_group("Source Files" FILES ${_SRC}) -- cgit v1.2.3 From fd70df8246aa298587c90fa5d451c25abe858045 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 22 Jun 2011 14:33:11 +0000 Subject: get cmake working again. (bzr r10334) --- CMakeScripts/DefineDependsandFlags.cmake | 6 ++++++ CMakeScripts/cmake_consistency_check.py | 31 +++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 591de1327..d0fcaa6da 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -85,6 +85,12 @@ list(APPEND INKSCAPE_LIBS ) +## XXX, we need a way to get this properly +# pkg-config gtkmm-2.4 --cflags-only-I +list(APPEND INKSCAPE_INCS + "/usr/lib/cairomm-1.0/include" +) + find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS ${FREETYPE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index f308a2f8b..65224d404 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -95,6 +95,7 @@ print("Scanning:", base) global_h = set() global_c = set() +global_refs = {} def source_list(path, filename_check=None): @@ -197,8 +198,10 @@ def cmake_get_src(f): if is_c_header(new_file): sources_h.append(new_file) + global_refs.setdefault(new_file, []).append((f, i)) elif is_c(new_file): sources_c.append(new_file) + global_refs.setdefault(new_file, []).append((f, i)) elif l in ("PARENT_SCOPE", ): # cmake var, ignore pass @@ -240,13 +243,37 @@ def is_ignore(f): return True return False + # First do stupid check, do these files exist? +print("\nChecking for missing references:") +import sys +is_err = False +errs = [] for f in (global_h | global_c): if f.endswith("dna.c"): continue if not os.path.exists(f): - raise Exception("CMake referenced file missing: " + f) + refs = global_refs[f] + if refs: + for cf, i in refs: + errs.append((cf, i)) + else: + raise Exception("CMake referenecs missing, internal error, aborting!") + is_err = True + +errs.sort() +errs.reverse() +for cf, i in errs: + print("%s:%d" % (cf, i)) + # Write a 'sed' script, useful if we get a lot of these + # print("sed '%dd' '%s' > '%s.tmp' ; mv '%s.tmp' '%s'" % (i, cf, cf, cf, cf)) + + +if is_err: + raise Exception("CMake referenecs missing files, aborting!") +del is_err +del errs # now check on files not accounted for. print("\nC/C++ Files CMake doesnt know about...") @@ -254,7 +281,7 @@ for cf in sorted(source_list(base, is_c)): if not is_ignore(cf): if cf not in global_c: print("missing_c: ", cf) - + # check if automake builds a corrasponding .o file. ''' if cf in global_c: -- cgit v1.2.3 From 0241be87dacf34b304743e2cd0aa30444cd407cc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 22 Jun 2011 15:24:29 +0000 Subject: update cmake checker and split out config (bzr r10335) --- CMakeScripts/cmake_consistency_check.py | 90 +++++++------------------- CMakeScripts/cmake_consistency_check_config.py | 66 +++++++++++++++++++ 2 files changed, 88 insertions(+), 68 deletions(-) create mode 100644 CMakeScripts/cmake_consistency_check_config.py (limited to 'CMakeScripts') diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index 65224d404..d70a6a7e9 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -23,75 +23,12 @@ # -IGNORE = ( - # dirs - "/cxxtest/", - "/dom/work/", - "/extension/dbus/", - "/pedro/", - "/src/extension/dxf2svg/", - - # files - "buildtool.cpp", - "jabber_whiteboard/node-tracker.cpp", - "jabber_whiteboard/node-utilities.cpp", - "packaging/macosx/ScriptExec/main.c", - "share/ui/keybindings.rc", - "src/2geom/conic_section_clipper_impl.cpp", - "src/2geom/conicsec.cpp", - "src/2geom/recursive-bezier-intersection.cpp", - "src/deptool.cpp", - "src/display/nr-filter-skeleton.cpp", - "src/display/testnr.cpp", - "src/dom/io/httpclient.cpp", - "src/dom/odf/SvgOdg.cpp", - "src/dom/xmlwriter.cpp", - "src/inkview.cpp", - "src/inkview.rc", - "src/io/streamtest.cpp", - "src/libcola/cycle_detector.cpp", - "src/libnr/nr-compose-reference.cpp", - "src/libnr/testnr.cp", - "src/live_effects/lpe-skeleton.cpp", - "src/sp-animation.cpp", - "src/sp-skeleton.cpp", - "src/svg/test-stubs.cpp", - "src/ui/dialog/session-player.cpp", - "src/ui/dialog/whiteboard-connect.cpp", - "src/ui/dialog/whiteboard-sharewithchat.cpp", - "src/ui/dialog/whiteboard-sharewithuser.cpp", - "src/winconsole.cpp", - - # header files - "share/filters/filters.svg.h", - "share/palettes/palettes.h", - "src/inkscape/share/palettes/palettes.h", - "src/inkscape/share/patterns/patterns.svg.h", - "src/inkscape/src/libcola/cycle_detector.h", - "src/inkscape/src/libnr/in-svg-plane-test.h", - "src/inkscape/src/libnr/nr-point-fns-test.h", - "src/inkscape/src/libnr/nr-translate-test.h", - "src/inkscape/src/libnr/nr-types-test.h", - "src/inkscape/src/sp-skeleton.h", - "src/inkscape/src/svg/test-stubs.h", - - # generated files, created by an in-source build - "CMakeFiles/CompilerIdC/CMakeCCompilerId.c", - "CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp", - "src/helper/sp-marshal.cpp", - "src/helper/sp-marshal.h", - "src/inkscape-version.cpp", - "config.h", - ) +from cmake_consistency_check_config import IGNORE, UTF8_CHECK, SOURCE_DIR import os from os.path import join, dirname, normpath, abspath, splitext -base = join(os.path.dirname(__file__), "..") -base = normpath(base) -base = abspath(base) - -print("Scanning:", base) +print("Scanning:", SOURCE_DIR) global_h = set() global_c = set() @@ -233,7 +170,7 @@ def cmake_get_src(f): filen.close() -for cmake in source_list(base, is_cmake): +for cmake in source_list(SOURCE_DIR, is_cmake): cmake_get_src(cmake) @@ -277,7 +214,7 @@ del errs # now check on files not accounted for. print("\nC/C++ Files CMake doesnt know about...") -for cf in sorted(source_list(base, is_c)): +for cf in sorted(source_list(SOURCE_DIR, is_c)): if not is_ignore(cf): if cf not in global_c: print("missing_c: ", cf) @@ -294,7 +231,24 @@ for cf in sorted(source_list(base, is_c)): ''' print("\nC/C++ Headers CMake doesnt know about...") -for hf in sorted(source_list(base, is_c_header)): +for hf in sorted(source_list(SOURCE_DIR, is_c_header)): if not is_ignore(hf): if hf not in global_h: print("missing_h: ", hf) + +if UTF8_CHECK: + # test encoding + import traceback + for files in (global_c, global_h): + for f in sorted(files): + if os.path.exists(f): + # ignore outside of our source tree + if "extern" not in f: + i = 1 + try: + for l in open(f, "r", encoding="utf8"): + i += 1 + except: + print("Non utf8: %s:%d" % (f, i)) + if i > 1: + traceback.print_exc() diff --git a/CMakeScripts/cmake_consistency_check_config.py b/CMakeScripts/cmake_consistency_check_config.py new file mode 100644 index 000000000..e7c4508ef --- /dev/null +++ b/CMakeScripts/cmake_consistency_check_config.py @@ -0,0 +1,66 @@ +import os + +IGNORE = ( + # dirs + "/cxxtest/", + "/dom/work/", + "/extension/dbus/", + "/pedro/", + "/src/extension/dxf2svg/", + + # files + "buildtool.cpp", + "jabber_whiteboard/node-tracker.cpp", + "jabber_whiteboard/node-utilities.cpp", + "packaging/macosx/ScriptExec/main.c", + "share/ui/keybindings.rc", + "src/2geom/conic_section_clipper_impl.cpp", + "src/2geom/conicsec.cpp", + "src/2geom/recursive-bezier-intersection.cpp", + "src/deptool.cpp", + "src/display/nr-filter-skeleton.cpp", + "src/display/testnr.cpp", + "src/dom/io/httpclient.cpp", + "src/dom/odf/SvgOdg.cpp", + "src/dom/xmlwriter.cpp", + "src/inkview.cpp", + "src/inkview.rc", + "src/io/streamtest.cpp", + "src/libcola/cycle_detector.cpp", + "src/libnr/nr-compose-reference.cpp", + "src/libnr/testnr.cp", + "src/live_effects/lpe-skeleton.cpp", + "src/sp-animation.cpp", + "src/sp-skeleton.cpp", + "src/svg/test-stubs.cpp", + "src/ui/dialog/session-player.cpp", + "src/ui/dialog/whiteboard-connect.cpp", + "src/ui/dialog/whiteboard-sharewithchat.cpp", + "src/ui/dialog/whiteboard-sharewithuser.cpp", + "src/winconsole.cpp", + + # header files + "share/filters/filters.svg.h", + "share/palettes/palettes.h", + "src/inkscape/share/palettes/palettes.h", + "src/inkscape/share/patterns/patterns.svg.h", + "src/inkscape/src/libcola/cycle_detector.h", + "src/inkscape/src/libnr/in-svg-plane-test.h", + "src/inkscape/src/libnr/nr-point-fns-test.h", + "src/inkscape/src/libnr/nr-translate-test.h", + "src/inkscape/src/libnr/nr-types-test.h", + "src/inkscape/src/sp-skeleton.h", + "src/inkscape/src/svg/test-stubs.h", + + # generated files, created by an in-source build + "CMakeFiles/CompilerIdC/CMakeCCompilerId.c", + "CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp", + "src/helper/sp-marshal.cpp", + "src/helper/sp-marshal.h", + "src/inkscape-version.cpp", + "config.h", + ) + +UTF8_CHECK = False + +SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.normpath(os.path.join(os.path.dirname(__file__), "..")))) -- cgit v1.2.3 From a0968f15c59749b932b7e681265e28351b4395e8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 22 Jun 2011 15:46:33 +0000 Subject: cmake: inkscape source dirs were included using system setting (bzr r10336) --- CMakeScripts/ConfigChecks.cmake | 2 +- CMakeScripts/DefineDependsandFlags.cmake | 47 ++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 21 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 097dc888e..a04cf2698 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -66,5 +66,5 @@ 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) +configure_file(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/include/config.h) add_definitions(-DHAVE_CONFIG_H) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index d0fcaa6da..99831fc34 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -1,38 +1,42 @@ -set(INKSCAPE_INCS - ${CMAKE_BINARY_DIR} +set(INKSCAPE_LIBS "") +set(INKSCAPE_INCS "") +set(INKSCAPE_INCS_SYS "") + +list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src -) -set(INKSCAPE_LIBS "") + # generated includes + ${CMAKE_BINARY_DIR}/include +) # ---------------------------------------------------------------------------- # Files we include # ---------------------------------------------------------------------------- find_package(GSL REQUIRED) -list(APPEND INKSCAPE_INCS ${GSL_INCLUDE_DIRS}) +list(APPEND INKSCAPE_INCS_SYS ${GSL_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME find_package(GnomeVFS2) -list(APPEND INKSCAPE_INCS ${GNOMEVFS2_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${GNOMEVFS2_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY}) find_package(BoehmGC REQUIRED) -list(APPEND INKSCAPE_INCS ${BOEHMGC_INCLUDE_DIRS}) +list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) add_definitions(${BOEHMGC_DEFINITIONS}) find_package(LibWPG) find_package(PNG REQUIRED) -list(APPEND INKSCAPE_INCS ${PNG_PNG_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${PNG_LIBRARY}) find_package(Popt REQUIRED) -list(APPEND INKSCAPE_INCS ${POPT_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${POPT_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) @@ -42,7 +46,7 @@ add_definitions(${POPT_DEFINITIONS}) # Include dependencies: find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) -list(APPEND INKSCAPE_INCS +list(APPEND INKSCAPE_INCS_SYS ${GTK2_GDK_INCLUDE_DIR} ${GTK2_GDKMM_INCLUDE_DIR} ${GTK2_GDK_PIXBUF_INCLUDE_DIR} @@ -87,34 +91,34 @@ list(APPEND INKSCAPE_LIBS ## XXX, we need a way to get this properly # pkg-config gtkmm-2.4 --cflags-only-I -list(APPEND INKSCAPE_INCS +list(APPEND INKSCAPE_INCS_SYS "/usr/lib/cairomm-1.0/include" ) find_package(Freetype REQUIRED) -list(APPEND INKSCAPE_INCS ${FREETYPE_INCLUDE_DIRS}) +list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) find_package(Boost REQUIRED) -list(APPEND INKSCAPE_INCS ${Boost_INCLUDE_DIRS}) +list(APPEND INKSCAPE_INCS_SYS ${Boost_INCLUDE_DIRS}) # list(APPEND INKSCAPE_LIBS ${Boost_LIBRARIES}) find_package(ASPELL) -list(APPEND INKSCAPE_INCS ${ASPELL_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${ASPELL_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES}) add_definitions(${ASPELL_DEFINITIONS}) find_package(OpenSSL) -list(APPEND INKSCAPE_INCS ${OPENSSL_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) find_package(LibXslt REQUIRED) -list(APPEND INKSCAPE_INCS ${LIBXSLT_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${LIBXSLT_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${LIBXSLT_LIBRARIES}) add_definitions(${LIBXSLT_DEFINITIONS}) find_package(LibXml2 REQUIRED) -list(APPEND INKSCAPE_INCS ${LIBXML2_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${LIBXML2_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES}) add_definitions(${LIBXML2_DEFINITIONS}) @@ -130,12 +134,12 @@ if(OpenMP_FOUND) endif() find_package(ZLIB REQUIRED) -list(APPEND INKSCAPE_INCS ${ZLIB_INCLUDE_DIRS}) +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 ${ImageMagick_MagickCore_INCLUDE_DIR}) + list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) endif() @@ -144,7 +148,10 @@ include(IncludeJava) # C/C++ Flags -include_directories(SYSTEM ${INKSCAPE_INCS}) +include_directories(${INKSCAPE_INCS}) +include_directories(SYSTEM ${INKSCAPE_INCS_SYS}) + unset(INKSCAPE_INCS) +unset(INKSCAPE_INCS_SYS) include(ConfigChecks) -- cgit v1.2.3 From ab64f69b838079665a40a395c3f6b2ff4f90e8a4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 25 Jun 2011 14:36:41 +0000 Subject: cmake: added a patched FindGTK2 to include cairommconfig.h (bzr r10357) --- CMakeScripts/DefineDependsandFlags.cmake | 10 +- CMakeScripts/FindGTK2_patched.cmake | 596 +++++++++++++++++++++++++++++++ 2 files changed, 600 insertions(+), 6 deletions(-) create mode 100644 CMakeScripts/FindGTK2_patched.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 99831fc34..d0547bb49 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -45,7 +45,8 @@ add_definitions(${POPT_DEFINITIONS}) # ---------------------------------------------------------------------------- # Include dependencies: -find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) +# use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added +find_package(GTK2_patched COMPONENTS gtk gtkmm REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${GTK2_GDK_INCLUDE_DIR} ${GTK2_GDKMM_INCLUDE_DIR} @@ -66,10 +67,12 @@ list(APPEND INKSCAPE_INCS_SYS ${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_SIGC++_INCLUDE_DIR} ${GTK2_SIGC++CONFIG_INCLUDE_DIR} ) + list(APPEND INKSCAPE_LIBS ${GTK2_GDK_LIBRARY} ${GTK2_GDKMM_LIBRARY} @@ -89,11 +92,6 @@ list(APPEND INKSCAPE_LIBS ) -## XXX, we need a way to get this properly -# pkg-config gtkmm-2.4 --cflags-only-I -list(APPEND INKSCAPE_INCS_SYS - "/usr/lib/cairomm-1.0/include" -) find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) diff --git a/CMakeScripts/FindGTK2_patched.cmake b/CMakeScripts/FindGTK2_patched.cmake new file mode 100644 index 000000000..91249b787 --- /dev/null +++ b/CMakeScripts/FindGTK2_patched.cmake @@ -0,0 +1,596 @@ +# *NOTE*, this file include 1 line modification from 2.8.5's module +# this adds GTK2_CAIROMM_INCLUDE_DIR which we need! +# - ideasman42 +# ------------ + +# - FindGTK2.cmake +# This module can find the GTK2 widget libraries and several of its other +# optional components like gtkmm, glade, and glademm. +# +# NOTE: If you intend to use version checking, CMake 2.6.2 or later is +# required. +# +# Specify one or more of the following components +# as you call this find module. See example below. +# +# gtk +# gtkmm +# glade +# glademm +# +# The following variables will be defined for your use +# +# GTK2_FOUND - Were all of your specified components found? +# GTK2_INCLUDE_DIRS - All include directories +# GTK2_LIBRARIES - All libraries +# +# GTK2_VERSION - The version of GTK2 found (x.y.z) +# GTK2_MAJOR_VERSION - The major version of GTK2 +# GTK2_MINOR_VERSION - The minor version of GTK2 +# GTK2_PATCH_VERSION - The patch version of GTK2 +# +# Optional variables you can define prior to calling this module: +# +# GTK2_DEBUG - Enables verbose debugging of the module +# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced +# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to +# search for include files +# +#================= +# Example Usage: +# +# Call find_package() once, here are some examples to pick from: +# +# Require GTK 2.6 or later +# find_package(GTK2 2.6 REQUIRED gtk) +# +# Require GTK 2.10 or later and Glade +# find_package(GTK2 2.10 REQUIRED gtk glade) +# +# Search for GTK/GTKMM 2.8 or later +# find_package(GTK2 2.8 COMPONENTS gtk gtkmm) +# +# if(GTK2_FOUND) +# include_directories(${GTK2_INCLUDE_DIRS}) +# add_executable(mygui mygui.cc) +# target_link_libraries(mygui ${GTK2_LIBRARIES}) +# endif() +# + +#============================================================================= +# Copyright 2009 Kitware, Inc. +# Copyright 2008-2009 Philip Lowman +# +# 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.) + +# Version 1.3 (11/9/2010) (CMake 2.8.4) +# * 11429: Add support for detecting GTK2 built with Visual Studio 10. +# Thanks to Vincent Levesque for the patch. + +# Version 1.2 (8/30/2010) (CMake 2.8.3) +# * Merge patch for detecting gdk-pixbuf library (split off +# from core GTK in 2.21). Thanks to Vincent Untz for the patch +# and Ricardo Cruz for the heads up. +# Version 1.1 (8/19/2010) (CMake 2.8.3) +# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich) +# Version 1.0 (8/12/2010) (CMake 2.8.3) +# * Add support for detecting new pangommconfig.h header file +# (Thanks to Sune Vuorela & the Debian Project for the patch) +# * Add support for detecting fontconfig.h header +# * Call find_package(Freetype) since it's required +# * Add support for allowing users to add additional library directories +# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in +# case the GTK developers change versions on any of the directories in the +# future). +# Version 0.8 (1/4/2010) +# * Get module working under MacOSX fink by adding /sw/include, /sw/lib +# to PATHS and the gobject library +# Version 0.7 (3/22/09) +# * Checked into CMake CVS +# * Added versioning support +# * Module now defaults to searching for GTK if COMPONENTS not specified. +# * Added HKCU prior to HKLM registry key and GTKMM specific environment +# variable as per mailing list discussion. +# * Added lib64 to include search path and a few other search paths where GTK +# may be installed on Unix systems. +# * Switched to lowercase CMake commands +# * Prefaced internal variables with _GTK2 to prevent collision +# * Changed internal macros to functions +# * Enhanced documentation +# Version 0.6 (1/8/08) +# Added GTK2_SKIP_MARK_AS_ADVANCED option +# Version 0.5 (12/19/08) +# Second release to cmake mailing list + +#============================================================= +# _GTK2_GET_VERSION +# Internal function to parse the version number in gtkversion.h +# _OUT_major = Major version number +# _OUT_minor = Minor version number +# _OUT_micro = Micro version number +# _gtkversion_hdr = Header file to parse +#============================================================= +function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) + file(READ ${_gtkversion_hdr} _contents) + if(_contents) + string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}") + string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}") + string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}") + + if(NOT ${_OUT_major} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!") + endif() + if(NOT ${_OUT_minor} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!") + endif() + if(NOT ${_OUT_micro} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!") + endif() + + set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE) + set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE) + set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE) + else() + message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist") + endif() +endfunction() + +#============================================================= +# _GTK2_FIND_INCLUDE_DIR +# Internal function to find the GTK include directories +# _var = variable to set +# _hdr = header file to look for +#============================================================= +function(_GTK2_FIND_INCLUDE_DIR _var _hdr) + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") + endif() + + set(_relatives + # If these ever change, things will break. + ${GTK2_ADDITIONAL_SUFFIXES} + glibmm-2.4 + glib-2.0 + atk-1.0 + atkmm-1.6 + cairo + cairomm-1.0 + gdk-pixbuf-2.0 + gdkmm-2.4 + giomm-2.4 + gtk-2.0 + gtkmm-2.4 + libglade-2.0 + libglademm-2.4 + pango-1.0 + pangomm-1.4 + sigc++-2.0 + ) + + set(_suffixes) + foreach(_d ${_relatives}) + list(APPEND _suffixes ${_d}) + list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include + endforeach() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "include suffixes = ${_suffixes}") + endif() + + find_path(${_var} ${_hdr} + PATHS + /usr/local/lib64 + /usr/local/lib + /usr/lib64 + /usr/lib + /opt/gnome/include + /opt/gnome/lib + /opt/openwin/include + /usr/openwin/lib + /sw/include + /sw/lib + /opt/local/include + /opt/local/lib + $ENV{GTKMM_BASEPATH}/include + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + PATH_SUFFIXES + ${_suffixes} + ) + + if(${_var}) + set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}) + endif() + endif() + +endfunction(_GTK2_FIND_INCLUDE_DIR) + +#============================================================= +# _GTK2_FIND_LIBRARY +# Internal function to find libraries packaged with GTK2 +# _var = library variable to create +#============================================================= +function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") + endif() + + # Not GTK versions per se but the versions encoded into Windows + # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) + # Also the MSVC libraries use _ for . (this is handled below) + set(_versions 2.20 2.18 2.16 2.14 2.12 + 2.10 2.8 2.6 2.4 2.2 2.0 + 1.20 1.18 1.16 1.14 1.12 + 1.10 1.8 1.6 1.4 1.2 1.0) + + set(_library) + set(_library_d) + + set(_library ${_lib}) + + if(_expand_vc AND MSVC) + # Add vc80/vc90/vc100 midfixes + if(MSVC80) + set(_library ${_library}-vc80) + elseif(MSVC90) + set(_library ${_library}-vc90) + elseif(MSVC10) + set(_library ${_library}-vc100) + endif() + set(_library_d ${_library}-d) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "After midfix addition = ${_library} and ${_library_d}") + endif() + + set(_lib_list) + set(_libd_list) + if(_append_version) + foreach(_ver ${_versions}) + list(APPEND _lib_list "${_library}-${_ver}") + list(APPEND _libd_list "${_library_d}-${_ver}") + endforeach() + else() + set(_lib_list ${_library}) + set(_libd_list ${_library_d}) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "library list = ${_lib_list} and library debug list = ${_libd_list}") + endif() + + # For some silly reason the MSVC libraries use _ instead of . + # in the version fields + if(_expand_vc AND MSVC) + set(_no_dots_lib_list) + set(_no_dots_libd_list) + foreach(_l ${_lib_list}) + string(REPLACE "." "_" _no_dots_library ${_l}) + list(APPEND _no_dots_lib_list ${_no_dots_library}) + endforeach() + # And for debug + set(_no_dots_libsd_list) + foreach(_l ${_libd_list}) + string(REPLACE "." "_" _no_dots_libraryd ${_l}) + list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) + endforeach() + + # Copy list back to original names + set(_lib_list ${_no_dots_lib_list}) + set(_libd_list ${_no_dots_libd_list}) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "While searching for ${_var}, our proposed library list is ${_lib_list}") + endif() + + find_library(${_var} + NAMES ${_lib_list} + PATHS + /opt/gnome/lib + /opt/gnome/lib64 + /usr/openwin/lib + /usr/openwin/lib64 + /sw/lib + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + ) + + if(_expand_vc AND MSVC) + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") + endif() + + find_library(${_var}_DEBUG + NAMES ${_libd_list} + PATHS + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + ) + + if(${_var} AND ${_var}_DEBUG) + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}_DEBUG) + endif() + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} optimized ${${_var}} debug ${${_var}_DEBUG}) + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) + endif() + else() + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}) + endif() + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${${_var}}) + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) + # Set debug to release + set(${_var}_DEBUG ${${_var}}) + set(${_var}_DEBUG ${${_var}} PARENT_SCOPE) + endif() +endfunction(_GTK2_FIND_LIBRARY) + +#============================================================= + +# +# main() +# + +set(GTK2_FOUND) +set(GTK2_INCLUDE_DIRS) +set(GTK2_LIBRARIES) + +if(NOT GTK2_FIND_COMPONENTS) + # Assume they only want GTK + set(GTK2_FIND_COMPONENTS gtk) +endif() + +# +# If specified, enforce version number +# +if(GTK2_FIND_VERSION) + cmake_minimum_required(VERSION 2.6.2) + set(GTK2_FAILED_VERSION_CHECK true) + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "Searching for version ${GTK2_FIND_VERSION}") + endif() + _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) + if(GTK2_GTK_INCLUDE_DIR) + _GTK2_GET_VERSION(GTK2_MAJOR_VERSION + GTK2_MINOR_VERSION + GTK2_PATCH_VERSION + ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) + set(GTK2_VERSION + ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) + if(GTK2_FIND_VERSION_EXACT) + if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION) + set(GTK2_FAILED_VERSION_CHECK false) + endif() + else() + if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR + GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION) + set(GTK2_FAILED_VERSION_CHECK false) + endif() + endif() + else() + # If we can't find the GTK include dir, we can't do version checking + if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) + message(FATAL_ERROR "Could not find GTK2 include directory") + endif() + return() + endif() + + if(GTK2_FAILED_VERSION_CHECK) + if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) + if(GTK2_FIND_VERSION_EXACT) + message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.") + else() + message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required") + endif() + endif() + + # If the version check fails, exit out of the module here + return() + endif() +endif() + +# +# Find all components +# + +find_package(Freetype) +list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) +list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES}) + +foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) + if(_GTK2_component STREQUAL "gtk") + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h) + _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) + _GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) + + if(UNIX) + _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 false true) + _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 false true) + else() + _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 false true) + _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 false true) + endif() + + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) + _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo false false) + + _GTK2_FIND_INCLUDE_DIR(GTK2_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) + + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) + _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) + _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk false true) + + + elseif(_GTK2_component STREQUAL "gtkmm") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) + _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) + _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm true true) + + elseif(_GTK2_component STREQUAL "glade") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) + _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade false true) + + elseif(_GTK2_component STREQUAL "glademm") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm true true) + + else() + message(FATAL_ERROR "Unknown GTK2 component ${_component}") + endif() +endforeach() + +# +# Solve for the GTK2 version if we haven't already +# +if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR) + _GTK2_GET_VERSION(GTK2_MAJOR_VERSION + GTK2_MINOR_VERSION + GTK2_PATCH_VERSION + ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) + set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) +endif() + +# +# Try to enforce components +# + +set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND + +include(FindPackageHandleStandardArgs) + +foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) + string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER) + + if(_GTK2_component STREQUAL "gtk") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." + GTK2_GTK_LIBRARY + GTK2_GTK_INCLUDE_DIR + + GTK2_GLIB_INCLUDE_DIR + GTK2_GLIBCONFIG_INCLUDE_DIR + GTK2_GLIB_LIBRARY + + GTK2_GDK_INCLUDE_DIR + GTK2_GDKCONFIG_INCLUDE_DIR + GTK2_GDK_LIBRARY + ) + elseif(_GTK2_component STREQUAL "gtkmm") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." + GTK2_GTKMM_LIBRARY + GTK2_GTKMM_INCLUDE_DIR + GTK2_GTKMMCONFIG_INCLUDE_DIR + + GTK2_GLIBMM_INCLUDE_DIR + GTK2_GLIBMMCONFIG_INCLUDE_DIR + GTK2_GLIBMM_LIBRARY + + GTK2_GDKMM_INCLUDE_DIR + GTK2_GDKMMCONFIG_INCLUDE_DIR + GTK2_GDKMM_LIBRARY + ) + elseif(_GTK2_component STREQUAL "glade") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." + GTK2_GLADE_LIBRARY + GTK2_GLADE_INCLUDE_DIR + ) + elseif(_GTK2_component STREQUAL "glademm") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." + GTK2_GLADEMM_LIBRARY + GTK2_GLADEMM_INCLUDE_DIR + GTK2_GLADEMMCONFIG_INCLUDE_DIR + ) + endif() + + if(NOT GTK2_${_COMPONENT_UPPER}_FOUND) + set(_GTK2_did_we_find_everything false) + endif() +endforeach() + +if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) + set(GTK2_FOUND true) +else() + # Unset our variables. + set(GTK2_FOUND false) + set(GTK2_VERSION) + set(GTK2_VERSION_MAJOR) + set(GTK2_VERSION_MINOR) + set(GTK2_VERSION_PATCH) + set(GTK2_INCLUDE_DIRS) + set(GTK2_LIBRARIES) +endif() + +if(GTK2_INCLUDE_DIRS) + list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) +endif() + -- cgit v1.2.3 From 71f63ec3d5ccb82e8617da524d741221e35847ca Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 25 Jun 2011 14:48:35 +0000 Subject: added a Modules cmake dir, only use for find_package, reference cmake include paths explicitly. (bzr r10358) --- CMakeScripts/DefineDependsandFlags.cmake | 4 +- CMakeScripts/FindBoehmGC.cmake | 77 ---- CMakeScripts/FindGSL.cmake | 89 ----- CMakeScripts/FindGTK2_patched.cmake | 596 ---------------------------- CMakeScripts/FindGnomeVFS2.cmake | 90 ----- CMakeScripts/FindLCMS.cmake | 90 ----- CMakeScripts/FindLibWPG.cmake | 90 ----- CMakeScripts/FindPANGOMM.cmake | 89 ----- CMakeScripts/FindPopt.cmake | 90 ----- CMakeScripts/FindPython.cmake | 13 - CMakeScripts/FindSigC++.cmake | 106 ----- CMakeScripts/Modules/FindBoehmGC.cmake | 77 ++++ CMakeScripts/Modules/FindGSL.cmake | 89 +++++ CMakeScripts/Modules/FindGTK2_patched.cmake | 596 ++++++++++++++++++++++++++++ CMakeScripts/Modules/FindGnomeVFS2.cmake | 90 +++++ CMakeScripts/Modules/FindLCMS.cmake | 90 +++++ CMakeScripts/Modules/FindLibWPG.cmake | 90 +++++ CMakeScripts/Modules/FindPANGOMM.cmake | 89 +++++ CMakeScripts/Modules/FindPopt.cmake | 90 +++++ CMakeScripts/Modules/FindPython.cmake | 13 + CMakeScripts/Modules/FindSigC++.cmake | 106 +++++ 21 files changed, 1332 insertions(+), 1332 deletions(-) delete mode 100644 CMakeScripts/FindBoehmGC.cmake delete mode 100644 CMakeScripts/FindGSL.cmake delete mode 100644 CMakeScripts/FindGTK2_patched.cmake delete mode 100644 CMakeScripts/FindGnomeVFS2.cmake delete mode 100644 CMakeScripts/FindLCMS.cmake delete mode 100644 CMakeScripts/FindLibWPG.cmake delete mode 100644 CMakeScripts/FindPANGOMM.cmake delete mode 100644 CMakeScripts/FindPopt.cmake delete mode 100644 CMakeScripts/FindPython.cmake delete mode 100644 CMakeScripts/FindSigC++.cmake create mode 100644 CMakeScripts/Modules/FindBoehmGC.cmake create mode 100644 CMakeScripts/Modules/FindGSL.cmake create mode 100644 CMakeScripts/Modules/FindGTK2_patched.cmake create mode 100644 CMakeScripts/Modules/FindGnomeVFS2.cmake create mode 100644 CMakeScripts/Modules/FindLCMS.cmake create mode 100644 CMakeScripts/Modules/FindLibWPG.cmake create mode 100644 CMakeScripts/Modules/FindPANGOMM.cmake create mode 100644 CMakeScripts/Modules/FindPopt.cmake create mode 100644 CMakeScripts/Modules/FindPython.cmake create mode 100644 CMakeScripts/Modules/FindSigC++.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index d0547bb49..96ff53ff9 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -141,7 +141,7 @@ if(ImageMagick_FOUND) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) endif() -include(IncludeJava) +include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) # end Dependencies @@ -152,4 +152,4 @@ include_directories(SYSTEM ${INKSCAPE_INCS_SYS}) unset(INKSCAPE_INCS) unset(INKSCAPE_INCS_SYS) -include(ConfigChecks) +include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) diff --git a/CMakeScripts/FindBoehmGC.cmake b/CMakeScripts/FindBoehmGC.cmake deleted file mode 100644 index 7a5081c22..000000000 --- a/CMakeScripts/FindBoehmGC.cmake +++ /dev/null @@ -1,77 +0,0 @@ -# - Try to find BoehmGC -# Once done this will define -# -# BOEHMGC_FOUND - system has BoehmGC -# BOEHMGC_INCLUDE_DIRS - the BoehmGC include directory -# BOEHMGC_LIBRARIES - Link these to use BoehmGC -# BOEHMGC_DEFINITIONS - Compiler switches required for using BoehmGC -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (BOEHMGC_LIBRARIES AND BOEHMGC_INCLUDE_DIRS) - # in cache already - set(BOEHMGC_FOUND TRUE) -else (BOEHMGC_LIBRARIES AND BOEHMGC_INCLUDE_DIRS) - find_path(BOEHMGC_INCLUDE_DIR - NAMES - gc.h - PATHS - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - gc - ) - - find_library(GC_LIBRARY - NAMES - gc - PATHS - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (GC_LIBRARY) - set(GC_FOUND TRUE) - endif (GC_LIBRARY) - - set(BOEHMGC_INCLUDE_DIRS - ${BOEHMGC_INCLUDE_DIR} - ) - - if (GC_FOUND) - set(BOEHMGC_LIBRARIES - ${BOEHMGC_LIBRARIES} - ${GC_LIBRARY} - ) - endif (GC_FOUND) - - if (BOEHMGC_INCLUDE_DIRS AND BOEHMGC_LIBRARIES) - set(BOEHMGC_FOUND TRUE) - endif (BOEHMGC_INCLUDE_DIRS AND BOEHMGC_LIBRARIES) - - if (BOEHMGC_FOUND) - if (NOT BoehmGC_FIND_QUIETLY) - message(STATUS "Found BoehmGC: ${BOEHMGC_LIBRARIES}") - endif (NOT BoehmGC_FIND_QUIETLY) - else (BOEHMGC_FOUND) - if (BoehmGC_FIND_REQUIRED) - message(FATAL_ERROR "Could not find BoehmGC") - endif (BoehmGC_FIND_REQUIRED) - endif (BOEHMGC_FOUND) - - # show the BOEHMGC_INCLUDE_DIRS and BOEHMGC_LIBRARIES variables only in the advanced view - mark_as_advanced(BOEHMGC_INCLUDE_DIRS BOEHMGC_LIBRARIES) - -endif (BOEHMGC_LIBRARIES AND BOEHMGC_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindGSL.cmake b/CMakeScripts/FindGSL.cmake deleted file mode 100644 index 1ef4643ad..000000000 --- a/CMakeScripts/FindGSL.cmake +++ /dev/null @@ -1,89 +0,0 @@ -# - Try to find GSL -# Once done this will define -# -# GSL_FOUND - system has GSL -# GSL_INCLUDE_DIRS - the GSL include directory -# GSL_LIBRARIES - Link these to use GSL -# GSL_DEFINITIONS - Compiler switches required for using GSL -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (GSL_LIBRARIES AND GSL_INCLUDE_DIRS) - # in cache already - set(GSL_FOUND TRUE) -else (GSL_LIBRARIES AND GSL_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(gsl _GSL_INCLUDEDIR _GSL_LIBDIR _GSL_LDFLAGS _GSL_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_GSL gsl) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(GSL_INCLUDE_DIR - NAMES - gsl_blas.h - PATHS - ${_GSL_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - PATH_SUFFIXES - gsl - ) - - find_library(GSL_LIBRARY - NAMES - gsl - PATHS - ${_GSL_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (GSL_LIBRARY) - set(GSL_FOUND TRUE) - endif (GSL_LIBRARY) - - set(GSL_INCLUDE_DIRS - ${GSL_INCLUDE_DIR} - ) - - if (GSL_FOUND) - set(GSL_LIBRARIES - ${GSL_LIBRARIES} - ${GSL_LIBRARY} - ) - endif (GSL_FOUND) - - if (GSL_INCLUDE_DIRS AND GSL_LIBRARIES) - set(GSL_FOUND TRUE) - endif (GSL_INCLUDE_DIRS AND GSL_LIBRARIES) - - if (GSL_FOUND) - if (NOT GSL_FIND_QUIETLY) - message(STATUS "Found GSL: ${GSL_LIBRARIES}") - endif (NOT GSL_FIND_QUIETLY) - else (GSL_FOUND) - if (GSL_FIND_REQUIRED) - message(FATAL_ERROR "Could not find GSL") - endif (GSL_FIND_REQUIRED) - endif (GSL_FOUND) - - # show the GSL_INCLUDE_DIRS and GSL_LIBRARIES variables only in the advanced view - mark_as_advanced(GSL_INCLUDE_DIRS GSL_LIBRARIES) - -endif (GSL_LIBRARIES AND GSL_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindGTK2_patched.cmake b/CMakeScripts/FindGTK2_patched.cmake deleted file mode 100644 index 91249b787..000000000 --- a/CMakeScripts/FindGTK2_patched.cmake +++ /dev/null @@ -1,596 +0,0 @@ -# *NOTE*, this file include 1 line modification from 2.8.5's module -# this adds GTK2_CAIROMM_INCLUDE_DIR which we need! -# - ideasman42 -# ------------ - -# - FindGTK2.cmake -# This module can find the GTK2 widget libraries and several of its other -# optional components like gtkmm, glade, and glademm. -# -# NOTE: If you intend to use version checking, CMake 2.6.2 or later is -# required. -# -# Specify one or more of the following components -# as you call this find module. See example below. -# -# gtk -# gtkmm -# glade -# glademm -# -# The following variables will be defined for your use -# -# GTK2_FOUND - Were all of your specified components found? -# GTK2_INCLUDE_DIRS - All include directories -# GTK2_LIBRARIES - All libraries -# -# GTK2_VERSION - The version of GTK2 found (x.y.z) -# GTK2_MAJOR_VERSION - The major version of GTK2 -# GTK2_MINOR_VERSION - The minor version of GTK2 -# GTK2_PATCH_VERSION - The patch version of GTK2 -# -# Optional variables you can define prior to calling this module: -# -# GTK2_DEBUG - Enables verbose debugging of the module -# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced -# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to -# search for include files -# -#================= -# Example Usage: -# -# Call find_package() once, here are some examples to pick from: -# -# Require GTK 2.6 or later -# find_package(GTK2 2.6 REQUIRED gtk) -# -# Require GTK 2.10 or later and Glade -# find_package(GTK2 2.10 REQUIRED gtk glade) -# -# Search for GTK/GTKMM 2.8 or later -# find_package(GTK2 2.8 COMPONENTS gtk gtkmm) -# -# if(GTK2_FOUND) -# include_directories(${GTK2_INCLUDE_DIRS}) -# add_executable(mygui mygui.cc) -# target_link_libraries(mygui ${GTK2_LIBRARIES}) -# endif() -# - -#============================================================================= -# Copyright 2009 Kitware, Inc. -# Copyright 2008-2009 Philip Lowman -# -# 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.) - -# Version 1.3 (11/9/2010) (CMake 2.8.4) -# * 11429: Add support for detecting GTK2 built with Visual Studio 10. -# Thanks to Vincent Levesque for the patch. - -# Version 1.2 (8/30/2010) (CMake 2.8.3) -# * Merge patch for detecting gdk-pixbuf library (split off -# from core GTK in 2.21). Thanks to Vincent Untz for the patch -# and Ricardo Cruz for the heads up. -# Version 1.1 (8/19/2010) (CMake 2.8.3) -# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich) -# Version 1.0 (8/12/2010) (CMake 2.8.3) -# * Add support for detecting new pangommconfig.h header file -# (Thanks to Sune Vuorela & the Debian Project for the patch) -# * Add support for detecting fontconfig.h header -# * Call find_package(Freetype) since it's required -# * Add support for allowing users to add additional library directories -# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in -# case the GTK developers change versions on any of the directories in the -# future). -# Version 0.8 (1/4/2010) -# * Get module working under MacOSX fink by adding /sw/include, /sw/lib -# to PATHS and the gobject library -# Version 0.7 (3/22/09) -# * Checked into CMake CVS -# * Added versioning support -# * Module now defaults to searching for GTK if COMPONENTS not specified. -# * Added HKCU prior to HKLM registry key and GTKMM specific environment -# variable as per mailing list discussion. -# * Added lib64 to include search path and a few other search paths where GTK -# may be installed on Unix systems. -# * Switched to lowercase CMake commands -# * Prefaced internal variables with _GTK2 to prevent collision -# * Changed internal macros to functions -# * Enhanced documentation -# Version 0.6 (1/8/08) -# Added GTK2_SKIP_MARK_AS_ADVANCED option -# Version 0.5 (12/19/08) -# Second release to cmake mailing list - -#============================================================= -# _GTK2_GET_VERSION -# Internal function to parse the version number in gtkversion.h -# _OUT_major = Major version number -# _OUT_minor = Minor version number -# _OUT_micro = Micro version number -# _gtkversion_hdr = Header file to parse -#============================================================= -function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) - file(READ ${_gtkversion_hdr} _contents) - if(_contents) - string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}") - string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}") - string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}") - - if(NOT ${_OUT_major} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!") - endif() - if(NOT ${_OUT_minor} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!") - endif() - if(NOT ${_OUT_micro} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!") - endif() - - set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE) - set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE) - set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE) - else() - message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist") - endif() -endfunction() - -#============================================================= -# _GTK2_FIND_INCLUDE_DIR -# Internal function to find the GTK include directories -# _var = variable to set -# _hdr = header file to look for -#============================================================= -function(_GTK2_FIND_INCLUDE_DIR _var _hdr) - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") - endif() - - set(_relatives - # If these ever change, things will break. - ${GTK2_ADDITIONAL_SUFFIXES} - glibmm-2.4 - glib-2.0 - atk-1.0 - atkmm-1.6 - cairo - cairomm-1.0 - gdk-pixbuf-2.0 - gdkmm-2.4 - giomm-2.4 - gtk-2.0 - gtkmm-2.4 - libglade-2.0 - libglademm-2.4 - pango-1.0 - pangomm-1.4 - sigc++-2.0 - ) - - set(_suffixes) - foreach(_d ${_relatives}) - list(APPEND _suffixes ${_d}) - list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include - endforeach() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "include suffixes = ${_suffixes}") - endif() - - find_path(${_var} ${_hdr} - PATHS - /usr/local/lib64 - /usr/local/lib - /usr/lib64 - /usr/lib - /opt/gnome/include - /opt/gnome/lib - /opt/openwin/include - /usr/openwin/lib - /sw/include - /sw/lib - /opt/local/include - /opt/local/lib - $ENV{GTKMM_BASEPATH}/include - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - PATH_SUFFIXES - ${_suffixes} - ) - - if(${_var}) - set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}) - endif() - endif() - -endfunction(_GTK2_FIND_INCLUDE_DIR) - -#============================================================= -# _GTK2_FIND_LIBRARY -# Internal function to find libraries packaged with GTK2 -# _var = library variable to create -#============================================================= -function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") - endif() - - # Not GTK versions per se but the versions encoded into Windows - # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) - # Also the MSVC libraries use _ for . (this is handled below) - set(_versions 2.20 2.18 2.16 2.14 2.12 - 2.10 2.8 2.6 2.4 2.2 2.0 - 1.20 1.18 1.16 1.14 1.12 - 1.10 1.8 1.6 1.4 1.2 1.0) - - set(_library) - set(_library_d) - - set(_library ${_lib}) - - if(_expand_vc AND MSVC) - # Add vc80/vc90/vc100 midfixes - if(MSVC80) - set(_library ${_library}-vc80) - elseif(MSVC90) - set(_library ${_library}-vc90) - elseif(MSVC10) - set(_library ${_library}-vc100) - endif() - set(_library_d ${_library}-d) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "After midfix addition = ${_library} and ${_library_d}") - endif() - - set(_lib_list) - set(_libd_list) - if(_append_version) - foreach(_ver ${_versions}) - list(APPEND _lib_list "${_library}-${_ver}") - list(APPEND _libd_list "${_library_d}-${_ver}") - endforeach() - else() - set(_lib_list ${_library}) - set(_libd_list ${_library_d}) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "library list = ${_lib_list} and library debug list = ${_libd_list}") - endif() - - # For some silly reason the MSVC libraries use _ instead of . - # in the version fields - if(_expand_vc AND MSVC) - set(_no_dots_lib_list) - set(_no_dots_libd_list) - foreach(_l ${_lib_list}) - string(REPLACE "." "_" _no_dots_library ${_l}) - list(APPEND _no_dots_lib_list ${_no_dots_library}) - endforeach() - # And for debug - set(_no_dots_libsd_list) - foreach(_l ${_libd_list}) - string(REPLACE "." "_" _no_dots_libraryd ${_l}) - list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) - endforeach() - - # Copy list back to original names - set(_lib_list ${_no_dots_lib_list}) - set(_libd_list ${_no_dots_libd_list}) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "While searching for ${_var}, our proposed library list is ${_lib_list}") - endif() - - find_library(${_var} - NAMES ${_lib_list} - PATHS - /opt/gnome/lib - /opt/gnome/lib64 - /usr/openwin/lib - /usr/openwin/lib64 - /sw/lib - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - - if(_expand_vc AND MSVC) - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") - endif() - - find_library(${_var}_DEBUG - NAMES ${_libd_list} - PATHS - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - - if(${_var} AND ${_var}_DEBUG) - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}_DEBUG) - endif() - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} optimized ${${_var}} debug ${${_var}_DEBUG}) - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) - endif() - else() - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}) - endif() - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${${_var}}) - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) - # Set debug to release - set(${_var}_DEBUG ${${_var}}) - set(${_var}_DEBUG ${${_var}} PARENT_SCOPE) - endif() -endfunction(_GTK2_FIND_LIBRARY) - -#============================================================= - -# -# main() -# - -set(GTK2_FOUND) -set(GTK2_INCLUDE_DIRS) -set(GTK2_LIBRARIES) - -if(NOT GTK2_FIND_COMPONENTS) - # Assume they only want GTK - set(GTK2_FIND_COMPONENTS gtk) -endif() - -# -# If specified, enforce version number -# -if(GTK2_FIND_VERSION) - cmake_minimum_required(VERSION 2.6.2) - set(GTK2_FAILED_VERSION_CHECK true) - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "Searching for version ${GTK2_FIND_VERSION}") - endif() - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - if(GTK2_GTK_INCLUDE_DIR) - _GTK2_GET_VERSION(GTK2_MAJOR_VERSION - GTK2_MINOR_VERSION - GTK2_PATCH_VERSION - ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) - set(GTK2_VERSION - ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) - if(GTK2_FIND_VERSION_EXACT) - if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION) - set(GTK2_FAILED_VERSION_CHECK false) - endif() - else() - if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR - GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION) - set(GTK2_FAILED_VERSION_CHECK false) - endif() - endif() - else() - # If we can't find the GTK include dir, we can't do version checking - if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) - message(FATAL_ERROR "Could not find GTK2 include directory") - endif() - return() - endif() - - if(GTK2_FAILED_VERSION_CHECK) - if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) - if(GTK2_FIND_VERSION_EXACT) - message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.") - else() - message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required") - endif() - endif() - - # If the version check fails, exit out of the module here - return() - endif() -endif() - -# -# Find all components -# - -find_package(Freetype) -list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) -list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES}) - -foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) - if(_GTK2_component STREQUAL "gtk") - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h) - _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) - _GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - - if(UNIX) - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 false true) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 false true) - else() - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 false true) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 false true) - endif() - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) - _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo false false) - - _GTK2_FIND_INCLUDE_DIR(GTK2_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) - _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) - _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk false true) - - - elseif(_GTK2_component STREQUAL "gtkmm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) - _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) - _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm true true) - - elseif(_GTK2_component STREQUAL "glade") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) - _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade false true) - - elseif(_GTK2_component STREQUAL "glademm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm true true) - - else() - message(FATAL_ERROR "Unknown GTK2 component ${_component}") - endif() -endforeach() - -# -# Solve for the GTK2 version if we haven't already -# -if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR) - _GTK2_GET_VERSION(GTK2_MAJOR_VERSION - GTK2_MINOR_VERSION - GTK2_PATCH_VERSION - ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) - set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) -endif() - -# -# Try to enforce components -# - -set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND - -include(FindPackageHandleStandardArgs) - -foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) - string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER) - - if(_GTK2_component STREQUAL "gtk") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." - GTK2_GTK_LIBRARY - GTK2_GTK_INCLUDE_DIR - - GTK2_GLIB_INCLUDE_DIR - GTK2_GLIBCONFIG_INCLUDE_DIR - GTK2_GLIB_LIBRARY - - GTK2_GDK_INCLUDE_DIR - GTK2_GDKCONFIG_INCLUDE_DIR - GTK2_GDK_LIBRARY - ) - elseif(_GTK2_component STREQUAL "gtkmm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." - GTK2_GTKMM_LIBRARY - GTK2_GTKMM_INCLUDE_DIR - GTK2_GTKMMCONFIG_INCLUDE_DIR - - GTK2_GLIBMM_INCLUDE_DIR - GTK2_GLIBMMCONFIG_INCLUDE_DIR - GTK2_GLIBMM_LIBRARY - - GTK2_GDKMM_INCLUDE_DIR - GTK2_GDKMMCONFIG_INCLUDE_DIR - GTK2_GDKMM_LIBRARY - ) - elseif(_GTK2_component STREQUAL "glade") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." - GTK2_GLADE_LIBRARY - GTK2_GLADE_INCLUDE_DIR - ) - elseif(_GTK2_component STREQUAL "glademm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." - GTK2_GLADEMM_LIBRARY - GTK2_GLADEMM_INCLUDE_DIR - GTK2_GLADEMMCONFIG_INCLUDE_DIR - ) - endif() - - if(NOT GTK2_${_COMPONENT_UPPER}_FOUND) - set(_GTK2_did_we_find_everything false) - endif() -endforeach() - -if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) - set(GTK2_FOUND true) -else() - # Unset our variables. - set(GTK2_FOUND false) - set(GTK2_VERSION) - set(GTK2_VERSION_MAJOR) - set(GTK2_VERSION_MINOR) - set(GTK2_VERSION_PATCH) - set(GTK2_INCLUDE_DIRS) - set(GTK2_LIBRARIES) -endif() - -if(GTK2_INCLUDE_DIRS) - list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) -endif() - diff --git a/CMakeScripts/FindGnomeVFS2.cmake b/CMakeScripts/FindGnomeVFS2.cmake deleted file mode 100644 index d942addac..000000000 --- a/CMakeScripts/FindGnomeVFS2.cmake +++ /dev/null @@ -1,90 +0,0 @@ -# - Try to find GnomeVFS2 -# Once done this will define -# -# GNOMEVFS2_FOUND - system has GnomeVFS2 -# GNOMEVFS2_INCLUDE_DIRS - the GnomeVFS2 include directory -# GNOMEVFS2_LIBRARIES - Link these to use GnomeVFS2 -# GNOMEVFS2_DEFINITIONS - Compiler switches required for using GnomeVFS2 -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (GNOMEVFS2_LIBRARIES AND GNOMEVFS2_INCLUDE_DIRS) - # in cache already - set(GNOMEVFS2_FOUND TRUE) -else (GNOMEVFS2_LIBRARIES AND GNOMEVFS2_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(gnome-vfs-2.0 _GNOMEVFS2_INCLUDEDIR _GNOMEVFS2_LIBDIR _GNOMEVFS2_LDFLAGS _GNOMEVFS2_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_GNOMEVFS2 gnome-vfs-2.0) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(GNOMEVFS2_INCLUDE_DIR - NAMES - libgnomevfs/gnome-vfs.h - PATHS - ${_GNOMEVFS2_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - gnome-vfs-2.0 - ) - - find_library(GNOMEVFS-2_LIBRARY - NAMES - gnomevfs-2 - PATHS - ${_GNOMEVFS2_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (GNOMEVFS-2_LIBRARY) - set(GNOMEVFS-2_FOUND TRUE) - endif (GNOMEVFS-2_LIBRARY) - - set(GNOMEVFS2_INCLUDE_DIRS - ${GNOMEVFS2_INCLUDE_DIR} - ) - - if (GNOMEVFS-2_FOUND) - set(GNOMEVFS2_LIBRARIES - ${GNOMEVFS2_LIBRARIES} - ${GNOMEVFS-2_LIBRARY} - ) - endif (GNOMEVFS-2_FOUND) - - if (GNOMEVFS2_INCLUDE_DIRS AND GNOMEVFS2_LIBRARIES) - set(GNOMEVFS2_FOUND TRUE) - endif (GNOMEVFS2_INCLUDE_DIRS AND GNOMEVFS2_LIBRARIES) - - if (GNOMEVFS2_FOUND) - if (NOT GnomeVFS2_FIND_QUIETLY) - message(STATUS "Found GnomeVFS2: ${GNOMEVFS2_LIBRARIES}") - endif (NOT GnomeVFS2_FIND_QUIETLY) - else (GNOMEVFS2_FOUND) - if (GnomeVFS2_FIND_REQUIRED) - message(FATAL_ERROR "Could not find GnomeVFS2") - endif (GnomeVFS2_FIND_REQUIRED) - endif (GNOMEVFS2_FOUND) - - # show the GNOMEVFS2_INCLUDE_DIRS and GNOMEVFS2_LIBRARIES variables only in the advanced view - mark_as_advanced(GNOMEVFS2_INCLUDE_DIRS GNOMEVFS2_LIBRARIES) - -endif (GNOMEVFS2_LIBRARIES AND GNOMEVFS2_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindLCMS.cmake b/CMakeScripts/FindLCMS.cmake deleted file mode 100644 index a69d88a42..000000000 --- a/CMakeScripts/FindLCMS.cmake +++ /dev/null @@ -1,90 +0,0 @@ -# - Try to find LCMS -# Once done this will define -# -# LCMS_FOUND - system has LCMS -# LCMS_INCLUDE_DIRS - the LCMS include directory -# LCMS_LIBRARIES - Link these to use LCMS -# LCMS_DEFINITIONS - Compiler switches required for using LCMS -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (LCMS_LIBRARIES AND LCMS_INCLUDE_DIRS) - # in cache already - set(LCMS_FOUND TRUE) -else (LCMS_LIBRARIES AND LCMS_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(lcms _LCMS_INCLUDEDIR _LCMS_LIBDIR _LCMS_LDFLAGS _LCMS_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_LCMS lcms) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(LCMS_INCLUDE_DIR - NAMES - lcms.h - PATHS - ${_LCMS_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - lcms - ) - - find_library(LCMS_LIBRARY - NAMES - lcms - PATHS - ${_LCMS_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (LCMS_LIBRARY) - set(LCMS_FOUND TRUE) - endif (LCMS_LIBRARY) - - set(LCMS_INCLUDE_DIRS - ${LCMS_INCLUDE_DIR} - ) - - if (LCMS_FOUND) - set(LCMS_LIBRARIES - ${LCMS_LIBRARIES} - ${LCMS_LIBRARY} - ) - endif (LCMS_FOUND) - - if (LCMS_INCLUDE_DIRS AND LCMS_LIBRARIES) - set(LCMS_FOUND TRUE) - endif (LCMS_INCLUDE_DIRS AND LCMS_LIBRARIES) - - if (LCMS_FOUND) - if (NOT LCMS_FIND_QUIETLY) - message(STATUS "Found LCMS: ${LCMS_LIBRARIES}") - endif (NOT LCMS_FIND_QUIETLY) - else (LCMS_FOUND) - if (LCMS_FIND_REQUIRED) - message(FATAL_ERROR "Could not find LCMS") - endif (LCMS_FIND_REQUIRED) - endif (LCMS_FOUND) - - # show the LCMS_INCLUDE_DIRS and LCMS_LIBRARIES variables only in the advanced view - mark_as_advanced(LCMS_INCLUDE_DIRS LCMS_LIBRARIES) - -endif (LCMS_LIBRARIES AND LCMS_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindLibWPG.cmake b/CMakeScripts/FindLibWPG.cmake deleted file mode 100644 index 0d83cddee..000000000 --- a/CMakeScripts/FindLibWPG.cmake +++ /dev/null @@ -1,90 +0,0 @@ -# - Try to find LibWPG -# Once done this will define -# -# LIBWPG_FOUND - system has LibWPG -# LIBWPG_INCLUDE_DIRS - the LibWPG include directory -# LIBWPG_LIBRARIES - Link these to use LibWPG -# LIBWPG_DEFINITIONS - Compiler switches required for using LibWPG -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) - # in cache already - set(LIBWPG_FOUND TRUE) -else (LIBWPG_LIBRARIES AND LIBWPG_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(libwpg-0.1 _LIBWPG_INCLUDEDIR _LIBWPG_LIBDIR _LIBWPG_LDFLAGS _LIBWPG_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_LIBWPG libwpg-0.1) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(LIBWPG_INCLUDE_DIR - NAMES - libwpg/libwpg.h - PATHS - ${_LIBWPG_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - libwpg-0.1 - ) - - find_library(LIBWPG-0.1_LIBRARY - NAMES - wpg-0.1 - PATHS - ${_LIBWPG_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (LIBWPG-0.1_LIBRARY) - set(LIBWPG-0.1_FOUND TRUE) - endif (LIBWPG-0.1_LIBRARY) - - set(LIBWPG_INCLUDE_DIRS - ${LIBWPG_INCLUDE_DIR} - ) - - if (LIBWPG-0.1_FOUND) - set(LIBWPG_LIBRARIES - ${LIBWPG_LIBRARIES} - ${LIBWPG-0.1_LIBRARY} - ) - endif (LIBWPG-0.1_FOUND) - - if (LIBWPG_INCLUDE_DIRS AND LIBWPG_LIBRARIES) - set(LIBWPG_FOUND TRUE) - endif (LIBWPG_INCLUDE_DIRS AND LIBWPG_LIBRARIES) - - if (LIBWPG_FOUND) - if (NOT LibWPG_FIND_QUIETLY) - message(STATUS "Found LibWPG: ${LIBWPG_LIBRARIES}") - endif (NOT LibWPG_FIND_QUIETLY) - else (LIBWPG_FOUND) - if (LibWPG_FIND_REQUIRED) - message(FATAL_ERROR "Could not find LibWPG") - endif (LibWPG_FIND_REQUIRED) - endif (LIBWPG_FOUND) - - # show the LIBWPG_INCLUDE_DIRS and LIBWPG_LIBRARIES variables only in the advanced view - mark_as_advanced(LIBWPG_INCLUDE_DIRS LIBWPG_LIBRARIES) - -endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindPANGOMM.cmake b/CMakeScripts/FindPANGOMM.cmake deleted file mode 100644 index 953c49ef0..000000000 --- a/CMakeScripts/FindPANGOMM.cmake +++ /dev/null @@ -1,89 +0,0 @@ -# - Try to find PANGOMM -# Once done this will define -# -# PANGOMM_FOUND - system has PANGOMM -# PANGOMM_INCLUDE_DIRS - the PANGOMM include directory -# PANGOMM_LIBRARIES - Link these to use PANGOMM -# PANGOMM_DEFINITIONS - Compiler switches required for using PANGOMM -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (PANGOMM_LIBRARIES AND PANGOMM_INCLUDE_DIRS) - # in cache already - set(PANGOMM_FOUND TRUE) -else (PANGOMM_LIBRARIES AND PANGOMM_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(pangomm-1.4 _PANGOMM_INCLUDEDIR _PANGOMM_LIBDIR _PANGOMM_LDFLAGS _PANGOMM_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_PANGOMM pangomm-1.4) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(PANGOMM_INCLUDE_DIR - NAMES - pangomm.h - PATHS - ${_PANGOMM_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - PATH_SUFFIXES - pangomm-1.4 - ) - - find_library(PANGOMM-1.4_LIBRARY - NAMES - pangomm-1.4 - PATHS - ${_PANGOMM_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (PANGOMM-1.4_LIBRARY) - set(PANGOMM-1.4_FOUND TRUE) - endif (PANGOMM-1.4_LIBRARY) - - set(PANGOMM_INCLUDE_DIRS - ${PANGOMM_INCLUDE_DIR} - ) - - if (PANGOMM-1.4_FOUND) - set(PANGOMM_LIBRARIES - ${PANGOMM_LIBRARIES} - ${PANGOMM-1.4_LIBRARY} - ) - endif (PANGOMM-1.4_FOUND) - - if (PANGOMM_INCLUDE_DIRS AND PANGOMM_LIBRARIES) - set(PANGOMM_FOUND TRUE) - endif (PANGOMM_INCLUDE_DIRS AND PANGOMM_LIBRARIES) - - if (PANGOMM_FOUND) - if (NOT PANGOMM_FIND_QUIETLY) - message(STATUS "Found PANGOMM: ${PANGOMM_LIBRARIES}") - endif (NOT PANGOMM_FIND_QUIETLY) - else (PANGOMM_FOUND) - if (PANGOMM_FIND_REQUIRED) - message(FATAL_ERROR "Could not find PANGOMM") - endif (PANGOMM_FIND_REQUIRED) - endif (PANGOMM_FOUND) - - # show the PANGOMM_INCLUDE_DIRS and PANGOMM_LIBRARIES variables only in the advanced view - mark_as_advanced(PANGOMM_INCLUDE_DIRS PANGOMM_LIBRARIES) - -endif (PANGOMM_LIBRARIES AND PANGOMM_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindPopt.cmake b/CMakeScripts/FindPopt.cmake deleted file mode 100644 index e1368be75..000000000 --- a/CMakeScripts/FindPopt.cmake +++ /dev/null @@ -1,90 +0,0 @@ -# - Try to find Popt -# Once done this will define -# -# POPT_FOUND - system has Popt -# POPT_INCLUDE_DIRS - the Popt include directory -# POPT_LIBRARIES - Link these to use Popt -# POPT_DEFINITIONS - Compiler switches required for using Popt -# -# Copyright (c) 2008 Joshua L. Blocher -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (POPT_LIBRARIES AND POPT_INCLUDE_DIRS) - # in cache already - set(POPT_FOUND TRUE) -else (POPT_LIBRARIES AND POPT_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(popt _POPT_INCLUDEDIR _POPT_LIBDIR _POPT_LDFLAGS _POPT_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_POPT popt) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(POPT_INCLUDE_DIR - NAMES - popt.h - PATHS - ${_POPT_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - popt - ) - - find_library(POPT_LIBRARY - NAMES - popt - PATHS - ${_POPT_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (POPT_LIBRARY) - set(POPT_FOUND TRUE) - endif (POPT_LIBRARY) - - set(POPT_INCLUDE_DIRS - ${POPT_INCLUDE_DIR} - ) - - if (POPT_FOUND) - set(POPT_LIBRARIES - ${POPT_LIBRARIES} - ${POPT_LIBRARY} - ) - endif (POPT_FOUND) - - if (POPT_INCLUDE_DIRS AND POPT_LIBRARIES) - set(POPT_FOUND TRUE) - endif (POPT_INCLUDE_DIRS AND POPT_LIBRARIES) - - if (POPT_FOUND) - if (NOT Popt_FIND_QUIETLY) - message(STATUS "Found Popt: ${POPT_LIBRARIES}") - endif (NOT Popt_FIND_QUIETLY) - else (POPT_FOUND) - if (Popt_FIND_REQUIRED) - message(FATAL_ERROR "Could not find Popt") - endif (Popt_FIND_REQUIRED) - endif (POPT_FOUND) - - # show the POPT_INCLUDE_DIRS and POPT_LIBRARIES variables only in the advanced view - mark_as_advanced(POPT_INCLUDE_DIRS POPT_LIBRARIES) - -endif (POPT_LIBRARIES AND POPT_INCLUDE_DIRS) - diff --git a/CMakeScripts/FindPython.cmake b/CMakeScripts/FindPython.cmake deleted file mode 100644 index 1ac451541..000000000 --- a/CMakeScripts/FindPython.cmake +++ /dev/null @@ -1,13 +0,0 @@ -# figure out Python flags -FIND_PACKAGE(PythonInterp) -IF(PYTHONINTERP_FOUND) - EXEC_PROGRAM(${PYTHON_EXECUTABLE} - ARGS ${CMAKE_SOURCE_DIR}/makelib/python_config_var.py LIBS - OUTPUT_VARIABLE PYTHON_LINK_LIBRARIES ) - EXEC_PROGRAM(${PYTHON_EXECUTABLE} - ARGS ${CMAKE_SOURCE_DIR}/makelib/python_config_var.py LINKFORSTATIC - OUTPUT_VARIABLE PYTHON_LINKFORSTATIC ) -ELSE(PYTHONINTERP_FOUND) - SET(PYTHON_LINK_LIBRARIES "") - SET(PYTHON_LINKFORSTATIC "") -ENDIF(PYTHONINTERP_FOUND) diff --git a/CMakeScripts/FindSigC++.cmake b/CMakeScripts/FindSigC++.cmake deleted file mode 100644 index ed0abc545..000000000 --- a/CMakeScripts/FindSigC++.cmake +++ /dev/null @@ -1,106 +0,0 @@ -# - Try to find SIGC++ -# Once done this will define -# -# SIGC++_FOUND - system has SIGC++ -# SIGC++_INCLUDE_DIRS - the SIGC++ include directory -# SIGC++_LIBRARIES - Link these to use SIGC++ -# SIGC++_DEFINITIONS - Compiler switches required for using SIGC++ -# -# Copyright (c) 2008 Andreas Schneider -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) - # in cache already - set(SIGC++_FOUND TRUE) -else (SIGC++_LIBRARIES AND SIGC++_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(sigc++-2.0 _SIGC++_INCLUDEDIR _SIGC++_LIBDIR _SIGC++_LDFLAGS _SIGC++_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_SIGC++ sigc++-2.0) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - - find_path(SIGC++_INCLUDE_DIR - NAMES - sigc++/sigc++.h - PATHS - ${_SIGC++_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - PATH_SUFFIXES - sigc++-2.0 - ) - - find_path(SIGC++_CONFIG_INCLUDE_DIR - NAMES - sigc++config.h - PATHS - ${_SIGC++_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /opt/local/lib/sigc++-2.0/include - /sw/include - /usr/lib/sigc++-2.0/include - /usr/lib64/sigc++-2.0/include - ) - - find_library(SIGC-2.0_LIBRARY - NAMES - sigc-2.0 - PATHS - ${_SIGC++_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (SIGC-2.0_LIBRARY) - set(SIGC-2.0_FOUND TRUE) - endif (SIGC-2.0_LIBRARY) - - set(SIGC++_INCLUDE_DIRS - ${SIGC++_INCLUDE_DIR} - ${SIGC++_CONFIG_INCLUDE_DIR} - ) - - if (SIGC-2.0_FOUND) - set(SIGC++_LIBRARIES - ${SIGC++_LIBRARIES} - ${SIGC-2.0_LIBRARY} - ) - endif (SIGC-2.0_FOUND) - - if (SIGC++_INCLUDE_DIRS AND SIGC++_LIBRARIES) - set(SIGC++_FOUND TRUE) - endif (SIGC++_INCLUDE_DIRS AND SIGC++_LIBRARIES) - - if (SIGC++_FOUND) - if (NOT SIGC++_FIND_QUIETLY) - message(STATUS "Found SIGC++: ${SIGC++_LIBRARIES}") - endif (NOT SIGC++_FIND_QUIETLY) - else (SIGC++_FOUND) - if (SIGC++_FIND_REQUIRED) - message(FATAL_ERROR "Could not find SIGC++") - endif (SIGC++_FIND_REQUIRED) - endif (SIGC++_FOUND) - - # show the SIGC++_INCLUDE_DIRS and SIGC++_LIBRARIES variables only in the advanced view - mark_as_advanced(SIGC++_INCLUDE_DIRS SIGC++_LIBRARIES) - -endif (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) - - diff --git a/CMakeScripts/Modules/FindBoehmGC.cmake b/CMakeScripts/Modules/FindBoehmGC.cmake new file mode 100644 index 000000000..7a5081c22 --- /dev/null +++ b/CMakeScripts/Modules/FindBoehmGC.cmake @@ -0,0 +1,77 @@ +# - Try to find BoehmGC +# Once done this will define +# +# BOEHMGC_FOUND - system has BoehmGC +# BOEHMGC_INCLUDE_DIRS - the BoehmGC include directory +# BOEHMGC_LIBRARIES - Link these to use BoehmGC +# BOEHMGC_DEFINITIONS - Compiler switches required for using BoehmGC +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (BOEHMGC_LIBRARIES AND BOEHMGC_INCLUDE_DIRS) + # in cache already + set(BOEHMGC_FOUND TRUE) +else (BOEHMGC_LIBRARIES AND BOEHMGC_INCLUDE_DIRS) + find_path(BOEHMGC_INCLUDE_DIR + NAMES + gc.h + PATHS + /usr/include + /usr/local/include + /opt/local/include + /sw/include + $ENV{DEVLIBS_PATH}//include// + PATH_SUFFIXES + gc + ) + + find_library(GC_LIBRARY + NAMES + gc + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (GC_LIBRARY) + set(GC_FOUND TRUE) + endif (GC_LIBRARY) + + set(BOEHMGC_INCLUDE_DIRS + ${BOEHMGC_INCLUDE_DIR} + ) + + if (GC_FOUND) + set(BOEHMGC_LIBRARIES + ${BOEHMGC_LIBRARIES} + ${GC_LIBRARY} + ) + endif (GC_FOUND) + + if (BOEHMGC_INCLUDE_DIRS AND BOEHMGC_LIBRARIES) + set(BOEHMGC_FOUND TRUE) + endif (BOEHMGC_INCLUDE_DIRS AND BOEHMGC_LIBRARIES) + + if (BOEHMGC_FOUND) + if (NOT BoehmGC_FIND_QUIETLY) + message(STATUS "Found BoehmGC: ${BOEHMGC_LIBRARIES}") + endif (NOT BoehmGC_FIND_QUIETLY) + else (BOEHMGC_FOUND) + if (BoehmGC_FIND_REQUIRED) + message(FATAL_ERROR "Could not find BoehmGC") + endif (BoehmGC_FIND_REQUIRED) + endif (BOEHMGC_FOUND) + + # show the BOEHMGC_INCLUDE_DIRS and BOEHMGC_LIBRARIES variables only in the advanced view + mark_as_advanced(BOEHMGC_INCLUDE_DIRS BOEHMGC_LIBRARIES) + +endif (BOEHMGC_LIBRARIES AND BOEHMGC_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindGSL.cmake b/CMakeScripts/Modules/FindGSL.cmake new file mode 100644 index 000000000..1ef4643ad --- /dev/null +++ b/CMakeScripts/Modules/FindGSL.cmake @@ -0,0 +1,89 @@ +# - Try to find GSL +# Once done this will define +# +# GSL_FOUND - system has GSL +# GSL_INCLUDE_DIRS - the GSL include directory +# GSL_LIBRARIES - Link these to use GSL +# GSL_DEFINITIONS - Compiler switches required for using GSL +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (GSL_LIBRARIES AND GSL_INCLUDE_DIRS) + # in cache already + set(GSL_FOUND TRUE) +else (GSL_LIBRARIES AND GSL_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(gsl _GSL_INCLUDEDIR _GSL_LIBDIR _GSL_LDFLAGS _GSL_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_GSL gsl) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(GSL_INCLUDE_DIR + NAMES + gsl_blas.h + PATHS + ${_GSL_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + PATH_SUFFIXES + gsl + ) + + find_library(GSL_LIBRARY + NAMES + gsl + PATHS + ${_GSL_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (GSL_LIBRARY) + set(GSL_FOUND TRUE) + endif (GSL_LIBRARY) + + set(GSL_INCLUDE_DIRS + ${GSL_INCLUDE_DIR} + ) + + if (GSL_FOUND) + set(GSL_LIBRARIES + ${GSL_LIBRARIES} + ${GSL_LIBRARY} + ) + endif (GSL_FOUND) + + if (GSL_INCLUDE_DIRS AND GSL_LIBRARIES) + set(GSL_FOUND TRUE) + endif (GSL_INCLUDE_DIRS AND GSL_LIBRARIES) + + if (GSL_FOUND) + if (NOT GSL_FIND_QUIETLY) + message(STATUS "Found GSL: ${GSL_LIBRARIES}") + endif (NOT GSL_FIND_QUIETLY) + else (GSL_FOUND) + if (GSL_FIND_REQUIRED) + message(FATAL_ERROR "Could not find GSL") + endif (GSL_FIND_REQUIRED) + endif (GSL_FOUND) + + # show the GSL_INCLUDE_DIRS and GSL_LIBRARIES variables only in the advanced view + mark_as_advanced(GSL_INCLUDE_DIRS GSL_LIBRARIES) + +endif (GSL_LIBRARIES AND GSL_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindGTK2_patched.cmake b/CMakeScripts/Modules/FindGTK2_patched.cmake new file mode 100644 index 000000000..91249b787 --- /dev/null +++ b/CMakeScripts/Modules/FindGTK2_patched.cmake @@ -0,0 +1,596 @@ +# *NOTE*, this file include 1 line modification from 2.8.5's module +# this adds GTK2_CAIROMM_INCLUDE_DIR which we need! +# - ideasman42 +# ------------ + +# - FindGTK2.cmake +# This module can find the GTK2 widget libraries and several of its other +# optional components like gtkmm, glade, and glademm. +# +# NOTE: If you intend to use version checking, CMake 2.6.2 or later is +# required. +# +# Specify one or more of the following components +# as you call this find module. See example below. +# +# gtk +# gtkmm +# glade +# glademm +# +# The following variables will be defined for your use +# +# GTK2_FOUND - Were all of your specified components found? +# GTK2_INCLUDE_DIRS - All include directories +# GTK2_LIBRARIES - All libraries +# +# GTK2_VERSION - The version of GTK2 found (x.y.z) +# GTK2_MAJOR_VERSION - The major version of GTK2 +# GTK2_MINOR_VERSION - The minor version of GTK2 +# GTK2_PATCH_VERSION - The patch version of GTK2 +# +# Optional variables you can define prior to calling this module: +# +# GTK2_DEBUG - Enables verbose debugging of the module +# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced +# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to +# search for include files +# +#================= +# Example Usage: +# +# Call find_package() once, here are some examples to pick from: +# +# Require GTK 2.6 or later +# find_package(GTK2 2.6 REQUIRED gtk) +# +# Require GTK 2.10 or later and Glade +# find_package(GTK2 2.10 REQUIRED gtk glade) +# +# Search for GTK/GTKMM 2.8 or later +# find_package(GTK2 2.8 COMPONENTS gtk gtkmm) +# +# if(GTK2_FOUND) +# include_directories(${GTK2_INCLUDE_DIRS}) +# add_executable(mygui mygui.cc) +# target_link_libraries(mygui ${GTK2_LIBRARIES}) +# endif() +# + +#============================================================================= +# Copyright 2009 Kitware, Inc. +# Copyright 2008-2009 Philip Lowman +# +# 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.) + +# Version 1.3 (11/9/2010) (CMake 2.8.4) +# * 11429: Add support for detecting GTK2 built with Visual Studio 10. +# Thanks to Vincent Levesque for the patch. + +# Version 1.2 (8/30/2010) (CMake 2.8.3) +# * Merge patch for detecting gdk-pixbuf library (split off +# from core GTK in 2.21). Thanks to Vincent Untz for the patch +# and Ricardo Cruz for the heads up. +# Version 1.1 (8/19/2010) (CMake 2.8.3) +# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich) +# Version 1.0 (8/12/2010) (CMake 2.8.3) +# * Add support for detecting new pangommconfig.h header file +# (Thanks to Sune Vuorela & the Debian Project for the patch) +# * Add support for detecting fontconfig.h header +# * Call find_package(Freetype) since it's required +# * Add support for allowing users to add additional library directories +# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in +# case the GTK developers change versions on any of the directories in the +# future). +# Version 0.8 (1/4/2010) +# * Get module working under MacOSX fink by adding /sw/include, /sw/lib +# to PATHS and the gobject library +# Version 0.7 (3/22/09) +# * Checked into CMake CVS +# * Added versioning support +# * Module now defaults to searching for GTK if COMPONENTS not specified. +# * Added HKCU prior to HKLM registry key and GTKMM specific environment +# variable as per mailing list discussion. +# * Added lib64 to include search path and a few other search paths where GTK +# may be installed on Unix systems. +# * Switched to lowercase CMake commands +# * Prefaced internal variables with _GTK2 to prevent collision +# * Changed internal macros to functions +# * Enhanced documentation +# Version 0.6 (1/8/08) +# Added GTK2_SKIP_MARK_AS_ADVANCED option +# Version 0.5 (12/19/08) +# Second release to cmake mailing list + +#============================================================= +# _GTK2_GET_VERSION +# Internal function to parse the version number in gtkversion.h +# _OUT_major = Major version number +# _OUT_minor = Minor version number +# _OUT_micro = Micro version number +# _gtkversion_hdr = Header file to parse +#============================================================= +function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) + file(READ ${_gtkversion_hdr} _contents) + if(_contents) + string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}") + string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}") + string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}") + + if(NOT ${_OUT_major} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!") + endif() + if(NOT ${_OUT_minor} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!") + endif() + if(NOT ${_OUT_micro} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!") + endif() + + set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE) + set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE) + set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE) + else() + message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist") + endif() +endfunction() + +#============================================================= +# _GTK2_FIND_INCLUDE_DIR +# Internal function to find the GTK include directories +# _var = variable to set +# _hdr = header file to look for +#============================================================= +function(_GTK2_FIND_INCLUDE_DIR _var _hdr) + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") + endif() + + set(_relatives + # If these ever change, things will break. + ${GTK2_ADDITIONAL_SUFFIXES} + glibmm-2.4 + glib-2.0 + atk-1.0 + atkmm-1.6 + cairo + cairomm-1.0 + gdk-pixbuf-2.0 + gdkmm-2.4 + giomm-2.4 + gtk-2.0 + gtkmm-2.4 + libglade-2.0 + libglademm-2.4 + pango-1.0 + pangomm-1.4 + sigc++-2.0 + ) + + set(_suffixes) + foreach(_d ${_relatives}) + list(APPEND _suffixes ${_d}) + list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include + endforeach() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "include suffixes = ${_suffixes}") + endif() + + find_path(${_var} ${_hdr} + PATHS + /usr/local/lib64 + /usr/local/lib + /usr/lib64 + /usr/lib + /opt/gnome/include + /opt/gnome/lib + /opt/openwin/include + /usr/openwin/lib + /sw/include + /sw/lib + /opt/local/include + /opt/local/lib + $ENV{GTKMM_BASEPATH}/include + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + PATH_SUFFIXES + ${_suffixes} + ) + + if(${_var}) + set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}) + endif() + endif() + +endfunction(_GTK2_FIND_INCLUDE_DIR) + +#============================================================= +# _GTK2_FIND_LIBRARY +# Internal function to find libraries packaged with GTK2 +# _var = library variable to create +#============================================================= +function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") + endif() + + # Not GTK versions per se but the versions encoded into Windows + # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) + # Also the MSVC libraries use _ for . (this is handled below) + set(_versions 2.20 2.18 2.16 2.14 2.12 + 2.10 2.8 2.6 2.4 2.2 2.0 + 1.20 1.18 1.16 1.14 1.12 + 1.10 1.8 1.6 1.4 1.2 1.0) + + set(_library) + set(_library_d) + + set(_library ${_lib}) + + if(_expand_vc AND MSVC) + # Add vc80/vc90/vc100 midfixes + if(MSVC80) + set(_library ${_library}-vc80) + elseif(MSVC90) + set(_library ${_library}-vc90) + elseif(MSVC10) + set(_library ${_library}-vc100) + endif() + set(_library_d ${_library}-d) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "After midfix addition = ${_library} and ${_library_d}") + endif() + + set(_lib_list) + set(_libd_list) + if(_append_version) + foreach(_ver ${_versions}) + list(APPEND _lib_list "${_library}-${_ver}") + list(APPEND _libd_list "${_library_d}-${_ver}") + endforeach() + else() + set(_lib_list ${_library}) + set(_libd_list ${_library_d}) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "library list = ${_lib_list} and library debug list = ${_libd_list}") + endif() + + # For some silly reason the MSVC libraries use _ instead of . + # in the version fields + if(_expand_vc AND MSVC) + set(_no_dots_lib_list) + set(_no_dots_libd_list) + foreach(_l ${_lib_list}) + string(REPLACE "." "_" _no_dots_library ${_l}) + list(APPEND _no_dots_lib_list ${_no_dots_library}) + endforeach() + # And for debug + set(_no_dots_libsd_list) + foreach(_l ${_libd_list}) + string(REPLACE "." "_" _no_dots_libraryd ${_l}) + list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) + endforeach() + + # Copy list back to original names + set(_lib_list ${_no_dots_lib_list}) + set(_libd_list ${_no_dots_libd_list}) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "While searching for ${_var}, our proposed library list is ${_lib_list}") + endif() + + find_library(${_var} + NAMES ${_lib_list} + PATHS + /opt/gnome/lib + /opt/gnome/lib64 + /usr/openwin/lib + /usr/openwin/lib64 + /sw/lib + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + ) + + if(_expand_vc AND MSVC) + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") + endif() + + find_library(${_var}_DEBUG + NAMES ${_libd_list} + PATHS + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + ) + + if(${_var} AND ${_var}_DEBUG) + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}_DEBUG) + endif() + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} optimized ${${_var}} debug ${${_var}_DEBUG}) + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) + endif() + else() + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}) + endif() + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${${_var}}) + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) + # Set debug to release + set(${_var}_DEBUG ${${_var}}) + set(${_var}_DEBUG ${${_var}} PARENT_SCOPE) + endif() +endfunction(_GTK2_FIND_LIBRARY) + +#============================================================= + +# +# main() +# + +set(GTK2_FOUND) +set(GTK2_INCLUDE_DIRS) +set(GTK2_LIBRARIES) + +if(NOT GTK2_FIND_COMPONENTS) + # Assume they only want GTK + set(GTK2_FIND_COMPONENTS gtk) +endif() + +# +# If specified, enforce version number +# +if(GTK2_FIND_VERSION) + cmake_minimum_required(VERSION 2.6.2) + set(GTK2_FAILED_VERSION_CHECK true) + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "Searching for version ${GTK2_FIND_VERSION}") + endif() + _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) + if(GTK2_GTK_INCLUDE_DIR) + _GTK2_GET_VERSION(GTK2_MAJOR_VERSION + GTK2_MINOR_VERSION + GTK2_PATCH_VERSION + ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) + set(GTK2_VERSION + ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) + if(GTK2_FIND_VERSION_EXACT) + if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION) + set(GTK2_FAILED_VERSION_CHECK false) + endif() + else() + if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR + GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION) + set(GTK2_FAILED_VERSION_CHECK false) + endif() + endif() + else() + # If we can't find the GTK include dir, we can't do version checking + if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) + message(FATAL_ERROR "Could not find GTK2 include directory") + endif() + return() + endif() + + if(GTK2_FAILED_VERSION_CHECK) + if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) + if(GTK2_FIND_VERSION_EXACT) + message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.") + else() + message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required") + endif() + endif() + + # If the version check fails, exit out of the module here + return() + endif() +endif() + +# +# Find all components +# + +find_package(Freetype) +list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) +list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES}) + +foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) + if(_GTK2_component STREQUAL "gtk") + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h) + _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) + _GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) + + if(UNIX) + _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 false true) + _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 false true) + else() + _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 false true) + _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 false true) + endif() + + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) + _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo false false) + + _GTK2_FIND_INCLUDE_DIR(GTK2_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) + + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) + _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) + _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk false true) + + + elseif(_GTK2_component STREQUAL "gtkmm") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) + _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) + _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm true true) + + elseif(_GTK2_component STREQUAL "glade") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) + _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade false true) + + elseif(_GTK2_component STREQUAL "glademm") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm true true) + + else() + message(FATAL_ERROR "Unknown GTK2 component ${_component}") + endif() +endforeach() + +# +# Solve for the GTK2 version if we haven't already +# +if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR) + _GTK2_GET_VERSION(GTK2_MAJOR_VERSION + GTK2_MINOR_VERSION + GTK2_PATCH_VERSION + ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) + set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) +endif() + +# +# Try to enforce components +# + +set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND + +include(FindPackageHandleStandardArgs) + +foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) + string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER) + + if(_GTK2_component STREQUAL "gtk") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." + GTK2_GTK_LIBRARY + GTK2_GTK_INCLUDE_DIR + + GTK2_GLIB_INCLUDE_DIR + GTK2_GLIBCONFIG_INCLUDE_DIR + GTK2_GLIB_LIBRARY + + GTK2_GDK_INCLUDE_DIR + GTK2_GDKCONFIG_INCLUDE_DIR + GTK2_GDK_LIBRARY + ) + elseif(_GTK2_component STREQUAL "gtkmm") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." + GTK2_GTKMM_LIBRARY + GTK2_GTKMM_INCLUDE_DIR + GTK2_GTKMMCONFIG_INCLUDE_DIR + + GTK2_GLIBMM_INCLUDE_DIR + GTK2_GLIBMMCONFIG_INCLUDE_DIR + GTK2_GLIBMM_LIBRARY + + GTK2_GDKMM_INCLUDE_DIR + GTK2_GDKMMCONFIG_INCLUDE_DIR + GTK2_GDKMM_LIBRARY + ) + elseif(_GTK2_component STREQUAL "glade") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." + GTK2_GLADE_LIBRARY + GTK2_GLADE_INCLUDE_DIR + ) + elseif(_GTK2_component STREQUAL "glademm") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." + GTK2_GLADEMM_LIBRARY + GTK2_GLADEMM_INCLUDE_DIR + GTK2_GLADEMMCONFIG_INCLUDE_DIR + ) + endif() + + if(NOT GTK2_${_COMPONENT_UPPER}_FOUND) + set(_GTK2_did_we_find_everything false) + endif() +endforeach() + +if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) + set(GTK2_FOUND true) +else() + # Unset our variables. + set(GTK2_FOUND false) + set(GTK2_VERSION) + set(GTK2_VERSION_MAJOR) + set(GTK2_VERSION_MINOR) + set(GTK2_VERSION_PATCH) + set(GTK2_INCLUDE_DIRS) + set(GTK2_LIBRARIES) +endif() + +if(GTK2_INCLUDE_DIRS) + list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) +endif() + diff --git a/CMakeScripts/Modules/FindGnomeVFS2.cmake b/CMakeScripts/Modules/FindGnomeVFS2.cmake new file mode 100644 index 000000000..d942addac --- /dev/null +++ b/CMakeScripts/Modules/FindGnomeVFS2.cmake @@ -0,0 +1,90 @@ +# - Try to find GnomeVFS2 +# Once done this will define +# +# GNOMEVFS2_FOUND - system has GnomeVFS2 +# GNOMEVFS2_INCLUDE_DIRS - the GnomeVFS2 include directory +# GNOMEVFS2_LIBRARIES - Link these to use GnomeVFS2 +# GNOMEVFS2_DEFINITIONS - Compiler switches required for using GnomeVFS2 +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (GNOMEVFS2_LIBRARIES AND GNOMEVFS2_INCLUDE_DIRS) + # in cache already + set(GNOMEVFS2_FOUND TRUE) +else (GNOMEVFS2_LIBRARIES AND GNOMEVFS2_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(gnome-vfs-2.0 _GNOMEVFS2_INCLUDEDIR _GNOMEVFS2_LIBDIR _GNOMEVFS2_LDFLAGS _GNOMEVFS2_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_GNOMEVFS2 gnome-vfs-2.0) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(GNOMEVFS2_INCLUDE_DIR + NAMES + libgnomevfs/gnome-vfs.h + PATHS + ${_GNOMEVFS2_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + $ENV{DEVLIBS_PATH}//include// + PATH_SUFFIXES + gnome-vfs-2.0 + ) + + find_library(GNOMEVFS-2_LIBRARY + NAMES + gnomevfs-2 + PATHS + ${_GNOMEVFS2_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (GNOMEVFS-2_LIBRARY) + set(GNOMEVFS-2_FOUND TRUE) + endif (GNOMEVFS-2_LIBRARY) + + set(GNOMEVFS2_INCLUDE_DIRS + ${GNOMEVFS2_INCLUDE_DIR} + ) + + if (GNOMEVFS-2_FOUND) + set(GNOMEVFS2_LIBRARIES + ${GNOMEVFS2_LIBRARIES} + ${GNOMEVFS-2_LIBRARY} + ) + endif (GNOMEVFS-2_FOUND) + + if (GNOMEVFS2_INCLUDE_DIRS AND GNOMEVFS2_LIBRARIES) + set(GNOMEVFS2_FOUND TRUE) + endif (GNOMEVFS2_INCLUDE_DIRS AND GNOMEVFS2_LIBRARIES) + + if (GNOMEVFS2_FOUND) + if (NOT GnomeVFS2_FIND_QUIETLY) + message(STATUS "Found GnomeVFS2: ${GNOMEVFS2_LIBRARIES}") + endif (NOT GnomeVFS2_FIND_QUIETLY) + else (GNOMEVFS2_FOUND) + if (GnomeVFS2_FIND_REQUIRED) + message(FATAL_ERROR "Could not find GnomeVFS2") + endif (GnomeVFS2_FIND_REQUIRED) + endif (GNOMEVFS2_FOUND) + + # show the GNOMEVFS2_INCLUDE_DIRS and GNOMEVFS2_LIBRARIES variables only in the advanced view + mark_as_advanced(GNOMEVFS2_INCLUDE_DIRS GNOMEVFS2_LIBRARIES) + +endif (GNOMEVFS2_LIBRARIES AND GNOMEVFS2_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLCMS.cmake b/CMakeScripts/Modules/FindLCMS.cmake new file mode 100644 index 000000000..a69d88a42 --- /dev/null +++ b/CMakeScripts/Modules/FindLCMS.cmake @@ -0,0 +1,90 @@ +# - Try to find LCMS +# Once done this will define +# +# LCMS_FOUND - system has LCMS +# LCMS_INCLUDE_DIRS - the LCMS include directory +# LCMS_LIBRARIES - Link these to use LCMS +# LCMS_DEFINITIONS - Compiler switches required for using LCMS +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (LCMS_LIBRARIES AND LCMS_INCLUDE_DIRS) + # in cache already + set(LCMS_FOUND TRUE) +else (LCMS_LIBRARIES AND LCMS_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(lcms _LCMS_INCLUDEDIR _LCMS_LIBDIR _LCMS_LDFLAGS _LCMS_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_LCMS lcms) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(LCMS_INCLUDE_DIR + NAMES + lcms.h + PATHS + ${_LCMS_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + $ENV{DEVLIBS_PATH}//include// + PATH_SUFFIXES + lcms + ) + + find_library(LCMS_LIBRARY + NAMES + lcms + PATHS + ${_LCMS_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (LCMS_LIBRARY) + set(LCMS_FOUND TRUE) + endif (LCMS_LIBRARY) + + set(LCMS_INCLUDE_DIRS + ${LCMS_INCLUDE_DIR} + ) + + if (LCMS_FOUND) + set(LCMS_LIBRARIES + ${LCMS_LIBRARIES} + ${LCMS_LIBRARY} + ) + endif (LCMS_FOUND) + + if (LCMS_INCLUDE_DIRS AND LCMS_LIBRARIES) + set(LCMS_FOUND TRUE) + endif (LCMS_INCLUDE_DIRS AND LCMS_LIBRARIES) + + if (LCMS_FOUND) + if (NOT LCMS_FIND_QUIETLY) + message(STATUS "Found LCMS: ${LCMS_LIBRARIES}") + endif (NOT LCMS_FIND_QUIETLY) + else (LCMS_FOUND) + if (LCMS_FIND_REQUIRED) + message(FATAL_ERROR "Could not find LCMS") + endif (LCMS_FIND_REQUIRED) + endif (LCMS_FOUND) + + # show the LCMS_INCLUDE_DIRS and LCMS_LIBRARIES variables only in the advanced view + mark_as_advanced(LCMS_INCLUDE_DIRS LCMS_LIBRARIES) + +endif (LCMS_LIBRARIES AND LCMS_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake new file mode 100644 index 000000000..0d83cddee --- /dev/null +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -0,0 +1,90 @@ +# - Try to find LibWPG +# Once done this will define +# +# LIBWPG_FOUND - system has LibWPG +# LIBWPG_INCLUDE_DIRS - the LibWPG include directory +# LIBWPG_LIBRARIES - Link these to use LibWPG +# LIBWPG_DEFINITIONS - Compiler switches required for using LibWPG +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) + # in cache already + set(LIBWPG_FOUND TRUE) +else (LIBWPG_LIBRARIES AND LIBWPG_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(libwpg-0.1 _LIBWPG_INCLUDEDIR _LIBWPG_LIBDIR _LIBWPG_LDFLAGS _LIBWPG_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_LIBWPG libwpg-0.1) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(LIBWPG_INCLUDE_DIR + NAMES + libwpg/libwpg.h + PATHS + ${_LIBWPG_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + $ENV{DEVLIBS_PATH}//include// + PATH_SUFFIXES + libwpg-0.1 + ) + + find_library(LIBWPG-0.1_LIBRARY + NAMES + wpg-0.1 + PATHS + ${_LIBWPG_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (LIBWPG-0.1_LIBRARY) + set(LIBWPG-0.1_FOUND TRUE) + endif (LIBWPG-0.1_LIBRARY) + + set(LIBWPG_INCLUDE_DIRS + ${LIBWPG_INCLUDE_DIR} + ) + + if (LIBWPG-0.1_FOUND) + set(LIBWPG_LIBRARIES + ${LIBWPG_LIBRARIES} + ${LIBWPG-0.1_LIBRARY} + ) + endif (LIBWPG-0.1_FOUND) + + if (LIBWPG_INCLUDE_DIRS AND LIBWPG_LIBRARIES) + set(LIBWPG_FOUND TRUE) + endif (LIBWPG_INCLUDE_DIRS AND LIBWPG_LIBRARIES) + + if (LIBWPG_FOUND) + if (NOT LibWPG_FIND_QUIETLY) + message(STATUS "Found LibWPG: ${LIBWPG_LIBRARIES}") + endif (NOT LibWPG_FIND_QUIETLY) + else (LIBWPG_FOUND) + if (LibWPG_FIND_REQUIRED) + message(FATAL_ERROR "Could not find LibWPG") + endif (LibWPG_FIND_REQUIRED) + endif (LIBWPG_FOUND) + + # show the LIBWPG_INCLUDE_DIRS and LIBWPG_LIBRARIES variables only in the advanced view + mark_as_advanced(LIBWPG_INCLUDE_DIRS LIBWPG_LIBRARIES) + +endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindPANGOMM.cmake b/CMakeScripts/Modules/FindPANGOMM.cmake new file mode 100644 index 000000000..953c49ef0 --- /dev/null +++ b/CMakeScripts/Modules/FindPANGOMM.cmake @@ -0,0 +1,89 @@ +# - Try to find PANGOMM +# Once done this will define +# +# PANGOMM_FOUND - system has PANGOMM +# PANGOMM_INCLUDE_DIRS - the PANGOMM include directory +# PANGOMM_LIBRARIES - Link these to use PANGOMM +# PANGOMM_DEFINITIONS - Compiler switches required for using PANGOMM +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (PANGOMM_LIBRARIES AND PANGOMM_INCLUDE_DIRS) + # in cache already + set(PANGOMM_FOUND TRUE) +else (PANGOMM_LIBRARIES AND PANGOMM_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(pangomm-1.4 _PANGOMM_INCLUDEDIR _PANGOMM_LIBDIR _PANGOMM_LDFLAGS _PANGOMM_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_PANGOMM pangomm-1.4) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(PANGOMM_INCLUDE_DIR + NAMES + pangomm.h + PATHS + ${_PANGOMM_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + PATH_SUFFIXES + pangomm-1.4 + ) + + find_library(PANGOMM-1.4_LIBRARY + NAMES + pangomm-1.4 + PATHS + ${_PANGOMM_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (PANGOMM-1.4_LIBRARY) + set(PANGOMM-1.4_FOUND TRUE) + endif (PANGOMM-1.4_LIBRARY) + + set(PANGOMM_INCLUDE_DIRS + ${PANGOMM_INCLUDE_DIR} + ) + + if (PANGOMM-1.4_FOUND) + set(PANGOMM_LIBRARIES + ${PANGOMM_LIBRARIES} + ${PANGOMM-1.4_LIBRARY} + ) + endif (PANGOMM-1.4_FOUND) + + if (PANGOMM_INCLUDE_DIRS AND PANGOMM_LIBRARIES) + set(PANGOMM_FOUND TRUE) + endif (PANGOMM_INCLUDE_DIRS AND PANGOMM_LIBRARIES) + + if (PANGOMM_FOUND) + if (NOT PANGOMM_FIND_QUIETLY) + message(STATUS "Found PANGOMM: ${PANGOMM_LIBRARIES}") + endif (NOT PANGOMM_FIND_QUIETLY) + else (PANGOMM_FOUND) + if (PANGOMM_FIND_REQUIRED) + message(FATAL_ERROR "Could not find PANGOMM") + endif (PANGOMM_FIND_REQUIRED) + endif (PANGOMM_FOUND) + + # show the PANGOMM_INCLUDE_DIRS and PANGOMM_LIBRARIES variables only in the advanced view + mark_as_advanced(PANGOMM_INCLUDE_DIRS PANGOMM_LIBRARIES) + +endif (PANGOMM_LIBRARIES AND PANGOMM_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindPopt.cmake b/CMakeScripts/Modules/FindPopt.cmake new file mode 100644 index 000000000..e1368be75 --- /dev/null +++ b/CMakeScripts/Modules/FindPopt.cmake @@ -0,0 +1,90 @@ +# - Try to find Popt +# Once done this will define +# +# POPT_FOUND - system has Popt +# POPT_INCLUDE_DIRS - the Popt include directory +# POPT_LIBRARIES - Link these to use Popt +# POPT_DEFINITIONS - Compiler switches required for using Popt +# +# Copyright (c) 2008 Joshua L. Blocher +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (POPT_LIBRARIES AND POPT_INCLUDE_DIRS) + # in cache already + set(POPT_FOUND TRUE) +else (POPT_LIBRARIES AND POPT_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(popt _POPT_INCLUDEDIR _POPT_LIBDIR _POPT_LDFLAGS _POPT_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_POPT popt) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(POPT_INCLUDE_DIR + NAMES + popt.h + PATHS + ${_POPT_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + $ENV{DEVLIBS_PATH}//include// + PATH_SUFFIXES + popt + ) + + find_library(POPT_LIBRARY + NAMES + popt + PATHS + ${_POPT_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (POPT_LIBRARY) + set(POPT_FOUND TRUE) + endif (POPT_LIBRARY) + + set(POPT_INCLUDE_DIRS + ${POPT_INCLUDE_DIR} + ) + + if (POPT_FOUND) + set(POPT_LIBRARIES + ${POPT_LIBRARIES} + ${POPT_LIBRARY} + ) + endif (POPT_FOUND) + + if (POPT_INCLUDE_DIRS AND POPT_LIBRARIES) + set(POPT_FOUND TRUE) + endif (POPT_INCLUDE_DIRS AND POPT_LIBRARIES) + + if (POPT_FOUND) + if (NOT Popt_FIND_QUIETLY) + message(STATUS "Found Popt: ${POPT_LIBRARIES}") + endif (NOT Popt_FIND_QUIETLY) + else (POPT_FOUND) + if (Popt_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Popt") + endif (Popt_FIND_REQUIRED) + endif (POPT_FOUND) + + # show the POPT_INCLUDE_DIRS and POPT_LIBRARIES variables only in the advanced view + mark_as_advanced(POPT_INCLUDE_DIRS POPT_LIBRARIES) + +endif (POPT_LIBRARIES AND POPT_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindPython.cmake b/CMakeScripts/Modules/FindPython.cmake new file mode 100644 index 000000000..1ac451541 --- /dev/null +++ b/CMakeScripts/Modules/FindPython.cmake @@ -0,0 +1,13 @@ +# figure out Python flags +FIND_PACKAGE(PythonInterp) +IF(PYTHONINTERP_FOUND) + EXEC_PROGRAM(${PYTHON_EXECUTABLE} + ARGS ${CMAKE_SOURCE_DIR}/makelib/python_config_var.py LIBS + OUTPUT_VARIABLE PYTHON_LINK_LIBRARIES ) + EXEC_PROGRAM(${PYTHON_EXECUTABLE} + ARGS ${CMAKE_SOURCE_DIR}/makelib/python_config_var.py LINKFORSTATIC + OUTPUT_VARIABLE PYTHON_LINKFORSTATIC ) +ELSE(PYTHONINTERP_FOUND) + SET(PYTHON_LINK_LIBRARIES "") + SET(PYTHON_LINKFORSTATIC "") +ENDIF(PYTHONINTERP_FOUND) diff --git a/CMakeScripts/Modules/FindSigC++.cmake b/CMakeScripts/Modules/FindSigC++.cmake new file mode 100644 index 000000000..ed0abc545 --- /dev/null +++ b/CMakeScripts/Modules/FindSigC++.cmake @@ -0,0 +1,106 @@ +# - Try to find SIGC++ +# Once done this will define +# +# SIGC++_FOUND - system has SIGC++ +# SIGC++_INCLUDE_DIRS - the SIGC++ include directory +# SIGC++_LIBRARIES - Link these to use SIGC++ +# SIGC++_DEFINITIONS - Compiler switches required for using SIGC++ +# +# Copyright (c) 2008 Andreas Schneider +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) + # in cache already + set(SIGC++_FOUND TRUE) +else (SIGC++_LIBRARIES AND SIGC++_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(sigc++-2.0 _SIGC++_INCLUDEDIR _SIGC++_LIBDIR _SIGC++_LDFLAGS _SIGC++_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_SIGC++ sigc++-2.0) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + + find_path(SIGC++_INCLUDE_DIR + NAMES + sigc++/sigc++.h + PATHS + ${_SIGC++_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + PATH_SUFFIXES + sigc++-2.0 + ) + + find_path(SIGC++_CONFIG_INCLUDE_DIR + NAMES + sigc++config.h + PATHS + ${_SIGC++_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /opt/local/lib/sigc++-2.0/include + /sw/include + /usr/lib/sigc++-2.0/include + /usr/lib64/sigc++-2.0/include + ) + + find_library(SIGC-2.0_LIBRARY + NAMES + sigc-2.0 + PATHS + ${_SIGC++_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (SIGC-2.0_LIBRARY) + set(SIGC-2.0_FOUND TRUE) + endif (SIGC-2.0_LIBRARY) + + set(SIGC++_INCLUDE_DIRS + ${SIGC++_INCLUDE_DIR} + ${SIGC++_CONFIG_INCLUDE_DIR} + ) + + if (SIGC-2.0_FOUND) + set(SIGC++_LIBRARIES + ${SIGC++_LIBRARIES} + ${SIGC-2.0_LIBRARY} + ) + endif (SIGC-2.0_FOUND) + + if (SIGC++_INCLUDE_DIRS AND SIGC++_LIBRARIES) + set(SIGC++_FOUND TRUE) + endif (SIGC++_INCLUDE_DIRS AND SIGC++_LIBRARIES) + + if (SIGC++_FOUND) + if (NOT SIGC++_FIND_QUIETLY) + message(STATUS "Found SIGC++: ${SIGC++_LIBRARIES}") + endif (NOT SIGC++_FIND_QUIETLY) + else (SIGC++_FOUND) + if (SIGC++_FIND_REQUIRED) + message(FATAL_ERROR "Could not find SIGC++") + endif (SIGC++_FIND_REQUIRED) + endif (SIGC++_FOUND) + + # show the SIGC++_INCLUDE_DIRS and SIGC++_LIBRARIES variables only in the advanced view + mark_as_advanced(SIGC++_INCLUDE_DIRS SIGC++_LIBRARIES) + +endif (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) + + -- cgit v1.2.3 From 4d613dc583b96ea9205cd06f229956d6ec56c9e6 Mon Sep 17 00:00:00 2001 From: Nick Drobchenko Date: Tue, 5 Jul 2011 19:12:43 +0400 Subject: Gcodetools have been upgraded to v. 1.7. (bzr r10417) --- CMakeScripts/ConfigChecks.cmake | 140 ++++++++++++++++++++-------------------- CMakeScripts/ConfigPaths.cmake | 62 +++++++++--------- CMakeScripts/HelperMacros.cmake | 130 ++++++++++++++++++------------------- CMakeScripts/IncludeJava.cmake | 28 ++++---- 4 files changed, 180 insertions(+), 180 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index a04cf2698..5f76e01e9 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -1,70 +1,70 @@ -#--------------- -# 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(CheckStructHasMember) -# usage: CHECK_INCLUDE_FILES (
) -# usage: CHECK_FUNCTION_EXISTS ( ) -# usage: CHECK_STRUCT_HAS_MEMBER (
) - -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) -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) -CHECK_INCLUDE_FILES(ieeefp.h HAVE_IEEEFP_H) -CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H) -CHECK_INCLUDE_FILES(locale.h HAVE_LC_MESSAGES) -CHECK_INCLUDE_FILES(locale.h HAVE_LOCALE_H) -CHECK_INCLUDE_FILES(libintl.h HAVE_LIBINTL_H) -CHECK_INCLUDE_FILES(fcntl.h HAVE_FCNTL_H) -CHECK_FUNCTION_EXISTS(mallinfo HAVE_MALLINFO) -CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H) -CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE) -CHECK_INCLUDE_FILES(memory.h HAVE_MEMORY_H) -CHECK_FUNCTION_EXISTS(memset HAVE_MEMSET) -CHECK_FUNCTION_EXISTS(mkdir HAVE_MKDIR) -CHECK_FUNCTION_EXISTS(pow HAVE_POW) -CHECK_FUNCTION_EXISTS(sqrt HAVE_SQRT) -CHECK_INCLUDE_FILES(stddef.h HAVE_STDDEF_H) -CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H) -CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H) -CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) -CHECK_INCLUDE_FILES(string.h HAVE_STRING_H) -CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP) -CHECK_FUNCTION_EXISTS(strpbrk HAVE_STRPBRK) -CHECK_FUNCTION_EXISTS(strrchr HAVE_STRRCHR) -CHECK_FUNCTION_EXISTS(strspn HAVE_STRSPN) -CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR) -CHECK_FUNCTION_EXISTS(strtoul HAVE_STRTOUL) -CHECK_STRUCT_HAS_MEMBER(fordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FORDBLKS) -CHECK_STRUCT_HAS_MEMBER(fsmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FSMBLKS) -CHECK_STRUCT_HAS_MEMBER(hblkhd mallinfo malloc.h HAVE_STRUCT_MALLINFO_HBLKHD) -CHECK_STRUCT_HAS_MEMBER(uordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_UORDBLKS) -CHECK_STRUCT_HAS_MEMBER(usmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_USMBLKS) -CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H) -CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H) -CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H) -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? -# 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() - -# 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}/include/config.h) -add_definitions(-DHAVE_CONFIG_H) +#--------------- +# 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(CheckStructHasMember) +# usage: CHECK_INCLUDE_FILES (
) +# usage: CHECK_FUNCTION_EXISTS ( ) +# usage: CHECK_STRUCT_HAS_MEMBER (
) + +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) +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) +CHECK_INCLUDE_FILES(ieeefp.h HAVE_IEEEFP_H) +CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES(locale.h HAVE_LC_MESSAGES) +CHECK_INCLUDE_FILES(locale.h HAVE_LOCALE_H) +CHECK_INCLUDE_FILES(libintl.h HAVE_LIBINTL_H) +CHECK_INCLUDE_FILES(fcntl.h HAVE_FCNTL_H) +CHECK_FUNCTION_EXISTS(mallinfo HAVE_MALLINFO) +CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H) +CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE) +CHECK_INCLUDE_FILES(memory.h HAVE_MEMORY_H) +CHECK_FUNCTION_EXISTS(memset HAVE_MEMSET) +CHECK_FUNCTION_EXISTS(mkdir HAVE_MKDIR) +CHECK_FUNCTION_EXISTS(pow HAVE_POW) +CHECK_FUNCTION_EXISTS(sqrt HAVE_SQRT) +CHECK_INCLUDE_FILES(stddef.h HAVE_STDDEF_H) +CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H) +CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H) +CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) +CHECK_INCLUDE_FILES(string.h HAVE_STRING_H) +CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP) +CHECK_FUNCTION_EXISTS(strpbrk HAVE_STRPBRK) +CHECK_FUNCTION_EXISTS(strrchr HAVE_STRRCHR) +CHECK_FUNCTION_EXISTS(strspn HAVE_STRSPN) +CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR) +CHECK_FUNCTION_EXISTS(strtoul HAVE_STRTOUL) +CHECK_STRUCT_HAS_MEMBER(fordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FORDBLKS) +CHECK_STRUCT_HAS_MEMBER(fsmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FSMBLKS) +CHECK_STRUCT_HAS_MEMBER(hblkhd mallinfo malloc.h HAVE_STRUCT_MALLINFO_HBLKHD) +CHECK_STRUCT_HAS_MEMBER(uordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_UORDBLKS) +CHECK_STRUCT_HAS_MEMBER(usmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_USMBLKS) +CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H) +CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H) +CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H) +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? +# 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() + +# 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}/include/config.h) +add_definitions(-DHAVE_CONFIG_H) diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index de9a9b5d0..af0a7d50c 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -1,31 +1,31 @@ -MESSAGE(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") - -IF(WIN32) - SET(PACKAGE_LOCALE_DIR "locale") -ELSEIF(WIN32) - # TODO: check and change this to correct value: - SET(PACKAGE_LOCALE_DIR "locale") -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") +MESSAGE(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") + +IF(WIN32) + SET(PACKAGE_LOCALE_DIR "locale") +ELSEIF(WIN32) + # TODO: check and change this to correct value: + SET(PACKAGE_LOCALE_DIR "locale") +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") diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake index cdb4d0386..7cd2333bc 100644 --- a/CMakeScripts/HelperMacros.cmake +++ b/CMakeScripts/HelperMacros.cmake @@ -1,65 +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() - - -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() +# 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() + + +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() diff --git a/CMakeScripts/IncludeJava.cmake b/CMakeScripts/IncludeJava.cmake index bd8bdb58e..1e20a4ca5 100644 --- a/CMakeScripts/IncludeJava.cmake +++ b/CMakeScripts/IncludeJava.cmake @@ -1,14 +1,14 @@ -# - 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) +# - 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) -- cgit v1.2.3 From b6e16b1d8f843a9524f311d34afd6ea1da22e579 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 8 Jul 2011 00:47:48 +0000 Subject: fix for building with cmake, renaming the GTK2 package didnt work right, very confusing as to why - I still dont know but calling it the same as CMake's works ok and uses our one. (bzr r10424) --- CMakeScripts/DefineDependsandFlags.cmake | 2 +- CMakeScripts/Modules/FindGTK2.cmake | 596 ++++++++++++++++++++++++++++ CMakeScripts/Modules/FindGTK2_patched.cmake | 596 ---------------------------- CMakeScripts/cmake_consistency_check.py | 5 +- 4 files changed, 599 insertions(+), 600 deletions(-) create mode 100644 CMakeScripts/Modules/FindGTK2.cmake delete mode 100644 CMakeScripts/Modules/FindGTK2_patched.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 96ff53ff9..88c361020 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -46,7 +46,7 @@ add_definitions(${POPT_DEFINITIONS}) # Include dependencies: # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added -find_package(GTK2_patched COMPONENTS gtk gtkmm REQUIRED) +find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${GTK2_GDK_INCLUDE_DIR} ${GTK2_GDKMM_INCLUDE_DIR} diff --git a/CMakeScripts/Modules/FindGTK2.cmake b/CMakeScripts/Modules/FindGTK2.cmake new file mode 100644 index 000000000..91249b787 --- /dev/null +++ b/CMakeScripts/Modules/FindGTK2.cmake @@ -0,0 +1,596 @@ +# *NOTE*, this file include 1 line modification from 2.8.5's module +# this adds GTK2_CAIROMM_INCLUDE_DIR which we need! +# - ideasman42 +# ------------ + +# - FindGTK2.cmake +# This module can find the GTK2 widget libraries and several of its other +# optional components like gtkmm, glade, and glademm. +# +# NOTE: If you intend to use version checking, CMake 2.6.2 or later is +# required. +# +# Specify one or more of the following components +# as you call this find module. See example below. +# +# gtk +# gtkmm +# glade +# glademm +# +# The following variables will be defined for your use +# +# GTK2_FOUND - Were all of your specified components found? +# GTK2_INCLUDE_DIRS - All include directories +# GTK2_LIBRARIES - All libraries +# +# GTK2_VERSION - The version of GTK2 found (x.y.z) +# GTK2_MAJOR_VERSION - The major version of GTK2 +# GTK2_MINOR_VERSION - The minor version of GTK2 +# GTK2_PATCH_VERSION - The patch version of GTK2 +# +# Optional variables you can define prior to calling this module: +# +# GTK2_DEBUG - Enables verbose debugging of the module +# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced +# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to +# search for include files +# +#================= +# Example Usage: +# +# Call find_package() once, here are some examples to pick from: +# +# Require GTK 2.6 or later +# find_package(GTK2 2.6 REQUIRED gtk) +# +# Require GTK 2.10 or later and Glade +# find_package(GTK2 2.10 REQUIRED gtk glade) +# +# Search for GTK/GTKMM 2.8 or later +# find_package(GTK2 2.8 COMPONENTS gtk gtkmm) +# +# if(GTK2_FOUND) +# include_directories(${GTK2_INCLUDE_DIRS}) +# add_executable(mygui mygui.cc) +# target_link_libraries(mygui ${GTK2_LIBRARIES}) +# endif() +# + +#============================================================================= +# Copyright 2009 Kitware, Inc. +# Copyright 2008-2009 Philip Lowman +# +# 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.) + +# Version 1.3 (11/9/2010) (CMake 2.8.4) +# * 11429: Add support for detecting GTK2 built with Visual Studio 10. +# Thanks to Vincent Levesque for the patch. + +# Version 1.2 (8/30/2010) (CMake 2.8.3) +# * Merge patch for detecting gdk-pixbuf library (split off +# from core GTK in 2.21). Thanks to Vincent Untz for the patch +# and Ricardo Cruz for the heads up. +# Version 1.1 (8/19/2010) (CMake 2.8.3) +# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich) +# Version 1.0 (8/12/2010) (CMake 2.8.3) +# * Add support for detecting new pangommconfig.h header file +# (Thanks to Sune Vuorela & the Debian Project for the patch) +# * Add support for detecting fontconfig.h header +# * Call find_package(Freetype) since it's required +# * Add support for allowing users to add additional library directories +# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in +# case the GTK developers change versions on any of the directories in the +# future). +# Version 0.8 (1/4/2010) +# * Get module working under MacOSX fink by adding /sw/include, /sw/lib +# to PATHS and the gobject library +# Version 0.7 (3/22/09) +# * Checked into CMake CVS +# * Added versioning support +# * Module now defaults to searching for GTK if COMPONENTS not specified. +# * Added HKCU prior to HKLM registry key and GTKMM specific environment +# variable as per mailing list discussion. +# * Added lib64 to include search path and a few other search paths where GTK +# may be installed on Unix systems. +# * Switched to lowercase CMake commands +# * Prefaced internal variables with _GTK2 to prevent collision +# * Changed internal macros to functions +# * Enhanced documentation +# Version 0.6 (1/8/08) +# Added GTK2_SKIP_MARK_AS_ADVANCED option +# Version 0.5 (12/19/08) +# Second release to cmake mailing list + +#============================================================= +# _GTK2_GET_VERSION +# Internal function to parse the version number in gtkversion.h +# _OUT_major = Major version number +# _OUT_minor = Minor version number +# _OUT_micro = Micro version number +# _gtkversion_hdr = Header file to parse +#============================================================= +function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) + file(READ ${_gtkversion_hdr} _contents) + if(_contents) + string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}") + string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}") + string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}") + + if(NOT ${_OUT_major} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!") + endif() + if(NOT ${_OUT_minor} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!") + endif() + if(NOT ${_OUT_micro} MATCHES "[0-9]+") + message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!") + endif() + + set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE) + set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE) + set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE) + else() + message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist") + endif() +endfunction() + +#============================================================= +# _GTK2_FIND_INCLUDE_DIR +# Internal function to find the GTK include directories +# _var = variable to set +# _hdr = header file to look for +#============================================================= +function(_GTK2_FIND_INCLUDE_DIR _var _hdr) + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") + endif() + + set(_relatives + # If these ever change, things will break. + ${GTK2_ADDITIONAL_SUFFIXES} + glibmm-2.4 + glib-2.0 + atk-1.0 + atkmm-1.6 + cairo + cairomm-1.0 + gdk-pixbuf-2.0 + gdkmm-2.4 + giomm-2.4 + gtk-2.0 + gtkmm-2.4 + libglade-2.0 + libglademm-2.4 + pango-1.0 + pangomm-1.4 + sigc++-2.0 + ) + + set(_suffixes) + foreach(_d ${_relatives}) + list(APPEND _suffixes ${_d}) + list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include + endforeach() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "include suffixes = ${_suffixes}") + endif() + + find_path(${_var} ${_hdr} + PATHS + /usr/local/lib64 + /usr/local/lib + /usr/lib64 + /usr/lib + /opt/gnome/include + /opt/gnome/lib + /opt/openwin/include + /usr/openwin/lib + /sw/include + /sw/lib + /opt/local/include + /opt/local/lib + $ENV{GTKMM_BASEPATH}/include + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + PATH_SUFFIXES + ${_suffixes} + ) + + if(${_var}) + set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}) + endif() + endif() + +endfunction(_GTK2_FIND_INCLUDE_DIR) + +#============================================================= +# _GTK2_FIND_LIBRARY +# Internal function to find libraries packaged with GTK2 +# _var = library variable to create +#============================================================= +function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") + endif() + + # Not GTK versions per se but the versions encoded into Windows + # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) + # Also the MSVC libraries use _ for . (this is handled below) + set(_versions 2.20 2.18 2.16 2.14 2.12 + 2.10 2.8 2.6 2.4 2.2 2.0 + 1.20 1.18 1.16 1.14 1.12 + 1.10 1.8 1.6 1.4 1.2 1.0) + + set(_library) + set(_library_d) + + set(_library ${_lib}) + + if(_expand_vc AND MSVC) + # Add vc80/vc90/vc100 midfixes + if(MSVC80) + set(_library ${_library}-vc80) + elseif(MSVC90) + set(_library ${_library}-vc90) + elseif(MSVC10) + set(_library ${_library}-vc100) + endif() + set(_library_d ${_library}-d) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "After midfix addition = ${_library} and ${_library_d}") + endif() + + set(_lib_list) + set(_libd_list) + if(_append_version) + foreach(_ver ${_versions}) + list(APPEND _lib_list "${_library}-${_ver}") + list(APPEND _libd_list "${_library_d}-${_ver}") + endforeach() + else() + set(_lib_list ${_library}) + set(_libd_list ${_library_d}) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "library list = ${_lib_list} and library debug list = ${_libd_list}") + endif() + + # For some silly reason the MSVC libraries use _ instead of . + # in the version fields + if(_expand_vc AND MSVC) + set(_no_dots_lib_list) + set(_no_dots_libd_list) + foreach(_l ${_lib_list}) + string(REPLACE "." "_" _no_dots_library ${_l}) + list(APPEND _no_dots_lib_list ${_no_dots_library}) + endforeach() + # And for debug + set(_no_dots_libsd_list) + foreach(_l ${_libd_list}) + string(REPLACE "." "_" _no_dots_libraryd ${_l}) + list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) + endforeach() + + # Copy list back to original names + set(_lib_list ${_no_dots_lib_list}) + set(_libd_list ${_no_dots_libd_list}) + endif() + + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "While searching for ${_var}, our proposed library list is ${_lib_list}") + endif() + + find_library(${_var} + NAMES ${_lib_list} + PATHS + /opt/gnome/lib + /opt/gnome/lib64 + /usr/openwin/lib + /usr/openwin/lib64 + /sw/lib + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + ) + + if(_expand_vc AND MSVC) + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") + endif() + + find_library(${_var}_DEBUG + NAMES ${_libd_list} + PATHS + $ENV{GTKMM_BASEPATH}/lib + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib + ) + + if(${_var} AND ${_var}_DEBUG) + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}_DEBUG) + endif() + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} optimized ${${_var}} debug ${${_var}_DEBUG}) + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) + endif() + else() + if(NOT GTK2_SKIP_MARK_AS_ADVANCED) + mark_as_advanced(${_var}) + endif() + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${${_var}}) + set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) + # Set debug to release + set(${_var}_DEBUG ${${_var}}) + set(${_var}_DEBUG ${${_var}} PARENT_SCOPE) + endif() +endfunction(_GTK2_FIND_LIBRARY) + +#============================================================= + +# +# main() +# + +set(GTK2_FOUND) +set(GTK2_INCLUDE_DIRS) +set(GTK2_LIBRARIES) + +if(NOT GTK2_FIND_COMPONENTS) + # Assume they only want GTK + set(GTK2_FIND_COMPONENTS gtk) +endif() + +# +# If specified, enforce version number +# +if(GTK2_FIND_VERSION) + cmake_minimum_required(VERSION 2.6.2) + set(GTK2_FAILED_VERSION_CHECK true) + if(GTK2_DEBUG) + message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " + "Searching for version ${GTK2_FIND_VERSION}") + endif() + _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) + if(GTK2_GTK_INCLUDE_DIR) + _GTK2_GET_VERSION(GTK2_MAJOR_VERSION + GTK2_MINOR_VERSION + GTK2_PATCH_VERSION + ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) + set(GTK2_VERSION + ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) + if(GTK2_FIND_VERSION_EXACT) + if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION) + set(GTK2_FAILED_VERSION_CHECK false) + endif() + else() + if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR + GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION) + set(GTK2_FAILED_VERSION_CHECK false) + endif() + endif() + else() + # If we can't find the GTK include dir, we can't do version checking + if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) + message(FATAL_ERROR "Could not find GTK2 include directory") + endif() + return() + endif() + + if(GTK2_FAILED_VERSION_CHECK) + if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) + if(GTK2_FIND_VERSION_EXACT) + message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.") + else() + message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required") + endif() + endif() + + # If the version check fails, exit out of the module here + return() + endif() +endif() + +# +# Find all components +# + +find_package(Freetype) +list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) +list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES}) + +foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) + if(_GTK2_component STREQUAL "gtk") + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h) + _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) + _GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) + + if(UNIX) + _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 false true) + _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 false true) + else() + _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 false true) + _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 false true) + endif() + + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) + _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo false false) + + _GTK2_FIND_INCLUDE_DIR(GTK2_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) + + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) + _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) + _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk false true) + + + elseif(_GTK2_component STREQUAL "gtkmm") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) + _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm true true) + + _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) + _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm true true) + + elseif(_GTK2_component STREQUAL "glade") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) + _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade false true) + + elseif(_GTK2_component STREQUAL "glademm") + + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) + _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) + _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm true true) + + else() + message(FATAL_ERROR "Unknown GTK2 component ${_component}") + endif() +endforeach() + +# +# Solve for the GTK2 version if we haven't already +# +if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR) + _GTK2_GET_VERSION(GTK2_MAJOR_VERSION + GTK2_MINOR_VERSION + GTK2_PATCH_VERSION + ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) + set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) +endif() + +# +# Try to enforce components +# + +set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND + +include(FindPackageHandleStandardArgs) + +foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) + string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER) + + if(_GTK2_component STREQUAL "gtk") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." + GTK2_GTK_LIBRARY + GTK2_GTK_INCLUDE_DIR + + GTK2_GLIB_INCLUDE_DIR + GTK2_GLIBCONFIG_INCLUDE_DIR + GTK2_GLIB_LIBRARY + + GTK2_GDK_INCLUDE_DIR + GTK2_GDKCONFIG_INCLUDE_DIR + GTK2_GDK_LIBRARY + ) + elseif(_GTK2_component STREQUAL "gtkmm") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." + GTK2_GTKMM_LIBRARY + GTK2_GTKMM_INCLUDE_DIR + GTK2_GTKMMCONFIG_INCLUDE_DIR + + GTK2_GLIBMM_INCLUDE_DIR + GTK2_GLIBMMCONFIG_INCLUDE_DIR + GTK2_GLIBMM_LIBRARY + + GTK2_GDKMM_INCLUDE_DIR + GTK2_GDKMMCONFIG_INCLUDE_DIR + GTK2_GDKMM_LIBRARY + ) + elseif(_GTK2_component STREQUAL "glade") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." + GTK2_GLADE_LIBRARY + GTK2_GLADE_INCLUDE_DIR + ) + elseif(_GTK2_component STREQUAL "glademm") + FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." + GTK2_GLADEMM_LIBRARY + GTK2_GLADEMM_INCLUDE_DIR + GTK2_GLADEMMCONFIG_INCLUDE_DIR + ) + endif() + + if(NOT GTK2_${_COMPONENT_UPPER}_FOUND) + set(_GTK2_did_we_find_everything false) + endif() +endforeach() + +if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) + set(GTK2_FOUND true) +else() + # Unset our variables. + set(GTK2_FOUND false) + set(GTK2_VERSION) + set(GTK2_VERSION_MAJOR) + set(GTK2_VERSION_MINOR) + set(GTK2_VERSION_PATCH) + set(GTK2_INCLUDE_DIRS) + set(GTK2_LIBRARIES) +endif() + +if(GTK2_INCLUDE_DIRS) + list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) +endif() + diff --git a/CMakeScripts/Modules/FindGTK2_patched.cmake b/CMakeScripts/Modules/FindGTK2_patched.cmake deleted file mode 100644 index 91249b787..000000000 --- a/CMakeScripts/Modules/FindGTK2_patched.cmake +++ /dev/null @@ -1,596 +0,0 @@ -# *NOTE*, this file include 1 line modification from 2.8.5's module -# this adds GTK2_CAIROMM_INCLUDE_DIR which we need! -# - ideasman42 -# ------------ - -# - FindGTK2.cmake -# This module can find the GTK2 widget libraries and several of its other -# optional components like gtkmm, glade, and glademm. -# -# NOTE: If you intend to use version checking, CMake 2.6.2 or later is -# required. -# -# Specify one or more of the following components -# as you call this find module. See example below. -# -# gtk -# gtkmm -# glade -# glademm -# -# The following variables will be defined for your use -# -# GTK2_FOUND - Were all of your specified components found? -# GTK2_INCLUDE_DIRS - All include directories -# GTK2_LIBRARIES - All libraries -# -# GTK2_VERSION - The version of GTK2 found (x.y.z) -# GTK2_MAJOR_VERSION - The major version of GTK2 -# GTK2_MINOR_VERSION - The minor version of GTK2 -# GTK2_PATCH_VERSION - The patch version of GTK2 -# -# Optional variables you can define prior to calling this module: -# -# GTK2_DEBUG - Enables verbose debugging of the module -# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced -# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to -# search for include files -# -#================= -# Example Usage: -# -# Call find_package() once, here are some examples to pick from: -# -# Require GTK 2.6 or later -# find_package(GTK2 2.6 REQUIRED gtk) -# -# Require GTK 2.10 or later and Glade -# find_package(GTK2 2.10 REQUIRED gtk glade) -# -# Search for GTK/GTKMM 2.8 or later -# find_package(GTK2 2.8 COMPONENTS gtk gtkmm) -# -# if(GTK2_FOUND) -# include_directories(${GTK2_INCLUDE_DIRS}) -# add_executable(mygui mygui.cc) -# target_link_libraries(mygui ${GTK2_LIBRARIES}) -# endif() -# - -#============================================================================= -# Copyright 2009 Kitware, Inc. -# Copyright 2008-2009 Philip Lowman -# -# 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.) - -# Version 1.3 (11/9/2010) (CMake 2.8.4) -# * 11429: Add support for detecting GTK2 built with Visual Studio 10. -# Thanks to Vincent Levesque for the patch. - -# Version 1.2 (8/30/2010) (CMake 2.8.3) -# * Merge patch for detecting gdk-pixbuf library (split off -# from core GTK in 2.21). Thanks to Vincent Untz for the patch -# and Ricardo Cruz for the heads up. -# Version 1.1 (8/19/2010) (CMake 2.8.3) -# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich) -# Version 1.0 (8/12/2010) (CMake 2.8.3) -# * Add support for detecting new pangommconfig.h header file -# (Thanks to Sune Vuorela & the Debian Project for the patch) -# * Add support for detecting fontconfig.h header -# * Call find_package(Freetype) since it's required -# * Add support for allowing users to add additional library directories -# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in -# case the GTK developers change versions on any of the directories in the -# future). -# Version 0.8 (1/4/2010) -# * Get module working under MacOSX fink by adding /sw/include, /sw/lib -# to PATHS and the gobject library -# Version 0.7 (3/22/09) -# * Checked into CMake CVS -# * Added versioning support -# * Module now defaults to searching for GTK if COMPONENTS not specified. -# * Added HKCU prior to HKLM registry key and GTKMM specific environment -# variable as per mailing list discussion. -# * Added lib64 to include search path and a few other search paths where GTK -# may be installed on Unix systems. -# * Switched to lowercase CMake commands -# * Prefaced internal variables with _GTK2 to prevent collision -# * Changed internal macros to functions -# * Enhanced documentation -# Version 0.6 (1/8/08) -# Added GTK2_SKIP_MARK_AS_ADVANCED option -# Version 0.5 (12/19/08) -# Second release to cmake mailing list - -#============================================================= -# _GTK2_GET_VERSION -# Internal function to parse the version number in gtkversion.h -# _OUT_major = Major version number -# _OUT_minor = Minor version number -# _OUT_micro = Micro version number -# _gtkversion_hdr = Header file to parse -#============================================================= -function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) - file(READ ${_gtkversion_hdr} _contents) - if(_contents) - string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}") - string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}") - string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}") - - if(NOT ${_OUT_major} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!") - endif() - if(NOT ${_OUT_minor} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!") - endif() - if(NOT ${_OUT_micro} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!") - endif() - - set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE) - set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE) - set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE) - else() - message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist") - endif() -endfunction() - -#============================================================= -# _GTK2_FIND_INCLUDE_DIR -# Internal function to find the GTK include directories -# _var = variable to set -# _hdr = header file to look for -#============================================================= -function(_GTK2_FIND_INCLUDE_DIR _var _hdr) - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") - endif() - - set(_relatives - # If these ever change, things will break. - ${GTK2_ADDITIONAL_SUFFIXES} - glibmm-2.4 - glib-2.0 - atk-1.0 - atkmm-1.6 - cairo - cairomm-1.0 - gdk-pixbuf-2.0 - gdkmm-2.4 - giomm-2.4 - gtk-2.0 - gtkmm-2.4 - libglade-2.0 - libglademm-2.4 - pango-1.0 - pangomm-1.4 - sigc++-2.0 - ) - - set(_suffixes) - foreach(_d ${_relatives}) - list(APPEND _suffixes ${_d}) - list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include - endforeach() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "include suffixes = ${_suffixes}") - endif() - - find_path(${_var} ${_hdr} - PATHS - /usr/local/lib64 - /usr/local/lib - /usr/lib64 - /usr/lib - /opt/gnome/include - /opt/gnome/lib - /opt/openwin/include - /usr/openwin/lib - /sw/include - /sw/lib - /opt/local/include - /opt/local/lib - $ENV{GTKMM_BASEPATH}/include - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - PATH_SUFFIXES - ${_suffixes} - ) - - if(${_var}) - set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}) - endif() - endif() - -endfunction(_GTK2_FIND_INCLUDE_DIR) - -#============================================================= -# _GTK2_FIND_LIBRARY -# Internal function to find libraries packaged with GTK2 -# _var = library variable to create -#============================================================= -function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") - endif() - - # Not GTK versions per se but the versions encoded into Windows - # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) - # Also the MSVC libraries use _ for . (this is handled below) - set(_versions 2.20 2.18 2.16 2.14 2.12 - 2.10 2.8 2.6 2.4 2.2 2.0 - 1.20 1.18 1.16 1.14 1.12 - 1.10 1.8 1.6 1.4 1.2 1.0) - - set(_library) - set(_library_d) - - set(_library ${_lib}) - - if(_expand_vc AND MSVC) - # Add vc80/vc90/vc100 midfixes - if(MSVC80) - set(_library ${_library}-vc80) - elseif(MSVC90) - set(_library ${_library}-vc90) - elseif(MSVC10) - set(_library ${_library}-vc100) - endif() - set(_library_d ${_library}-d) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "After midfix addition = ${_library} and ${_library_d}") - endif() - - set(_lib_list) - set(_libd_list) - if(_append_version) - foreach(_ver ${_versions}) - list(APPEND _lib_list "${_library}-${_ver}") - list(APPEND _libd_list "${_library_d}-${_ver}") - endforeach() - else() - set(_lib_list ${_library}) - set(_libd_list ${_library_d}) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "library list = ${_lib_list} and library debug list = ${_libd_list}") - endif() - - # For some silly reason the MSVC libraries use _ instead of . - # in the version fields - if(_expand_vc AND MSVC) - set(_no_dots_lib_list) - set(_no_dots_libd_list) - foreach(_l ${_lib_list}) - string(REPLACE "." "_" _no_dots_library ${_l}) - list(APPEND _no_dots_lib_list ${_no_dots_library}) - endforeach() - # And for debug - set(_no_dots_libsd_list) - foreach(_l ${_libd_list}) - string(REPLACE "." "_" _no_dots_libraryd ${_l}) - list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) - endforeach() - - # Copy list back to original names - set(_lib_list ${_no_dots_lib_list}) - set(_libd_list ${_no_dots_libd_list}) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "While searching for ${_var}, our proposed library list is ${_lib_list}") - endif() - - find_library(${_var} - NAMES ${_lib_list} - PATHS - /opt/gnome/lib - /opt/gnome/lib64 - /usr/openwin/lib - /usr/openwin/lib64 - /sw/lib - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - - if(_expand_vc AND MSVC) - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") - endif() - - find_library(${_var}_DEBUG - NAMES ${_libd_list} - PATHS - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - - if(${_var} AND ${_var}_DEBUG) - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}_DEBUG) - endif() - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} optimized ${${_var}} debug ${${_var}_DEBUG}) - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) - endif() - else() - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}) - endif() - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${${_var}}) - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) - # Set debug to release - set(${_var}_DEBUG ${${_var}}) - set(${_var}_DEBUG ${${_var}} PARENT_SCOPE) - endif() -endfunction(_GTK2_FIND_LIBRARY) - -#============================================================= - -# -# main() -# - -set(GTK2_FOUND) -set(GTK2_INCLUDE_DIRS) -set(GTK2_LIBRARIES) - -if(NOT GTK2_FIND_COMPONENTS) - # Assume they only want GTK - set(GTK2_FIND_COMPONENTS gtk) -endif() - -# -# If specified, enforce version number -# -if(GTK2_FIND_VERSION) - cmake_minimum_required(VERSION 2.6.2) - set(GTK2_FAILED_VERSION_CHECK true) - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "Searching for version ${GTK2_FIND_VERSION}") - endif() - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - if(GTK2_GTK_INCLUDE_DIR) - _GTK2_GET_VERSION(GTK2_MAJOR_VERSION - GTK2_MINOR_VERSION - GTK2_PATCH_VERSION - ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) - set(GTK2_VERSION - ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) - if(GTK2_FIND_VERSION_EXACT) - if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION) - set(GTK2_FAILED_VERSION_CHECK false) - endif() - else() - if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR - GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION) - set(GTK2_FAILED_VERSION_CHECK false) - endif() - endif() - else() - # If we can't find the GTK include dir, we can't do version checking - if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) - message(FATAL_ERROR "Could not find GTK2 include directory") - endif() - return() - endif() - - if(GTK2_FAILED_VERSION_CHECK) - if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) - if(GTK2_FIND_VERSION_EXACT) - message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.") - else() - message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required") - endif() - endif() - - # If the version check fails, exit out of the module here - return() - endif() -endif() - -# -# Find all components -# - -find_package(Freetype) -list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) -list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES}) - -foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) - if(_GTK2_component STREQUAL "gtk") - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h) - _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) - _GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - - if(UNIX) - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 false true) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 false true) - else() - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 false true) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 false true) - endif() - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) - _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo false false) - - _GTK2_FIND_INCLUDE_DIR(GTK2_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) - _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) - _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk false true) - - - elseif(_GTK2_component STREQUAL "gtkmm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) - _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) - _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm true true) - - elseif(_GTK2_component STREQUAL "glade") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) - _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade false true) - - elseif(_GTK2_component STREQUAL "glademm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm true true) - - else() - message(FATAL_ERROR "Unknown GTK2 component ${_component}") - endif() -endforeach() - -# -# Solve for the GTK2 version if we haven't already -# -if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR) - _GTK2_GET_VERSION(GTK2_MAJOR_VERSION - GTK2_MINOR_VERSION - GTK2_PATCH_VERSION - ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) - set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) -endif() - -# -# Try to enforce components -# - -set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND - -include(FindPackageHandleStandardArgs) - -foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) - string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER) - - if(_GTK2_component STREQUAL "gtk") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." - GTK2_GTK_LIBRARY - GTK2_GTK_INCLUDE_DIR - - GTK2_GLIB_INCLUDE_DIR - GTK2_GLIBCONFIG_INCLUDE_DIR - GTK2_GLIB_LIBRARY - - GTK2_GDK_INCLUDE_DIR - GTK2_GDKCONFIG_INCLUDE_DIR - GTK2_GDK_LIBRARY - ) - elseif(_GTK2_component STREQUAL "gtkmm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." - GTK2_GTKMM_LIBRARY - GTK2_GTKMM_INCLUDE_DIR - GTK2_GTKMMCONFIG_INCLUDE_DIR - - GTK2_GLIBMM_INCLUDE_DIR - GTK2_GLIBMMCONFIG_INCLUDE_DIR - GTK2_GLIBMM_LIBRARY - - GTK2_GDKMM_INCLUDE_DIR - GTK2_GDKMMCONFIG_INCLUDE_DIR - GTK2_GDKMM_LIBRARY - ) - elseif(_GTK2_component STREQUAL "glade") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." - GTK2_GLADE_LIBRARY - GTK2_GLADE_INCLUDE_DIR - ) - elseif(_GTK2_component STREQUAL "glademm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." - GTK2_GLADEMM_LIBRARY - GTK2_GLADEMM_INCLUDE_DIR - GTK2_GLADEMMCONFIG_INCLUDE_DIR - ) - endif() - - if(NOT GTK2_${_COMPONENT_UPPER}_FOUND) - set(_GTK2_did_we_find_everything false) - endif() -endforeach() - -if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) - set(GTK2_FOUND true) -else() - # Unset our variables. - set(GTK2_FOUND false) - set(GTK2_VERSION) - set(GTK2_VERSION_MAJOR) - set(GTK2_VERSION_MINOR) - set(GTK2_VERSION_PATCH) - set(GTK2_INCLUDE_DIRS) - set(GTK2_LIBRARIES) -endif() - -if(GTK2_INCLUDE_DIRS) - list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) -endif() - diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index d70a6a7e9..cf0889b74 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# $Id: cmake_consistency_check.py 36708 2011-05-16 06:11:14Z gsrb3d $ +# $Id: cmake_consistency_check.py 38013 2011-07-01 12:33:34Z campbellbarton $ # ***** BEGIN GPL LICENSE BLOCK ***** # # This program is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ from cmake_consistency_check_config import IGNORE, UTF8_CHECK, SOURCE_DIR import os -from os.path import join, dirname, normpath, abspath, splitext +from os.path import join, dirname, normpath, splitext print("Scanning:", SOURCE_DIR) @@ -183,7 +183,6 @@ def is_ignore(f): # First do stupid check, do these files exist? print("\nChecking for missing references:") -import sys is_err = False errs = [] for f in (global_h | global_c): -- cgit v1.2.3 From d7f2c863cc8e8543cac3d11cd6017d6f76c82050 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 8 Jul 2011 04:16:55 +0000 Subject: fix for building with dbus and cmake (bzr r10426) --- CMakeScripts/DefineDependsandFlags.cmake | 11 +++++ CMakeScripts/Modules/FindDBus.cmake | 72 ++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 CMakeScripts/Modules/FindDBus.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 88c361020..40c759741 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -40,6 +40,17 @@ list(APPEND INKSCAPE_INCS_SYS ${POPT_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) +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() +endif() + # ---------------------------------------------------------------------------- # CMake's builtin # ---------------------------------------------------------------------------- diff --git a/CMakeScripts/Modules/FindDBus.cmake b/CMakeScripts/Modules/FindDBus.cmake new file mode 100644 index 000000000..f227cc297 --- /dev/null +++ b/CMakeScripts/Modules/FindDBus.cmake @@ -0,0 +1,72 @@ +# - Try to find the low-level D-Bus library +# Once done this will define +# +# DBUS_FOUND - system has D-Bus +# DBUS_INCLUDE_DIR - the D-Bus include directory +# DBUS_ARCH_INCLUDE_DIR - the D-Bus architecture-specific include directory +# DBUS_LIBRARIES - the libraries needed to use D-Bus + +# Copyright (c) 2008, Kevin Kofler, +# modeled after FindLibArt.cmake: +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + + # in cache already + SET(DBUS_FOUND TRUE) + +else (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + + IF (NOT WIN32) + FIND_PACKAGE(PkgConfig) + IF (PKG_CONFIG_FOUND) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + pkg_check_modules(_DBUS_PC QUIET dbus-1) + ENDIF (PKG_CONFIG_FOUND) + ENDIF (NOT WIN32) + + FIND_PATH(DBUS_INCLUDE_DIR dbus/dbus.h + ${_DBUS_PC_INCLUDE_DIRS} + /usr/include + /usr/include/dbus-1.0 + /usr/local/include + ) + + FIND_PATH(DBUS_ARCH_INCLUDE_DIR dbus/dbus-arch-deps.h + ${_DBUS_PC_INCLUDE_DIRS} + /usr/lib${LIB_SUFFIX}/include + /usr/lib${LIB_SUFFIX}/dbus-1.0/include + /usr/lib64/include + /usr/lib64/dbus-1.0/include + /usr/lib/include + /usr/lib/dbus-1.0/include + ) + + FIND_LIBRARY(DBUS_LIBRARIES NAMES dbus-1 dbus + PATHS + ${_DBUS_PC_LIBDIR} + ) + + + if (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + set(DBUS_FOUND TRUE) + endif (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + + + if (DBUS_FOUND) + if (NOT DBus_FIND_QUIETLY) + message(STATUS "Found D-Bus: ${DBUS_LIBRARIES}") + endif (NOT DBus_FIND_QUIETLY) + else (DBUS_FOUND) + if (DBus_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find D-Bus") + endif (DBus_FIND_REQUIRED) + endif (DBUS_FOUND) + + MARK_AS_ADVANCED(DBUS_INCLUDE_DIR DBUS_ARCH_INCLUDE_DIR DBUS_LIBRARIES) + +endif (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) -- cgit v1.2.3 From 66eb2eef866c736ad480b97765c3e44f4477b532 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 17 Jul 2011 00:41:56 +1000 Subject: added WITH_GNOME_VFS as an option for cmake (bzr r10460) --- CMakeScripts/DefineDependsandFlags.cmake | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 40c759741..b646c1679 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -20,9 +20,15 @@ list(APPEND INKSCAPE_INCS_SYS ${GSL_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME -find_package(GnomeVFS2) -list(APPEND INKSCAPE_INCS_SYS ${GNOMEVFS2_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY}) +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() +endif() find_package(BoehmGC REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) -- cgit v1.2.3 From 0cc08b5e0fc4cdb7023831523e1221a5fdb88685 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Jul 2011 01:52:15 +1000 Subject: update to cmake checker and add missing header. (bzr r10506) --- CMakeScripts/cmake_consistency_check.py | 102 +++++++++++++++++++++++--------- 1 file changed, 73 insertions(+), 29 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index cf0889b74..979667e4e 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# $Id: cmake_consistency_check.py 38013 2011-07-01 12:33:34Z campbellbarton $ +# $Id: cmake_consistency_check.py 38450 2011-07-17 12:42:03Z campbellbarton $ # ***** BEGIN GPL LICENSE BLOCK ***** # # This program is free software; you can redistribute it and/or @@ -35,6 +35,21 @@ global_c = set() global_refs = {} +def replace_line(f, i, text, keep_indent=True): + file_handle = open(f, 'r') + data = file_handle.readlines() + file_handle.close() + + l = data[i] + ws = l[:len(l) - len(l.lstrip())] + + data[i] = "%s%s\n" % (ws, text) + + file_handle = open(f, 'w') + file_handle.writelines(data) + file_handle.close() + + def source_list(path, filename_check=None): for dirpath, dirnames, filenames in os.walk(path): @@ -77,7 +92,20 @@ def cmake_get_src(f): found = False i = 0 # print(f) + + def is_definition(l, f, i, name): + if ('set(%s' % name) in l or ('set(' in l and l.endswith(name)): + if len(l.split()) > 1: + raise Exception("strict formatting not kept 'set(%s*' %s:%d" % (name, f, i)) + return True + + if ("list(APPEND %s" % name) in l or ('list(APPEND ' in l and l.endswith(name)): + if l.endswith(")"): + raise Exception("strict formatting not kept 'list(APPEND %s...)' on 1 line %s:%d" % (name, f, i)) + return True + while it is not None: + context_name = "" while it is not None: i += 1 try: @@ -87,16 +115,13 @@ def cmake_get_src(f): break l = l.strip() if not l.startswith("#"): - if 'set(SRC' in l or ('set(' in l and l.endswith("SRC")): - if len(l.split()) > 1: - raise Exception("strict formatting not kept 'set(SRC*' %s:%d" % (f, i)) - found = True + found = is_definition(l, f, i, "SRC") + if found: + context_name = "SRC" break - - if "list(APPEND SRC" in l or ('list(APPEND ' in l and l.endswith("SRC")): - if l.endswith(")"): - raise Exception("strict formatting not kept 'list(APPEND SRC...)' on 1 line %s:%d" % (f, i)) - found = True + found = is_definition(l, f, i, "INC") + if found: + context_name = "INC" break if found: @@ -125,30 +150,45 @@ def cmake_get_src(f): if not l: pass elif l.startswith("$"): - # assume if it ends with SRC we know about it - if not l.split("}")[0].endswith("SRC"): - print("Can't use var '%s' %s:%d" % (l, f, i)) + if context_name == "SRC": + # assume if it ends with context_name we know about it + if not l.split("}")[0].endswith(context_name): + print("Can't use var '%s' %s:%d" % (l, f, i)) elif len(l.split()) > 1: raise Exception("Multi-line define '%s' %s:%d" % (l, f, i)) else: new_file = normpath(join(cmake_base, l)) - if is_c_header(new_file): - sources_h.append(new_file) - global_refs.setdefault(new_file, []).append((f, i)) - elif is_c(new_file): - sources_c.append(new_file) - global_refs.setdefault(new_file, []).append((f, i)) - elif l in ("PARENT_SCOPE", ): - # cmake var, ignore - pass - elif new_file.endswith(".list"): - pass - elif new_file.endswith(".def"): - pass - else: - raise Exception("unknown file type - not c or h %s -> %s" % (f, new_file)) - + if context_name == "SRC": + if is_c_header(new_file): + sources_h.append(new_file) + global_refs.setdefault(new_file, []).append((f, i)) + elif is_c(new_file): + sources_c.append(new_file) + global_refs.setdefault(new_file, []).append((f, i)) + elif l in ("PARENT_SCOPE", ): + # cmake var, ignore + pass + elif new_file.endswith(".list"): + pass + elif new_file.endswith(".def"): + pass + else: + raise Exception("unknown file type - not c or h %s -> %s" % (f, new_file)) + + elif context_name == "INC": + if os.path.isdir(new_file): + new_path_rel = os.path.relpath(new_file, cmake_base) + + if new_path_rel != l: + print("overly relative path:\n %s:%d\n %s\n %s" % (f, i, l, new_path_rel)) + + ## Save time. just replace the line + # replace_line(f, i - 1, new_path_rel) + + else: + raise Exception("non existant include %s:%d -> %s" % (f, i, new_file)) + # print(new_file) global_h.update(set(sources_h)) @@ -166,6 +206,10 @@ def cmake_get_src(f): if ff not in sources_c: print(" missing: " + ff) ''' + + # reset + sources_h[:] = [] + sources_c[:] = [] filen.close() -- cgit v1.2.3 From 519d421c41dc6effd3df60e78ae39914744b3541 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Aug 2011 06:27:45 +1000 Subject: cmake: add option to build with LCMS also build in Release mode by default. (bzr r10525) --- CMakeScripts/DefineDependsandFlags.cmake | 11 +++++++++++ CMakeScripts/cmake_consistency_check.py | 16 ++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index b646c1679..1b68915ed 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -30,6 +30,17 @@ if(WITH_GNOME_VFS) endif() endif() +if(ENABLE_LCMS) + find_package(GnomeVFS2) + if(LCMS_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${LCMS_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LCMS_LIBRARIES}) + add_definitions(${LCMS_DEFINITIONS}) + else() + set(ENABLE_LCMS OFF) + endif() +endif() + find_package(BoehmGC REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) diff --git a/CMakeScripts/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index 979667e4e..1e225d4ed 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# $Id: cmake_consistency_check.py 38450 2011-07-17 12:42:03Z campbellbarton $ +# $Id: cmake_consistency_check.py 38869 2011-07-31 03:15:37Z campbellbarton $ # ***** BEGIN GPL LICENSE BLOCK ***** # # This program is free software; you can redistribute it and/or @@ -39,12 +39,12 @@ def replace_line(f, i, text, keep_indent=True): file_handle = open(f, 'r') data = file_handle.readlines() file_handle.close() - + l = data[i] ws = l[:len(l) - len(l.lstrip())] - + data[i] = "%s%s\n" % (ws, text) - + file_handle = open(f, 'w') file_handle.writelines(data) file_handle.close() @@ -182,13 +182,13 @@ def cmake_get_src(f): if new_path_rel != l: print("overly relative path:\n %s:%d\n %s\n %s" % (f, i, l, new_path_rel)) - + ## Save time. just replace the line # replace_line(f, i - 1, new_path_rel) - + else: raise Exception("non existant include %s:%d -> %s" % (f, i, new_file)) - + # print(new_file) global_h.update(set(sources_h)) @@ -206,7 +206,7 @@ def cmake_get_src(f): if ff not in sources_c: print(" missing: " + ff) ''' - + # reset sources_h[:] = [] sources_c[:] = [] -- cgit v1.2.3 From af72bff308bdb392312d4305a88a38fab8255e59 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 26 Sep 2011 21:01:53 +1000 Subject: cmake: aspell/gtkspell/poppler-cairo/libwpg patch #822009 to address bug #820863 from Yu-Jie Lin. (bzr r10648) --- CMakeScripts/DefineDependsandFlags.cmake | 62 ++++++++++++++-- CMakeScripts/HelperMacros.cmake | 66 +++++++++++++++++ CMakeScripts/Modules/FindGtkSpell.cmake | 28 ++++++++ CMakeScripts/Modules/FindLibWPG.cmake | 106 +++++++++------------------- CMakeScripts/Modules/FindPopplerCairo.cmake | 47 ++++++++++++ 5 files changed, 234 insertions(+), 75 deletions(-) create mode 100644 CMakeScripts/Modules/FindGtkSpell.cmake create mode 100644 CMakeScripts/Modules/FindPopplerCairo.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 1b68915ed..cf1f59996 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -46,7 +46,48 @@ list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) add_definitions(${BOEHMGC_DEFINITIONS}) -find_package(LibWPG) +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.15.1" OR + POPPLER_VERSION VERSION_EQUAL "0.15.1") + set(POPPLER_NEW_GFXPATCH ON) + endif() +else() + set(ENABLE_POPPLER_CAIRO OFF) +endif() + +list(APPEND INKSCAPE_INCS_SYS ${POPPLER_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${POPPLER_LIBRARIES}) +add_definitions(${POPPLER_DEFINITIONS}) + +if(WITH_LIBWPG) + find_package(LibWPG) + if(LIBWPG_FOUND) + set(WITH_LIBWPG01 ${LIBWPG01_FOUND}) + set(WITH_LIBWPG02 ${LIBWPG02_FOUND}) + list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) + add_definitions(${LIBWPG_DEFINITIONS}) + endif() + set(WITH_LIBWPG ${LIBWPG_FOUND}) +endif() find_package(PNG REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR}) @@ -130,9 +171,22 @@ list(APPEND INKSCAPE_INCS_SYS ${Boost_INCLUDE_DIRS}) # list(APPEND INKSCAPE_LIBS ${Boost_LIBRARIES}) find_package(ASPELL) -list(APPEND INKSCAPE_INCS_SYS ${ASPELL_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES}) -add_definitions(${ASPELL_DEFINITIONS}) +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) +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}) + endif() + set(WITH_GTKSPELL ${GTKSPELL_FOUND}) +endif() find_package(OpenSSL) list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake index 7cd2333bc..f19baf5f2 100644 --- a/CMakeScripts/HelperMacros.cmake +++ b/CMakeScripts/HelperMacros.cmake @@ -63,3 +63,69 @@ macro (add_inkscape_library 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} + ) + + 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) + + 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 _INCLUDE_DIRS and _LIBRARIES variables only in the advanced view + mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES) +endmacro() diff --git a/CMakeScripts/Modules/FindGtkSpell.cmake b/CMakeScripts/Modules/FindGtkSpell.cmake new file mode 100644 index 000000000..131ad8dc8 --- /dev/null +++ b/CMakeScripts/Modules/FindGtkSpell.cmake @@ -0,0 +1,28 @@ +# - Try to find GtkSpell +# Once done this will define +# +# GTKSPELL_FOUND - system has GtkSpell +# GTKSPELL_INCLUDE_DIRS - the GtkSpell include directory +# GTKSPELL_LIBRARIES - Link these to use GtkSpell +# GTKSPELL_DEFINITIONS - Compiler switches required for using GtkSpell +# +# Copyright (c) 2008 Joshua L. Blocher +# +# 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 (GTKSPELL_LIBRARIES AND GTKSPELL_INCLUDE_DIRS) + # in cache already + set(GTKSPELL_FOUND TRUE) +else (GTKSPELL_LIBRARIES AND GTKSPELL_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(GTKSPELL gtkspell-2.0 0 gtkspell/gtkspell.h gtkspell-2.0 gtkspell) + endif (PKG_CONFIG_FOUND) +endif (GTKSPELL_LIBRARIES AND GTKSPELL_INCLUDE_DIRS) diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 0d83cddee..4f173da2d 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -13,78 +13,42 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) if (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) - # in cache already - set(LIBWPG_FOUND TRUE) + # in cache already + set(LIBWPG_FOUND TRUE) else (LIBWPG_LIBRARIES AND LIBWPG_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(libwpg-0.1 _LIBWPG_INCLUDEDIR _LIBWPG_LIBDIR _LIBWPG_LDFLAGS _LIBWPG_CFLAGS) - else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_LIBWPG libwpg-0.1) - endif (PKG_CONFIG_FOUND) - endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path(LIBWPG_INCLUDE_DIR - NAMES - libwpg/libwpg.h - PATHS - ${_LIBWPG_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - libwpg-0.1 - ) - - find_library(LIBWPG-0.1_LIBRARY - NAMES - wpg-0.1 - PATHS - ${_LIBWPG_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (LIBWPG-0.1_LIBRARY) - set(LIBWPG-0.1_FOUND TRUE) - endif (LIBWPG-0.1_LIBRARY) - - set(LIBWPG_INCLUDE_DIRS - ${LIBWPG_INCLUDE_DIR} - ) - - if (LIBWPG-0.1_FOUND) - set(LIBWPG_LIBRARIES - ${LIBWPG_LIBRARIES} - ${LIBWPG-0.1_LIBRARY} - ) - endif (LIBWPG-0.1_FOUND) - - if (LIBWPG_INCLUDE_DIRS AND LIBWPG_LIBRARIES) - set(LIBWPG_FOUND TRUE) - endif (LIBWPG_INCLUDE_DIRS AND LIBWPG_LIBRARIES) - - if (LIBWPG_FOUND) - if (NOT LibWPG_FIND_QUIETLY) - message(STATUS "Found LibWPG: ${LIBWPG_LIBRARIES}") - endif (NOT LibWPG_FIND_QUIETLY) - else (LIBWPG_FOUND) - if (LibWPG_FIND_REQUIRED) - message(FATAL_ERROR "Could not find LibWPG") - endif (LibWPG_FIND_REQUIRED) - endif (LIBWPG_FOUND) - - # show the LIBWPG_INCLUDE_DIRS and LIBWPG_LIBRARIES variables only in the advanced view - mark_as_advanced(LIBWPG_INCLUDE_DIRS LIBWPG_LIBRARIES) - + # 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(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 (LIBWPG02_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG02_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG02_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) + set(LIBWPG_FOUND TRUE) + endif (LIBWPG01_FOUND OR LIBWPG_02_FOUND) + endif (PKG_CONFIG_FOUND) endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) - diff --git a/CMakeScripts/Modules/FindPopplerCairo.cmake b/CMakeScripts/Modules/FindPopplerCairo.cmake new file mode 100644 index 000000000..2565e7bb2 --- /dev/null +++ b/CMakeScripts/Modules/FindPopplerCairo.cmake @@ -0,0 +1,47 @@ +# - Try to find PopplerCairo +# Once done this will define +# +# POPPLER_FOUND - system has PopplerCairo +# POPPLER_INCLUDE_DIRS - the PopplerCairo include directory +# POPPLER_LIBRARIES - Link these to use PopplerCairo +# POPPLER_DEFINITIONS - Compiler switches required for using PopplerCairo +# +# Copyright (c) 2008 Joshua L. Blocher +# +# 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 (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS) + # in cache already + set(POPPLER_FOUND TRUE) +else (POPPLER_LIBRARIES AND POPPLER_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(POPPLER poppler >=0.5.9 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) + if (POPPLER_GLIB_FOUND) + list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_GLIB_INCLUDE_DIRS}) + list(APPEND POPPLER_LIBRARIES ${POPPLER_GLIB_LIBRARIES}) + INKSCAPE_PKG_CONFIG_FIND(CAIRO_SVG cairo-svg 0 cairo-svg.h cairo cairo) + if (CAIRO_SVG_FOUND) + list(APPEND POPPLER_INCLUDE_DIRS ${CAIRO_SVG_INCLUDE_DIRS}) + list(APPEND POPPLER_LIBRARIES ${CAIRO_SVG_LIBRARIES}) + 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) + 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}) + endif (POPPLER_GLIB_FOUND AND POPPLER_CAIRO_FOUND AND NOT CAIRO_SVG_FOUND) + endif (ENABLE_POPPLER_CAIRO) + endif (POPPLER_FOUND) + endif (PKG_CONFIG_FOUND) +endif (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS) -- cgit v1.2.3 From 41a60d0f4d77fbde96f6e8196af58718995da78f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 28 Sep 2011 03:44:58 +1000 Subject: fix for building when WITH_LIBWPG couldn't be found. (bzr r10651) --- 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 cf1f59996..fff82a174 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -85,8 +85,9 @@ if(WITH_LIBWPG) list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) add_definitions(${LIBWPG_DEFINITIONS}) + else() + set(WITH_LIBWPG OFF) endif() - set(WITH_LIBWPG ${LIBWPG_FOUND}) endif() find_package(PNG REQUIRED) -- cgit v1.2.3