From ac4b018a2970d4da9d2e83198274137fac497548 Mon Sep 17 00:00:00 2001 From: houz Date: Sun, 16 Aug 2015 02:13:02 +0200 Subject: Added translations to the cmake build (1451236) Fixed bugs: - https://launchpad.net/bugs/1451236 (bzr r14304) --- CMakeScripts/ConfigChecks.cmake | 1 - CMakeScripts/ConfigPaths.cmake | 4 +- CMakeScripts/DefineDependsandFlags.cmake | 13 ++ CMakeScripts/FindGettext.cmake | 237 +++++++++++++++++++++++++++++++ 4 files changed, 253 insertions(+), 2 deletions(-) create mode 100644 CMakeScripts/FindGettext.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 905465448..7ec6863eb 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -19,7 +19,6 @@ 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) diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 770e0c6ad..848e293f4 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -5,7 +5,9 @@ IF(WIN32) set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") ELSE(WIN32) # TODO: check and change this to correct value: - SET(PACKAGE_LOCALE_DIR "locale") + if(NOT PACKAGE_LOCALE_DIR) + SET(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this + endif(NOT PACKAGE_LOCALE_DIR) if(NOT SHARE_INSTALL) set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index a4dad21b1..8d6405265 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -355,6 +355,19 @@ if(WITH_IMAGE_MAGICK) endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) + +set(ENABLE_NLS OFF) +if(WITH_NLS) + find_package(Gettext) + if(GETTEXT_FOUND) + message(STATUS "Found gettext + msgfmt to convert language files. Translation enabled") + set(ENABLE_NLS ON) + else(GETTEXT_FOUND) + message(STATUS "Cannot find gettext + msgfmt to convert language file. Translation won't be enabled") + endif(GETTEXT_FOUND) +endif(WITH_NLS) + + # end Dependencies list(REMOVE_DUPLICATES INKSCAPE_LIBS) diff --git a/CMakeScripts/FindGettext.cmake b/CMakeScripts/FindGettext.cmake new file mode 100644 index 000000000..753040b40 --- /dev/null +++ b/CMakeScripts/FindGettext.cmake @@ -0,0 +1,237 @@ +#.rst: +# FindGettext +# ----------- +# +# Find GNU gettext tools +# +# This module looks for the GNU gettext tools. This module defines the +# following values: +# +# :: +# +# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool. +# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool. +# GETTEXT_FOUND: True if gettext has been found. +# GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8) +# +# +# +# Additionally it provides the following macros: +# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN ) +# +# :: +# +# This will create a target "translations" which will convert the +# given input po files into the binary output mo file. If the +# ALL option is used, the translations will also be created when +# building the default target. +# +# GETTEXT_PROCESS_POT( [ALL] [INSTALL_DESTINATION ] +# LANGUAGES ... ) +# +# :: +# +# Process the given pot file to mo files. +# If INSTALL_DESTINATION is given then automatically install rules will be created, +# the language subdirectory will be taken into account (by default use share/locale/). +# If ALL is specified, the pot file is processed when building the all traget. +# It creates a custom target "potfile". +# +# GETTEXT_PROCESS_PO_FILES( [ALL] [INSTALL_DESTINATION ] +# PO_FILES ... ) +# +# :: +# +# Process the given po files to mo files for the given language. +# If INSTALL_DESTINATION is given then automatically install rules will be created, +# the language subdirectory will be taken into account (by default use share/locale/). +# If ALL is specified, the po files are processed when building the all traget. +# It creates a custom target "pofiles". + +#============================================================================= +# Copyright 2007-2009 Kitware, Inc. +# Copyright 2007 Alexander Neundorf +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) +#============================================================================= +# This file got changed for Inkscape's purposes to name the .mo files installed with +# GETTEXT_PROCESS_PO_FILES ${CMAKE_PROJECT_NAME}.mo instead of .mo + +find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) + +find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) + +if(GETTEXT_MSGMERGE_EXECUTABLE) + execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version + OUTPUT_VARIABLE gettext_version + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (gettext_version MATCHES "^msgmerge \\(.*\\) [0-9]") + string(REGEX REPLACE "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*).*" "\\1" GETTEXT_VERSION_STRING "${gettext_version}") + endif() + unset(gettext_version) +endif() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gettext + REQUIRED_VARS GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE + VERSION_VAR GETTEXT_VERSION_STRING) + +include(CMakeParseArguments) + +function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name) + set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}") + get_property(currentCounter GLOBAL PROPERTY "${propertyName}") + if(NOT currentCounter) + set(currentCounter 1) + endif() + set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE) + math(EXPR currentCounter "${currentCounter} + 1") + set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} ) +endfunction() + +macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg) + # make it a real variable, so we can modify it here + set(_firstPoFile "${_firstPoFileArg}") + + set(_gmoFiles) + get_filename_component(_potName ${_potFile} NAME) + string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) + get_filename_component(_absPotFile ${_potFile} ABSOLUTE) + + set(_addToAll) + if(${_firstPoFile} STREQUAL "ALL") + set(_addToAll "ALL") + set(_firstPoFile) + endif() + + foreach (_currentPoFile ${_firstPoFile} ${ARGN}) + get_filename_component(_absFile ${_currentPoFile} ABSOLUTE) + get_filename_component(_abs_PATH ${_absFile} PATH) + get_filename_component(_lang ${_absFile} NAME_WE) + set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) + + add_custom_command( + OUTPUT ${_gmoFile} + COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile} + DEPENDS ${_absPotFile} ${_absFile} + ) + + install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) + set(_gmoFiles ${_gmoFiles} ${_gmoFile}) + + endforeach () + + if(NOT TARGET translations) + add_custom_target(translations) + endif() + + _GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName) + + add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles}) + + add_dependencies(translations ${uniqueTargetName}) + +endmacro() + + +function(GETTEXT_PROCESS_POT_FILE _potFile) + set(_gmoFiles) + set(_options ALL) + set(_oneValueArgs INSTALL_DESTINATION) + set(_multiValueArgs LANGUAGES) + + CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) + + get_filename_component(_potName ${_potFile} NAME) + string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) + get_filename_component(_absPotFile ${_potFile} ABSOLUTE) + + foreach (_lang ${_parsedArguments_LANGUAGES}) + set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po") + set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo") + + add_custom_command( + OUTPUT "${_poFile}" + COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile} + DEPENDS ${_absPotFile} + ) + + add_custom_command( + OUTPUT "${_gmoFile}" + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile} + DEPENDS ${_absPotFile} ${_poFile} + ) + + if(_parsedArguments_INSTALL_DESTINATION) + install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) + endif() + list(APPEND _gmoFiles ${_gmoFile}) + endforeach () + + if(NOT TARGET potfiles) + add_custom_target(potfiles) + endif() + + _GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName) + + if(_parsedArguments_ALL) + add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) + else() + add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) + endif() + + add_dependencies(potfiles ${uniqueTargetName}) + +endfunction() + + +function(GETTEXT_PROCESS_PO_FILES _lang) + set(_options ALL) + set(_oneValueArgs INSTALL_DESTINATION) + set(_multiValueArgs PO_FILES) + set(_gmoFiles) + + CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) + + foreach(_current_PO_FILE ${_parsedArguments_PO_FILES}) + get_filename_component(_name ${_current_PO_FILE} NAME) + string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name}) + set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo) + add_custom_command(OUTPUT ${_gmoFile} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + DEPENDS ${_current_PO_FILE} + ) + + if(_parsedArguments_INSTALL_DESTINATION) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${CMAKE_PROJECT_NAME}.mo) + endif() + list(APPEND _gmoFiles ${_gmoFile}) + endforeach() + + + if(NOT TARGET pofiles) + add_custom_target(pofiles) + endif() + + _GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName) + + if(_parsedArguments_ALL) + add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) + else() + add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) + endif() + + add_dependencies(pofiles ${uniqueTargetName}) + +endfunction() -- cgit v1.2.3 From 5d1bc1e7ad9fdfac1d044616a5c5c072fb86a3ee Mon Sep 17 00:00:00 2001 From: houz Date: Wed, 2 Sep 2015 15:40:51 +0200 Subject: remove unneccessary include from r14304 (bzr r14340) --- CMakeScripts/FindGettext.cmake | 237 --------------------------------- CMakeScripts/Modules/FindGettext.cmake | 237 +++++++++++++++++++++++++++++++++ 2 files changed, 237 insertions(+), 237 deletions(-) delete mode 100644 CMakeScripts/FindGettext.cmake create mode 100644 CMakeScripts/Modules/FindGettext.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/FindGettext.cmake b/CMakeScripts/FindGettext.cmake deleted file mode 100644 index 753040b40..000000000 --- a/CMakeScripts/FindGettext.cmake +++ /dev/null @@ -1,237 +0,0 @@ -#.rst: -# FindGettext -# ----------- -# -# Find GNU gettext tools -# -# This module looks for the GNU gettext tools. This module defines the -# following values: -# -# :: -# -# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool. -# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool. -# GETTEXT_FOUND: True if gettext has been found. -# GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8) -# -# -# -# Additionally it provides the following macros: -# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN ) -# -# :: -# -# This will create a target "translations" which will convert the -# given input po files into the binary output mo file. If the -# ALL option is used, the translations will also be created when -# building the default target. -# -# GETTEXT_PROCESS_POT( [ALL] [INSTALL_DESTINATION ] -# LANGUAGES ... ) -# -# :: -# -# Process the given pot file to mo files. -# If INSTALL_DESTINATION is given then automatically install rules will be created, -# the language subdirectory will be taken into account (by default use share/locale/). -# If ALL is specified, the pot file is processed when building the all traget. -# It creates a custom target "potfile". -# -# GETTEXT_PROCESS_PO_FILES( [ALL] [INSTALL_DESTINATION ] -# PO_FILES ... ) -# -# :: -# -# Process the given po files to mo files for the given language. -# If INSTALL_DESTINATION is given then automatically install rules will be created, -# the language subdirectory will be taken into account (by default use share/locale/). -# If ALL is specified, the po files are processed when building the all traget. -# It creates a custom target "pofiles". - -#============================================================================= -# Copyright 2007-2009 Kitware, Inc. -# Copyright 2007 Alexander Neundorf -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) -#============================================================================= -# This file got changed for Inkscape's purposes to name the .mo files installed with -# GETTEXT_PROCESS_PO_FILES ${CMAKE_PROJECT_NAME}.mo instead of .mo - -find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) - -find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) - -if(GETTEXT_MSGMERGE_EXECUTABLE) - execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version - OUTPUT_VARIABLE gettext_version - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) - if (gettext_version MATCHES "^msgmerge \\(.*\\) [0-9]") - string(REGEX REPLACE "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*).*" "\\1" GETTEXT_VERSION_STRING "${gettext_version}") - endif() - unset(gettext_version) -endif() - -include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gettext - REQUIRED_VARS GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE - VERSION_VAR GETTEXT_VERSION_STRING) - -include(CMakeParseArguments) - -function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name) - set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}") - get_property(currentCounter GLOBAL PROPERTY "${propertyName}") - if(NOT currentCounter) - set(currentCounter 1) - endif() - set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE) - math(EXPR currentCounter "${currentCounter} + 1") - set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} ) -endfunction() - -macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg) - # make it a real variable, so we can modify it here - set(_firstPoFile "${_firstPoFileArg}") - - set(_gmoFiles) - get_filename_component(_potName ${_potFile} NAME) - string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) - get_filename_component(_absPotFile ${_potFile} ABSOLUTE) - - set(_addToAll) - if(${_firstPoFile} STREQUAL "ALL") - set(_addToAll "ALL") - set(_firstPoFile) - endif() - - foreach (_currentPoFile ${_firstPoFile} ${ARGN}) - get_filename_component(_absFile ${_currentPoFile} ABSOLUTE) - get_filename_component(_abs_PATH ${_absFile} PATH) - get_filename_component(_lang ${_absFile} NAME_WE) - set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) - - add_custom_command( - OUTPUT ${_gmoFile} - COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile} - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile} - DEPENDS ${_absPotFile} ${_absFile} - ) - - install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) - set(_gmoFiles ${_gmoFiles} ${_gmoFile}) - - endforeach () - - if(NOT TARGET translations) - add_custom_target(translations) - endif() - - _GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName) - - add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles}) - - add_dependencies(translations ${uniqueTargetName}) - -endmacro() - - -function(GETTEXT_PROCESS_POT_FILE _potFile) - set(_gmoFiles) - set(_options ALL) - set(_oneValueArgs INSTALL_DESTINATION) - set(_multiValueArgs LANGUAGES) - - CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) - - get_filename_component(_potName ${_potFile} NAME) - string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) - get_filename_component(_absPotFile ${_potFile} ABSOLUTE) - - foreach (_lang ${_parsedArguments_LANGUAGES}) - set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po") - set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo") - - add_custom_command( - OUTPUT "${_poFile}" - COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile} - DEPENDS ${_absPotFile} - ) - - add_custom_command( - OUTPUT "${_gmoFile}" - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile} - DEPENDS ${_absPotFile} ${_poFile} - ) - - if(_parsedArguments_INSTALL_DESTINATION) - install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) - endif() - list(APPEND _gmoFiles ${_gmoFile}) - endforeach () - - if(NOT TARGET potfiles) - add_custom_target(potfiles) - endif() - - _GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName) - - if(_parsedArguments_ALL) - add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) - else() - add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) - endif() - - add_dependencies(potfiles ${uniqueTargetName}) - -endfunction() - - -function(GETTEXT_PROCESS_PO_FILES _lang) - set(_options ALL) - set(_oneValueArgs INSTALL_DESTINATION) - set(_multiValueArgs PO_FILES) - set(_gmoFiles) - - CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) - - foreach(_current_PO_FILE ${_parsedArguments_PO_FILES}) - get_filename_component(_name ${_current_PO_FILE} NAME) - string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name}) - set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo) - add_custom_command(OUTPUT ${_gmoFile} - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - DEPENDS ${_current_PO_FILE} - ) - - if(_parsedArguments_INSTALL_DESTINATION) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${CMAKE_PROJECT_NAME}.mo) - endif() - list(APPEND _gmoFiles ${_gmoFile}) - endforeach() - - - if(NOT TARGET pofiles) - add_custom_target(pofiles) - endif() - - _GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName) - - if(_parsedArguments_ALL) - add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) - else() - add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) - endif() - - add_dependencies(pofiles ${uniqueTargetName}) - -endfunction() diff --git a/CMakeScripts/Modules/FindGettext.cmake b/CMakeScripts/Modules/FindGettext.cmake new file mode 100644 index 000000000..753040b40 --- /dev/null +++ b/CMakeScripts/Modules/FindGettext.cmake @@ -0,0 +1,237 @@ +#.rst: +# FindGettext +# ----------- +# +# Find GNU gettext tools +# +# This module looks for the GNU gettext tools. This module defines the +# following values: +# +# :: +# +# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool. +# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool. +# GETTEXT_FOUND: True if gettext has been found. +# GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8) +# +# +# +# Additionally it provides the following macros: +# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN ) +# +# :: +# +# This will create a target "translations" which will convert the +# given input po files into the binary output mo file. If the +# ALL option is used, the translations will also be created when +# building the default target. +# +# GETTEXT_PROCESS_POT( [ALL] [INSTALL_DESTINATION ] +# LANGUAGES ... ) +# +# :: +# +# Process the given pot file to mo files. +# If INSTALL_DESTINATION is given then automatically install rules will be created, +# the language subdirectory will be taken into account (by default use share/locale/). +# If ALL is specified, the pot file is processed when building the all traget. +# It creates a custom target "potfile". +# +# GETTEXT_PROCESS_PO_FILES( [ALL] [INSTALL_DESTINATION ] +# PO_FILES ... ) +# +# :: +# +# Process the given po files to mo files for the given language. +# If INSTALL_DESTINATION is given then automatically install rules will be created, +# the language subdirectory will be taken into account (by default use share/locale/). +# If ALL is specified, the po files are processed when building the all traget. +# It creates a custom target "pofiles". + +#============================================================================= +# Copyright 2007-2009 Kitware, Inc. +# Copyright 2007 Alexander Neundorf +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) +#============================================================================= +# This file got changed for Inkscape's purposes to name the .mo files installed with +# GETTEXT_PROCESS_PO_FILES ${CMAKE_PROJECT_NAME}.mo instead of .mo + +find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) + +find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) + +if(GETTEXT_MSGMERGE_EXECUTABLE) + execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version + OUTPUT_VARIABLE gettext_version + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (gettext_version MATCHES "^msgmerge \\(.*\\) [0-9]") + string(REGEX REPLACE "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*).*" "\\1" GETTEXT_VERSION_STRING "${gettext_version}") + endif() + unset(gettext_version) +endif() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gettext + REQUIRED_VARS GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE + VERSION_VAR GETTEXT_VERSION_STRING) + +include(CMakeParseArguments) + +function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name) + set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}") + get_property(currentCounter GLOBAL PROPERTY "${propertyName}") + if(NOT currentCounter) + set(currentCounter 1) + endif() + set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE) + math(EXPR currentCounter "${currentCounter} + 1") + set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} ) +endfunction() + +macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg) + # make it a real variable, so we can modify it here + set(_firstPoFile "${_firstPoFileArg}") + + set(_gmoFiles) + get_filename_component(_potName ${_potFile} NAME) + string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) + get_filename_component(_absPotFile ${_potFile} ABSOLUTE) + + set(_addToAll) + if(${_firstPoFile} STREQUAL "ALL") + set(_addToAll "ALL") + set(_firstPoFile) + endif() + + foreach (_currentPoFile ${_firstPoFile} ${ARGN}) + get_filename_component(_absFile ${_currentPoFile} ABSOLUTE) + get_filename_component(_abs_PATH ${_absFile} PATH) + get_filename_component(_lang ${_absFile} NAME_WE) + set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) + + add_custom_command( + OUTPUT ${_gmoFile} + COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile} + DEPENDS ${_absPotFile} ${_absFile} + ) + + install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) + set(_gmoFiles ${_gmoFiles} ${_gmoFile}) + + endforeach () + + if(NOT TARGET translations) + add_custom_target(translations) + endif() + + _GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName) + + add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles}) + + add_dependencies(translations ${uniqueTargetName}) + +endmacro() + + +function(GETTEXT_PROCESS_POT_FILE _potFile) + set(_gmoFiles) + set(_options ALL) + set(_oneValueArgs INSTALL_DESTINATION) + set(_multiValueArgs LANGUAGES) + + CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) + + get_filename_component(_potName ${_potFile} NAME) + string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName}) + get_filename_component(_absPotFile ${_potFile} ABSOLUTE) + + foreach (_lang ${_parsedArguments_LANGUAGES}) + set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po") + set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo") + + add_custom_command( + OUTPUT "${_poFile}" + COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile} + DEPENDS ${_absPotFile} + ) + + add_custom_command( + OUTPUT "${_gmoFile}" + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile} + DEPENDS ${_absPotFile} ${_poFile} + ) + + if(_parsedArguments_INSTALL_DESTINATION) + install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) + endif() + list(APPEND _gmoFiles ${_gmoFile}) + endforeach () + + if(NOT TARGET potfiles) + add_custom_target(potfiles) + endif() + + _GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName) + + if(_parsedArguments_ALL) + add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) + else() + add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) + endif() + + add_dependencies(potfiles ${uniqueTargetName}) + +endfunction() + + +function(GETTEXT_PROCESS_PO_FILES _lang) + set(_options ALL) + set(_oneValueArgs INSTALL_DESTINATION) + set(_multiValueArgs PO_FILES) + set(_gmoFiles) + + CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN}) + + foreach(_current_PO_FILE ${_parsedArguments_PO_FILES}) + get_filename_component(_name ${_current_PO_FILE} NAME) + string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name}) + set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo) + add_custom_command(OUTPUT ${_gmoFile} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + DEPENDS ${_current_PO_FILE} + ) + + if(_parsedArguments_INSTALL_DESTINATION) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${CMAKE_PROJECT_NAME}.mo) + endif() + list(APPEND _gmoFiles ${_gmoFile}) + endforeach() + + + if(NOT TARGET pofiles) + add_custom_target(pofiles) + endif() + + _GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName) + + if(_parsedArguments_ALL) + add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles}) + else() + add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles}) + endif() + + add_dependencies(pofiles ${uniqueTargetName}) + +endfunction() -- cgit v1.2.3 From 6e64fe28600be374c09f456d6b0076a5fc02f02c Mon Sep 17 00:00:00 2001 From: su_v Date: Wed, 2 Sep 2015 19:25:24 +0200 Subject: cmake: make JPEG optional; fix using it (if found) (bzr r14341) --- CMakeScripts/DefineDependsandFlags.cmake | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 8d6405265..e6089daa4 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -181,13 +181,12 @@ if(WITH_LIBCDR) endif() endif() -FIND_PACKAGE(JPEG REQUIRED) -#IF(JPEG_FOUND) - #INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) - #TARGET_LINK_LIBRARIES(mpo ${JPEG_LIBRARIES}) -#ENDIF() -list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES}) +FIND_PACKAGE(JPEG) +IF(JPEG_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES}) + set(HAVE_JPEG ON) +ENDIF() find_package(PNG REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR}) -- cgit v1.2.3 From 0d4e511c524d9102d90adbf2defea4f644eb3edd Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Mon, 26 Oct 2015 23:50:52 +0100 Subject: add gtk3 experimental support in CMake Fixed bugs: - https://launchpad.net/bugs/1509969 (bzr r14430) --- CMakeScripts/DefineDependsandFlags.cmake | 148 +++++++++++++++++++++---------- 1 file changed, 100 insertions(+), 48 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index e6089daa4..63e4315b8 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -220,55 +220,107 @@ endif() # CMake's builtin # ---------------------------------------------------------------------------- +SET (TRY_GTKSPELL 1) # Include dependencies: # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added -find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) -list(APPEND INKSCAPE_INCS_SYS - ${GTK2_GDK_INCLUDE_DIR} - ${GTK2_GDKMM_INCLUDE_DIR} - ${GTK2_GDK_PIXBUF_INCLUDE_DIR} - ${GTK2_GDKCONFIG_INCLUDE_DIR} - ${GTK2_GDKMMCONFIG_INCLUDE_DIR} - ${GTK2_GLIB_INCLUDE_DIR} - ${GTK2_GLIBCONFIG_INCLUDE_DIR} - ${GTK2_GLIBMM_INCLUDE_DIR} - ${GTK2_GLIBMMCONFIG_INCLUDE_DIR} - ${GTK2_GTK_INCLUDE_DIR} - ${GTK2_GTKMM_INCLUDE_DIR} - ${GTK2_GTKMMCONFIG_INCLUDE_DIR} - ${GTK2_ATK_INCLUDE_DIR} - ${GTK2_ATKMM_INCLUDE_DIR} - ${GTK2_PANGO_INCLUDE_DIR} - ${GTK2_PANGOMM_INCLUDE_DIR} - ${GTK2_PANGOMMCONFIG_INCLUDE_DIR} - ${GTK2_CAIRO_INCLUDE_DIR} - ${GTK2_CAIROMM_INCLUDE_DIR} - ${GTK2_CAIROMMCONFIG_INCLUDE_DIR} # <-- not in cmake 2.8.4 - ${GTK2_GIOMM_INCLUDE_DIR} - ${GTK2_GIOMMCONFIG_INCLUDE_DIR} - ${GTK2_SIGC++_INCLUDE_DIR} - ${GTK2_SIGC++CONFIG_INCLUDE_DIR} -) - -list(APPEND INKSCAPE_LIBS - ${GTK2_GDK_LIBRARY} - ${GTK2_GDKMM_LIBRARY} - ${GTK2_GDK_PIXBUF_LIBRARY} - ${GTK2_GLIB_LIBRARY} - ${GTK2_GLIBMM_LIBRARY} - ${GTK2_GTK_LIBRARY} - ${GTK2_GTKMM_LIBRARY} - ${GTK2_ATK_LIBRARY} - ${GTK2_ATKMM_LIBRARY} - ${GTK2_PANGO_LIBRARY} - ${GTK2_PANGOMM_LIBRARY} - ${GTK2_CAIRO_LIBRARY} - ${GTK2_CAIROMM_LIBRARY} - ${GTK2_GIOMM_LIBRARY} - ${GTK2_SIGC++_LIBRARY} - ${GTK2_GOBJECT_LIBRARY} -) - +IF ("${WITH_GTK3_EXPERIMENTAL}") + pkg_check_modules( + GTK + REQUIRED + gtkmm-3.0>=3.2 + gdkmm-3.0>=3.2 + gtk+-3.0>=3.2 + gdk-3.0>=3.2 + gdl-3.0>=3.3.5 + ) + message("Using EXPERIMENTAL Gtkmm 3 build") + SET (WITH_GTKMM_3_0 1) + message("Using external GDL") + SET(WITH_EXT_GDL 1) + + # Check whether we can use new features in Gtkmm 3.10 + # TODO: Drop this test and bump the version number in the GTK test above + # as soon as all supported distributions provide Gtkmm >= 3.10 + pkg_check_modules(GTKMM_3_10 + gtkmm-3.0>=3.10, + ) + + IF ("${GTKMM_3_10_FOUND}") + message("Using Gtkmm 3.10 build") + SET (WITH_GTKMM_3_10 1) + ENDIF() + + pkg_check_modules(GDL_3_6 gdl-3.0>=3.6) + + IF ("${GDL_3_6_FOUND}") + message("Using Gdl 3.6 or higher") + SET (WITH_GDL_3_6 1) + ENDIF() + + SET (TRY_GTKSPELL ) + pkg_check_modules(GTKSPELL3 gtkspell3-3.0) + + IF ("${GTKSPELL3_FOUND}") + message("Using GtkSpell3 3.0") + SET (WITH_GTKSPELL 1) + ENDIF() + list(APPEND INKSCAPE_INCS_SYS + ${GTK_INCLUDE_DIRS} + ${GTKSPELL3_INCLUDE_DIRS} + ) + + list(APPEND INKSCAPE_LIBS + ${GTK_LIBRARIES} + ${GTKSPELL3_LIBRARIES} + ) +ELSE() + find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) + list(APPEND INKSCAPE_INCS_SYS + ${GTK2_GDK_INCLUDE_DIR} + ${GTK2_GDKMM_INCLUDE_DIR} + ${GTK2_GDK_PIXBUF_INCLUDE_DIR} + ${GTK2_GDKCONFIG_INCLUDE_DIR} + ${GTK2_GDKMMCONFIG_INCLUDE_DIR} + ${GTK2_GLIB_INCLUDE_DIR} + ${GTK2_GLIBCONFIG_INCLUDE_DIR} + ${GTK2_GLIBMM_INCLUDE_DIR} + ${GTK2_GLIBMMCONFIG_INCLUDE_DIR} + ${GTK2_GTK_INCLUDE_DIR} + ${GTK2_GTKMM_INCLUDE_DIR} + ${GTK2_GTKMMCONFIG_INCLUDE_DIR} + ${GTK2_ATK_INCLUDE_DIR} + ${GTK2_ATKMM_INCLUDE_DIR} + ${GTK2_PANGO_INCLUDE_DIR} + ${GTK2_PANGOMM_INCLUDE_DIR} + ${GTK2_PANGOMMCONFIG_INCLUDE_DIR} + ${GTK2_CAIRO_INCLUDE_DIR} + ${GTK2_CAIROMM_INCLUDE_DIR} + ${GTK2_CAIROMMCONFIG_INCLUDE_DIR} # <-- not in cmake 2.8.4 + ${GTK2_GIOMM_INCLUDE_DIR} + ${GTK2_GIOMMCONFIG_INCLUDE_DIR} + ${GTK2_SIGC++_INCLUDE_DIR} + ${GTK2_SIGC++CONFIG_INCLUDE_DIR} + ) + + list(APPEND INKSCAPE_LIBS + ${GTK2_GDK_LIBRARY} + ${GTK2_GDKMM_LIBRARY} + ${GTK2_GDK_PIXBUF_LIBRARY} + ${GTK2_GLIB_LIBRARY} + ${GTK2_GLIBMM_LIBRARY} + ${GTK2_GTK_LIBRARY} + ${GTK2_GTKMM_LIBRARY} + ${GTK2_ATK_LIBRARY} + ${GTK2_ATKMM_LIBRARY} + ${GTK2_PANGO_LIBRARY} + ${GTK2_PANGOMM_LIBRARY} + ${GTK2_CAIRO_LIBRARY} + ${GTK2_CAIROMM_LIBRARY} + ${GTK2_GIOMM_LIBRARY} + ${GTK2_SIGC++_LIBRARY} + ${GTK2_GOBJECT_LIBRARY} + ) +ENDIF() find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) @@ -286,7 +338,7 @@ if(ASPELL_FOUND) set(HAVE_ASPELL TRUE) endif() -if(WITH_GTKSPELL) +if("${TRY_GTKSPELL}" AND "${WITH_GTKSPELL}") find_package(GtkSpell) if(GTKSPELL_FOUND) list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR}) -- cgit v1.2.3 From 6484d2580d5facccf1b4bd7719c5d26fb8d07602 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 9 Nov 2015 00:03:27 +0000 Subject: Add CMake check for Potrace from OSP: http://goo.gl/AEzbkQ Fixed bugs: - https://launchpad.net/bugs/1156664 (bzr r14449.1.3) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++++ CMakeScripts/Modules/FindPotrace.cmake | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 CMakeScripts/Modules/FindPotrace.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 63e4315b8..e0857f265 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -197,6 +197,10 @@ list(APPEND INKSCAPE_INCS_SYS ${POPT_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) +find_package(Potrace REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) + if(WITH_DBUS) find_package(DBus REQUIRED) if(DBUS_FOUND) diff --git a/CMakeScripts/Modules/FindPotrace.cmake b/CMakeScripts/Modules/FindPotrace.cmake new file mode 100644 index 000000000..a542394fe --- /dev/null +++ b/CMakeScripts/Modules/FindPotrace.cmake @@ -0,0 +1,36 @@ +# POTRACE_FOUND - system has Potrace +# POTRACE_INCLUDE_DIR - the Potrace include directory +# POTRACE_LIBRARIES - The libraries needed to use Potrace + +FIND_PATH(POTRACE_INCLUDE_DIR potracelib.h + /usr/include + /usr/local/include +) + +FIND_LIBRARY(POTRACE_LIBRARY NAMES potrace libpotrace + PATHS + /usr/lib + /usr/local/lib +) + +if (POTRACE_INCLUDE_DIR AND POTRACE_LIBRARY) + set(POTRACE_FOUND TRUE) + set(POTRACE_LIBRARIES ${POTRACE_LIBRARY}) +else (POTRACE_INCLUDE_DIR AND POTRACE_LIBRARY) + set(POTRACE_FOUND FALSE) +endif (POTRACE_INCLUDE_DIR AND POTRACE_LIBRARY) + +if (POTRACE_FOUND) + if (NOT Potrace_FIND_QUIETLY) + message(STATUS "Found potrace: ${POTRACE_LIBRARIES}") + endif (NOT Potrace_FIND_QUIETLY) +else (POTRACE_FOUND) + if (NOT Potrace_FIND_QUIETLY) + + message(STATUS "don't find potrace") + + endif (NOT Potrace_FIND_QUIETLY) +endif (POTRACE_FOUND) + +MARK_AS_ADVANCED(POTRACE_INCLUDE_DIR POTRACE_LIBRARIES POTRACE_LIBRARY) + -- cgit v1.2.3 From ac1a99494b6afaf5673f260f0e75559eff3b5ff5 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 12 Nov 2015 22:35:18 +0000 Subject: Update cmake Potrace module to match style of others (bzr r14449.1.5) --- CMakeScripts/DefineDependsandFlags.cmake | 2 +- CMakeScripts/Modules/FindPotrace.cmake | 92 ++++++++++++++++++++------------ 2 files changed, 60 insertions(+), 34 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index e0857f265..ea0867535 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -198,7 +198,7 @@ list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) find_package(Potrace REQUIRED) -list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIR}) +list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) if(WITH_DBUS) diff --git a/CMakeScripts/Modules/FindPotrace.cmake b/CMakeScripts/Modules/FindPotrace.cmake index a542394fe..9ab995278 100644 --- a/CMakeScripts/Modules/FindPotrace.cmake +++ b/CMakeScripts/Modules/FindPotrace.cmake @@ -1,36 +1,62 @@ # POTRACE_FOUND - system has Potrace -# POTRACE_INCLUDE_DIR - the Potrace include directory +# POTRACE_INCLUDE_DIRS - the Potrace include directory # POTRACE_LIBRARIES - The libraries needed to use Potrace -FIND_PATH(POTRACE_INCLUDE_DIR potracelib.h - /usr/include - /usr/local/include -) - -FIND_LIBRARY(POTRACE_LIBRARY NAMES potrace libpotrace - PATHS - /usr/lib - /usr/local/lib -) - -if (POTRACE_INCLUDE_DIR AND POTRACE_LIBRARY) - set(POTRACE_FOUND TRUE) - set(POTRACE_LIBRARIES ${POTRACE_LIBRARY}) -else (POTRACE_INCLUDE_DIR AND POTRACE_LIBRARY) - set(POTRACE_FOUND FALSE) -endif (POTRACE_INCLUDE_DIR AND POTRACE_LIBRARY) - -if (POTRACE_FOUND) - if (NOT Potrace_FIND_QUIETLY) - message(STATUS "Found potrace: ${POTRACE_LIBRARIES}") - endif (NOT Potrace_FIND_QUIETLY) -else (POTRACE_FOUND) - if (NOT Potrace_FIND_QUIETLY) - - message(STATUS "don't find potrace") - - endif (NOT Potrace_FIND_QUIETLY) -endif (POTRACE_FOUND) - -MARK_AS_ADVANCED(POTRACE_INCLUDE_DIR POTRACE_LIBRARIES POTRACE_LIBRARY) - +IF (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS) + # in cache already + SET(POTRACE_FOUND TRUE) +ELSE (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS) + FIND_PATH (POTRACE_INCLUDE_DIR + NAMES + potracelib.h + PATHS + /usr/include + /usr/local/include + $ENV{DEVLIBS_PATH}/include + PATH_SUFFIXES + potrace + ) + + FIND_LIBRARY (POTRACE_LIBRARY + NAMES + potrace + libpotrace + PATHS + /usr/lib + /usr/local/lib + $ENV{DEVLIBS_PATH}/lib + ) + + if (POTRACE_LIBRARY) + set (POTRACE_FOUND TRUE) + endif (POTRACE_LIBRARY) + + set (POTRACE_INCLUDE_DIRS + ${POTRACE_INCLUDE_DIR} + ) + + if (POTRACE_FOUND) + set(POTRACE_LIBRARIES + ${POTRACE_LIBRARIES} + ${POTRACE_LIBRARY} + ) + endif (POTRACE_FOUND) + + if (POTRACE_INCLUDE_DIRS AND POTRACE_LIBRARIES) + set(POTRACE_FOUND TRUE) + endif (POTRACE_INCLUDE_DIRS AND POTRACE_LIBRARIES) + + if (POTRACE_FOUND) + if (NOT Potrace_FIND_QUIETLY) + message(STATUS "Found Potrace: ${POTRACE_LIBRARIES}") + endif (NOT Potrace_FIND_QUIETLY) + else (POTRACE_FOUND) + if (Potrace_FIND_REQUIRED) + message(FATAL_ERROR "Could not find potrace") + endif (Potrace_FIND_REQUIRED) + endif (POTRACE_FOUND) + + # show the POTRACE_INCLUDE_DIRS and POTRACE_LIBRARIES variables only in the advanced view + MARK_AS_ADVANCED(POTRACE_INCLUDE_DIRS POTRACE_LIBRARIES) + +endif (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS) -- cgit v1.2.3 From ec3c0a24bb14d96bfcef72cdd72326fce2790eff Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 12 Nov 2015 23:44:26 +0000 Subject: Fix CMake build (bzr r14449.1.6) --- CMakeScripts/DefineDependsandFlags.cmake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index ea0867535..3f1d06e4c 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -197,9 +197,13 @@ list(APPEND INKSCAPE_INCS_SYS ${POPT_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) -find_package(Potrace REQUIRED) -list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS}) -list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) +find_package(Potrace) +if(POTRACE_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) + set(HAVE_POTRACE ON) + add_definitions(-DHAVE_POTRACE) +endif() if(WITH_DBUS) find_package(DBus REQUIRED) -- cgit v1.2.3 From d4f332ed03e831ee781c1ba169bd7a35b2869989 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 21 Nov 2015 12:39:06 +0000 Subject: Add warning about missing Potrace to CMake build (bzr r14449.1.8) --- CMakeScripts/DefineDependsandFlags.cmake | 3 +++ 1 file changed, 3 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 3f1d06e4c..f4992de5d 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -203,6 +203,9 @@ if(POTRACE_FOUND) list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) set(HAVE_POTRACE ON) add_definitions(-DHAVE_POTRACE) +else(POTRACE_FOUND) + set(HAVE_POTRACE OFF) + message(STATUS "Could not locate the Potrace library headers: the Trace Bitmap and Paintbucket tools will be disabled") endif() if(WITH_DBUS) -- cgit v1.2.3 From 926cd79383db18f325adfbc24be8bb4fd32f06b9 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sun, 27 Dec 2015 17:08:31 +0000 Subject: Apply Tav/suv patch to replace Pango OT functions with Harfbuzz Fixed bugs: - https://launchpad.net/bugs/1488159 (bzr r14549) --- CMakeScripts/DefineDependsandFlags.cmake | 3 +++ 1 file changed, 3 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index f4992de5d..14bb78416 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -21,6 +21,7 @@ if (WIN32) list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME + list(APPEND INKSCAPE_LIBS "-lharfbuzz-0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME elseif(APPLE) @@ -33,6 +34,7 @@ elseif(APPLE) endif() list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lharfbuzz") # FIXME list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME if(${GTK+_2.0_TARGET} MATCHES "x11") # only link X11 if using X11 backend of GTK2 @@ -42,6 +44,7 @@ else() list(APPEND INKSCAPE_LIBS "-ldl") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lharfbuzz") # FIXME list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() -- cgit v1.2.3 From b9e569809a4e82a5593c114c5839ae060c220b67 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sun, 27 Dec 2015 18:35:20 +0000 Subject: Revert Pango/Harfbuzz fixes. Needs work (bzr r14552) --- CMakeScripts/DefineDependsandFlags.cmake | 3 --- 1 file changed, 3 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 14bb78416..f4992de5d 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -21,7 +21,6 @@ if (WIN32) list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lharfbuzz-0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME elseif(APPLE) @@ -34,7 +33,6 @@ elseif(APPLE) endif() list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lharfbuzz") # FIXME list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME if(${GTK+_2.0_TARGET} MATCHES "x11") # only link X11 if using X11 backend of GTK2 @@ -44,7 +42,6 @@ else() list(APPEND INKSCAPE_LIBS "-ldl") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lharfbuzz") # FIXME list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() -- cgit v1.2.3 From 0290dcac6a900038f2950f21efb95f495c1fc8de Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 11 Jan 2016 15:02:29 +0000 Subject: Update CMake for poppler >= 0.20.0 dependency (bzr r14574) --- CMakeScripts/DefineDependsandFlags.cmake | 16 ---------------- CMakeScripts/Modules/FindPopplerCairo.cmake | 6 +++--- 2 files changed, 3 insertions(+), 19 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index f4992de5d..e745b871f 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -105,14 +105,6 @@ if(ENABLE_POPPLER) set(HAVE_POPPLER_GLIB ON) endif() endif() - if(POPPLER_VERSION VERSION_GREATER "0.8.3" OR - POPPLER_VERSION VERSION_EQUAL "0.8.3") - set(POPPLER_NEW_GFXFONT ON) - endif() - if(POPPLER_VERSION VERSION_GREATER "0.12.2" OR - POPPLER_VERSION VERSION_EQUAL "0.12.2") - set(POPPLER_NEW_COLOR_SPACE_API ON) - endif() if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR POPPLER_VERSION VERSION_EQUAL "0.26.0") set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON) @@ -121,14 +113,6 @@ if(ENABLE_POPPLER) POPPLER_VERSION VERSION_EQUAL "0.29.0") set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) endif() - if(POPPLER_VERSION VERSION_GREATER "0.15.1" OR - POPPLER_VERSION VERSION_EQUAL "0.15.1") - set(POPPLER_NEW_GFXPATCH ON) - endif() - if(POPPLER_VERSION VERSION_GREATER "0.20.0" OR - POPPLER_VERSION VERSION_EQUAL "0.20.0") - set(POPPLER_NEW_ERRORAPI ON) - endif() else() set(ENABLE_POPPLER_CAIRO OFF) endif() diff --git a/CMakeScripts/Modules/FindPopplerCairo.cmake b/CMakeScripts/Modules/FindPopplerCairo.cmake index 2565e7bb2..bde884ec6 100644 --- a/CMakeScripts/Modules/FindPopplerCairo.cmake +++ b/CMakeScripts/Modules/FindPopplerCairo.cmake @@ -23,9 +23,9 @@ else (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS) # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig) if (PKG_CONFIG_FOUND) - INKSCAPE_PKG_CONFIG_FIND(POPPLER poppler >=0.5.9 poppler-config.h poppler poppler) + INKSCAPE_PKG_CONFIG_FIND(POPPLER poppler >=0.20.0 poppler-config.h poppler poppler) if (POPPLER_FOUND) - INKSCAPE_PKG_CONFIG_FIND(POPPLER_GLIB poppler-glib >=0.5.9 poppler/glib/poppler.h "" poppler-glib) + INKSCAPE_PKG_CONFIG_FIND(POPPLER_GLIB poppler-glib >=0.20.0 poppler/glib/poppler.h "" poppler-glib) if (POPPLER_GLIB_FOUND) list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_GLIB_INCLUDE_DIRS}) list(APPEND POPPLER_LIBRARIES ${POPPLER_GLIB_LIBRARIES}) @@ -36,7 +36,7 @@ else (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS) endif (CAIRO_SVG_FOUND) endif (POPPLER_GLIB_FOUND) if (ENABLE_POPPLER_CAIRO) - INKSCAPE_PKG_CONFIG_FIND(POPPLER_CAIRO poppler-cairo >=0.5.9 cairo.h cairo cairo) + INKSCAPE_PKG_CONFIG_FIND(POPPLER_CAIRO poppler-cairo >=0.20.0 cairo.h cairo cairo) if (POPPLER_GLIB_FOUND AND POPPLER_CAIRO_FOUND AND NOT CAIRO_SVG_FOUND) list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_CAIRO_INCLUDE_DIRS}) list(APPEND POPPLER_LIBRARIES ${POPPLER_CAIRO_LIBRARIES}) -- cgit v1.2.3 From e00e4acb1228491d7aebd45779e7337c2fab9cc7 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Fri, 15 Jan 2016 23:54:47 -0800 Subject: cmake: Move join() to helper functions module (bzr r14588) --- CMakeScripts/HelperFunctions.cmake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'CMakeScripts') diff --git a/CMakeScripts/HelperFunctions.cmake b/CMakeScripts/HelperFunctions.cmake index 0e6fff51a..85cbe7157 100644 --- a/CMakeScripts/HelperFunctions.cmake +++ b/CMakeScripts/HelperFunctions.cmake @@ -17,3 +17,18 @@ function(pkg_check_variable _pkg _name) set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable ${_name} of ${_pkg}") endfunction() + +# Join a cmake list of strings with a given glue character/string +# E.g. join(MY_RESULT, ",", "1; 2; 3;") returns "1, 2, 3" +function(join OUTPUT GLUE) + set(_TMP_RESULT "") + set(_GLUE "") # effective glue is empty at the beginning + foreach(arg ${ARGN}) + # Skip empty lines + if(NOT arg STREQUAL "\n") + set(_TMP_RESULT "${_TMP_RESULT}${_GLUE}${arg}") + set(_GLUE "${GLUE}") + endif() + endforeach() + set(${OUTPUT} "${_TMP_RESULT}" PARENT_SCOPE) +endfunction() -- cgit v1.2.3 From 6be12fc8537ee62b451a6ac38ad2c9bd24c8657c Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Fri, 15 Jan 2016 23:55:44 -0800 Subject: cmake: Move pod2man macro into its own module (bzr r14589) --- CMakeScripts/Pod2man.cmake | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 CMakeScripts/Pod2man.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/Pod2man.cmake b/CMakeScripts/Pod2man.cmake new file mode 100644 index 000000000..839e79d80 --- /dev/null +++ b/CMakeScripts/Pod2man.cmake @@ -0,0 +1,54 @@ +# Use pod2man to generate manual pages from .pod files + +# Usage: pod2man( ) +# +# E.g.: pod2man("/path/to/file/mypod.pod" "1.2.3" 1 "My Manual Pages") + +find_program(POD2MAN pod2man) +if(NOT POD2MAN) + message(STATUS "Could not find pod2man - man pages disabled") +endif() + +macro(pod2man PODFILE_FULL RELEASE SECTION CENTER) + get_filename_component(PODFILE ${PODFILE_FULL} NAME) + string(REPLACE "." ";" PODFILE_LIST ${PODFILE}) + list(GET PODFILE_LIST 0 NAME) + list(GET PODFILE_LIST 1 LANG) + string(TOUPPER ${NAME} NAME_UPCASE) + if(${LANG} STREQUAL "pod") + set(LANG "") + endif() + + if(NOT EXISTS ${PODFILE_FULL}) + message(FATAL ERROR "Could not find pod file ${PODFILE_FULL} to generate man page") + endif(NOT EXISTS ${PODFILE_FULL}) + + if(POD2MAN) + if(LANG) + set(MANPAGE_TARGET "man-${NAME}-${LANG}") + set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.tmp") + set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.${SECTION}") + else() + set(MANPAGE_TARGET "man-${NAME}") + set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.tmp") + set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${SECTION}") + endif() + add_custom_command( + OUTPUT ${MANFILE_TEMP} + COMMAND ${POD2MAN} --utf8 --section="${SECTION}" --center="${CENTER}" + --release="${RELEASE}" --name="${NAME_UPCASE}" "${PODFILE_FULL}" "${MANFILE_TEMP}" + ) + add_custom_command( + OUTPUT ${MANFILE_FULL} + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/fix-roff-punct "${MANFILE_TEMP}" > ${MANFILE_FULL} + DEPENDS ${MANFILE_TEMP} + ) + add_custom_target(${MANPAGE_TARGET} ALL + DEPENDS ${MANFILE_FULL} + ) + install( + FILES ${MANFILE_FULL} + DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECTION} + ) + endif() +endmacro(pod2man PODFILE NAME SECTION CENTER) -- cgit v1.2.3 From d659cad74d59dc5cb0ce157804dc094e6732479d Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 16 Jan 2016 22:29:08 -0800 Subject: cmake: Cleanup comments a bit (bzr r14595) --- CMakeScripts/ConfigChecks.cmake | 2 +- CMakeScripts/ConfigCompileFlags.cmake | 4 ++-- CMakeScripts/ConfigPaths.cmake | 25 +------------------------ CMakeScripts/UsePkgConfig.cmake | 16 ++++++++-------- 4 files changed, 12 insertions(+), 35 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 7ec6863eb..46df8051d 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -59,7 +59,7 @@ CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H) CHECK_INCLUDE_FILES(zlib.h HAVE_ZLIB_H) -#Enable pango defines, necessary for compilation on Win32, how about Linux? +# Enable pango defines, necessary for compilation on Win32, how about Linux? # yes but needs to be done a better way if(HAVE_CAIRO_PDF) set(PANGO_ENABLE_ENGINE TRUE) diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake index 0ff66fad8..3164dda60 100644 --- a/CMakeScripts/ConfigCompileFlags.cmake +++ b/CMakeScripts/ConfigCompileFlags.cmake @@ -2,7 +2,7 @@ set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") add_definitions(-Wall -Wformat-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch) add_definitions(-O2) -#define the flags for profiling if desired: +# Define the flags for profiling if desired: if(WITH_PROFILING) set(COMPILE_PROFILING_FLAGS "-pg") set(LINK_PROFILING_FLAGS "-pg") @@ -15,7 +15,7 @@ if(WIN32) add_definitions(-DXP_WIN) endif(WIN32) -# for Inkboard: +# For Inkboard: add_definitions(-DHAVE_SSL "-DRELAYTOOL_SSL=\"static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }\"") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_PROFILING_FLAGS} ") diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 848e293f4..1af591222 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -4,7 +4,7 @@ IF(WIN32) SET(PACKAGE_LOCALE_DIR "locale") set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") ELSE(WIN32) - # TODO: check and change this to correct value: + # TODO: check and change this to correct value: if(NOT PACKAGE_LOCALE_DIR) SET(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this endif(NOT PACKAGE_LOCALE_DIR) @@ -14,26 +14,3 @@ ELSE(WIN32) endif(NOT SHARE_INSTALL) mark_as_advanced(SHARE_INSTALL) ENDIF(WIN32) - -#SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) -#SET(CMAKE_SKIP_RPATH:BOOL OFF) - -# Include base dir, so other files can refer to the generated files. -# CMAKE_INCLUDE_CURRENT_DIR is not enough as it only includes the current dir and not the basedir with config.h in it -#INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}" src/) -#LINK_DIRECTORIES ("${LINK_DIRECTORIES}" "${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}" src/) - -#INSTALL(TARGETS INKSCAPE -# RUNTIME DESTINATION bin -# LIBRARY DESTINATION lib -# ARCHIVE DESTINATION lib -#) - -#FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.h") -#INSTALL(FILES ${files} DESTINATION include/INKSCAPE/INKSCAPE) - -#CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/INKSCAPE.pc.in -# ${CMAKE_BINARY_DIR}/INKSCAPE.pc @ONLY IMMEDIATE ) -#INSTALL(FILES "${CMAKE_BINARY_DIR}/INKSCAPE.pc" DESTINATION lib/pkgconfig) - -#SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Where to put the executables")set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "Where to put the libraries") diff --git a/CMakeScripts/UsePkgConfig.cmake b/CMakeScripts/UsePkgConfig.cmake index 2de721238..f80e01ba8 100644 --- a/CMakeScripts/UsePkgConfig.cmake +++ b/CMakeScripts/UsePkgConfig.cmake @@ -33,7 +33,7 @@ MACRO(PKGCONFIG_FOUND _package _found) # reset the variable at the beginning SET(${_found}) -# if pkg-config has been found + # if pkg-config has been found IF(PKGCONFIG_EXECUTABLE) EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --print-errors --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) @@ -50,7 +50,7 @@ MACRO(PKGCONFIG_FOUND _package _found) ENDMACRO(PKGCONFIG_FOUND _found) MACRO(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags) -# reset the variables at the beginning + # reset the variables at the beginning SET(${_include_DIR}) SET(${_link_DIR}) SET(${_link_FLAGS}) @@ -81,14 +81,14 @@ MACRO(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags) ENDMACRO(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags) MACRO(PKGCONFIG_VERSION _package _version) -# reset the variables at the beginning + # reset the variables at the beginning SET(${_version}) -# if pkg-config has been found + # if pkg-config has been found IF(PKGCONFIG_EXECUTABLE) EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) -# and if the package of interest also exists for pkg-config, then get the information + # and if the package of interest also exists for pkg-config, then get the information IF(NOT _return_VALUE) EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --modversion OUTPUT_VARIABLE ${_version} ) ENDIF(NOT _return_VALUE) @@ -100,14 +100,14 @@ ENDMACRO(PKGCONFIG_VERSION _package _version) MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE) MACRO(PKGCONFIG_DEFINITION _package _definition) -# reset the variables at the beginning + # reset the variables at the beginning SET(${_definition}) -# if pkg-config has been found + # if pkg-config has been found IF(PKGCONFIG_EXECUTABLE) EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) -# and if the package of interest also exists for pkg-config, then get the information + # and if the package of interest also exists for pkg-config, then get the information IF(NOT _return_VALUE) EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --cflags-only-other OUTPUT_VARIABLE ${_definition} ) ENDIF(NOT _return_VALUE) -- cgit v1.2.3 From d278cb2d3be7ab401d6aae48fb39cabe8387f622 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 16 Jan 2016 23:05:58 -0800 Subject: cmake: Fix code style for consistency Indentation to 4 spaces Prefer lower case for functions and macros (bzr r14596) --- CMakeScripts/ConfigCompileFlags.cmake | 6 +- CMakeScripts/ConfigPaths.cmake | 26 +-- CMakeScripts/DefineDependsandFlags.cmake | 380 +++++++++++++++---------------- CMakeScripts/HelperFunctions.cmake | 4 +- CMakeScripts/HelperMacros.cmake | 170 +++++++------- CMakeScripts/IncludeJava.cmake | 21 +- CMakeScripts/UseGlibMarshal.cmake | 48 ++-- CMakeScripts/UsePkgConfig.cmake | 166 ++++++-------- CMakeScripts/inkscape-version.cmake | 30 +-- 9 files changed, 417 insertions(+), 434 deletions(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake index 3164dda60..453ceef21 100644 --- a/CMakeScripts/ConfigCompileFlags.cmake +++ b/CMakeScripts/ConfigCompileFlags.cmake @@ -4,15 +4,15 @@ add_definitions(-O2) # Define the flags for profiling if desired: if(WITH_PROFILING) - set(COMPILE_PROFILING_FLAGS "-pg") - set(LINK_PROFILING_FLAGS "-pg") + set(COMPILE_PROFILING_FLAGS "-pg") + set(LINK_PROFILING_FLAGS "-pg") endif() add_definitions(-DVERSION=\\\"${INKSCAPE_VERSION}\\\") add_definitions(${DEFINE_FLAGS} -DHAVE_CONFIG_H -D_INTL_REDIRECT_INLINE) if(WIN32) - add_definitions(-DXP_WIN) + add_definitions(-DXP_WIN) endif(WIN32) # For Inkboard: diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 1af591222..3b13a7734 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -1,16 +1,16 @@ -MESSAGE(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") +message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") -IF(WIN32) - SET(PACKAGE_LOCALE_DIR "locale") +if(WIN32) + set(PACKAGE_LOCALE_DIR "locale") set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") -ELSE(WIN32) - # TODO: check and change this to correct value: - if(NOT PACKAGE_LOCALE_DIR) - SET(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this - endif(NOT PACKAGE_LOCALE_DIR) +else(WIN32) + # TODO: check and change this to correct value: + if(NOT PACKAGE_LOCALE_DIR) + set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this + endif(NOT PACKAGE_LOCALE_DIR) - if(NOT SHARE_INSTALL) - set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") - endif(NOT SHARE_INSTALL) - mark_as_advanced(SHARE_INSTALL) -ENDIF(WIN32) + if(NOT SHARE_INSTALL) + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") + endif(NOT SHARE_INSTALL) + mark_as_advanced(SHARE_INSTALL) +endif(WIN32) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index e745b871f..f29b98a1f 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -4,10 +4,10 @@ set(INKSCAPE_INCS "") set(INKSCAPE_INCS_SYS "") list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} - ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/src - # generated includes - ${CMAKE_BINARY_DIR}/include + # generated includes + ${CMAKE_BINARY_DIR}/include ) # ---------------------------------------------------------------------------- @@ -17,55 +17,55 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} find_package(GSL REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${GSL_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) -if (WIN32) - list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME +if(WIN32) + list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME + list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME elseif(APPLE) - if(DEFINED ENV{CMAKE_PREFIX_PATH}) - # Adding the library search path explicitly seems not required - # if MacPorts is installed in default prefix ('/opt/local') - - # Cmake then can rely on the hard-coded paths in its modules. - # Only prepend search path if $CMAKE_PREFIX_PATH is defined: - list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") # FIXME - endif() - list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME - if(${GTK+_2.0_TARGET} MATCHES "x11") - # only link X11 if using X11 backend of GTK2 - list(APPEND INKSCAPE_LIBS "-lX11") # FIXME - endif() -else() - list(APPEND INKSCAPE_LIBS "-ldl") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME + if(DEFINED ENV{CMAKE_PREFIX_PATH}) + # Adding the library search path explicitly seems not required + # if MacPorts is installed in default prefix ('/opt/local') - + # Cmake then can rely on the hard-coded paths in its modules. + # Only prepend search path if $CMAKE_PREFIX_PATH is defined: + list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") # FIXME + endif() + list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME + if(${GTK+_2.0_TARGET} MATCHES "x11") + # only link X11 if using X11 backend of GTK2 list(APPEND INKSCAPE_LIBS "-lX11") # FIXME + endif() +else() + list(APPEND INKSCAPE_LIBS "-ldl") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME + list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME if(WITH_GNOME_VFS) - find_package(GnomeVFS2) - if(GNOMEVFS2_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${GNOMEVFS2_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY}) - else() - set(WITH_GNOME_VFS OFF) - endif() + find_package(GnomeVFS2) + if(GNOMEVFS2_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${GNOMEVFS2_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${GNOMEVFS-2_LIBRARY}) + else() + set(WITH_GNOME_VFS OFF) + endif() endif() if(ENABLE_LCMS) - find_package(LCMS2) - if(LCMS2_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${LCMS2_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${LCMS2_LIBRARIES}) - add_definitions(${LCMS2_DEFINITIONS}) + find_package(LCMS2) + if(LCMS2_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${LCMS2_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LCMS2_LIBRARIES}) + add_definitions(${LCMS2_DEFINITIONS}) set (HAVE_LIBLCMS2 1) - else() + else() find_package(LCMS) if(LCMS_FOUND) list(APPEND INKSCAPE_INCS_SYS ${LCMS_INCLUDE_DIRS}) @@ -94,31 +94,31 @@ list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) add_definitions(${BOEHMGC_DEFINITIONS}) if(ENABLE_POPPLER) - find_package(PopplerCairo) - if(POPPLER_FOUND) - set(HAVE_POPPLER ON) - if(ENABLE_POPPLER_CAIRO) - if(POPPLER_CAIRO_FOUND AND POPPLER_GLIB_FOUND) - set(HAVE_POPPLER_CAIRO ON) - endif() - if(POPPLER_GLIB_FOUND AND CAIRO_SVG_FOUND) - set(HAVE_POPPLER_GLIB ON) - endif() - endif() - if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR - POPPLER_VERSION VERSION_EQUAL "0.26.0") - set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON) - endif() - if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR - POPPLER_VERSION VERSION_EQUAL "0.29.0") - set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) - endif() - else() - set(ENABLE_POPPLER_CAIRO OFF) + find_package(PopplerCairo) + if(POPPLER_FOUND) + set(HAVE_POPPLER ON) + if(ENABLE_POPPLER_CAIRO) + if(POPPLER_CAIRO_FOUND AND POPPLER_GLIB_FOUND) + set(HAVE_POPPLER_CAIRO ON) + endif() + if(POPPLER_GLIB_FOUND AND CAIRO_SVG_FOUND) + set(HAVE_POPPLER_GLIB ON) + endif() endif() -else() - set(HAVE_POPPLER OFF) + if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR + POPPLER_VERSION VERSION_EQUAL "0.26.0") + set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON) + endif() + if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR + POPPLER_VERSION VERSION_EQUAL "0.29.0") + set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) + endif() + else() set(ENABLE_POPPLER_CAIRO OFF) + endif() +else() + set(HAVE_POPPLER OFF) + set(ENABLE_POPPLER_CAIRO OFF) endif() list(APPEND INKSCAPE_INCS_SYS ${POPPLER_INCLUDE_DIRS}) @@ -126,50 +126,50 @@ list(APPEND INKSCAPE_LIBS ${POPPLER_LIBRARIES}) add_definitions(${POPPLER_DEFINITIONS}) if(WITH_LIBWPG) - find_package(LibWPG) - if(LIBWPG_FOUND) - set(WITH_LIBWPG01 ${LIBWPG-0.1_FOUND}) - set(WITH_LIBWPG02 ${LIBWPG-0.2_FOUND}) - set(WITH_LIBWPG03 ${LIBWPG-0.3_FOUND}) - list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) - add_definitions(${LIBWPG_DEFINITIONS}) - else() - set(WITH_LIBWPG OFF) - endif() + find_package(LibWPG) + if(LIBWPG_FOUND) + set(WITH_LIBWPG01 ${LIBWPG-0.1_FOUND}) + set(WITH_LIBWPG02 ${LIBWPG-0.2_FOUND}) + set(WITH_LIBWPG03 ${LIBWPG-0.3_FOUND}) + list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) + add_definitions(${LIBWPG_DEFINITIONS}) + else() + set(WITH_LIBWPG OFF) + endif() endif() if(WITH_LIBVISIO) - find_package(LibVisio) - if(LIBVISIO_FOUND) - set(WITH_LIBVISIO00 ${LIBVISIO-0.0_FOUND}) - set(WITH_LIBVISIO01 ${LIBVISIO-0.1_FOUND}) - list(APPEND INKSCAPE_INCS_SYS ${LIBVISIO_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${LIBVISIO_LIBRARIES}) - add_definitions(${LIBVISIO_DEFINITIONS}) - else() - set(WITH_LIBVISIO OFF) - endif() + find_package(LibVisio) + if(LIBVISIO_FOUND) + set(WITH_LIBVISIO00 ${LIBVISIO-0.0_FOUND}) + set(WITH_LIBVISIO01 ${LIBVISIO-0.1_FOUND}) + list(APPEND INKSCAPE_INCS_SYS ${LIBVISIO_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LIBVISIO_LIBRARIES}) + add_definitions(${LIBVISIO_DEFINITIONS}) + else() + set(WITH_LIBVISIO OFF) + endif() endif() if(WITH_LIBCDR) - find_package(LibCDR) - if(LIBCDR_FOUND) - set(WITH_LIBCDR00 ${LIBCDR-0.0_FOUND}) - set(WITH_LIBCDR01 ${LIBCDR-0.1_FOUND}) - list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${LIBCDR_LIBRARIES}) - add_definitions(${LIBCDR_DEFINITIONS}) - else() - set(WITH_LIBCDR OFF) - endif() + find_package(LibCDR) + if(LIBCDR_FOUND) + set(WITH_LIBCDR00 ${LIBCDR-0.0_FOUND}) + set(WITH_LIBCDR01 ${LIBCDR-0.1_FOUND}) + list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LIBCDR_LIBRARIES}) + add_definitions(${LIBCDR_DEFINITIONS}) + else() + set(WITH_LIBCDR OFF) + endif() endif() FIND_PACKAGE(JPEG) IF(JPEG_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES}) - set(HAVE_JPEG ON) + list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES}) + set(HAVE_JPEG ON) ENDIF() find_package(PNG REQUIRED) @@ -183,42 +183,42 @@ add_definitions(${POPT_DEFINITIONS}) find_package(Potrace) if(POTRACE_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) - set(HAVE_POTRACE ON) - add_definitions(-DHAVE_POTRACE) + list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES}) + set(HAVE_POTRACE ON) + add_definitions(-DHAVE_POTRACE) else(POTRACE_FOUND) - set(HAVE_POTRACE OFF) - message(STATUS "Could not locate the Potrace library headers: the Trace Bitmap and Paintbucket tools will be disabled") + set(HAVE_POTRACE OFF) + message(STATUS "Could not locate the Potrace library headers: the Trace Bitmap and Paintbucket tools will be disabled") endif() if(WITH_DBUS) - find_package(DBus REQUIRED) - if(DBUS_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${DBUS_INCLUDE_DIR}) - list(APPEND INKSCAPE_INCS_SYS ${DBUS_ARCH_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${DBUS_LIBRARIES}) - else() - set(WITH_DBUS OFF) - endif() + find_package(DBus REQUIRED) + if(DBUS_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${DBUS_INCLUDE_DIR}) + list(APPEND INKSCAPE_INCS_SYS ${DBUS_ARCH_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${DBUS_LIBRARIES}) + else() + set(WITH_DBUS OFF) + endif() endif() if(WITH_GTEST) - if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}") + if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}") - else() - set(WITH_GTEST off) - endif() + else() + set(WITH_GTEST off) + endif() endif() # ---------------------------------------------------------------------------- # CMake's builtin # ---------------------------------------------------------------------------- -SET (TRY_GTKSPELL 1) +set(TRY_GTKSPELL 1) # Include dependencies: # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added -IF ("${WITH_GTK3_EXPERIMENTAL}") +if("${WITH_GTK3_EXPERIMENTAL}") pkg_check_modules( GTK REQUIRED @@ -229,36 +229,36 @@ IF ("${WITH_GTK3_EXPERIMENTAL}") gdl-3.0>=3.3.5 ) message("Using EXPERIMENTAL Gtkmm 3 build") - SET (WITH_GTKMM_3_0 1) + set(WITH_GTKMM_3_0 1) message("Using external GDL") - SET(WITH_EXT_GDL 1) + set(WITH_EXT_GDL 1) - # Check whether we can use new features in Gtkmm 3.10 - # TODO: Drop this test and bump the version number in the GTK test above - # as soon as all supported distributions provide Gtkmm >= 3.10 - pkg_check_modules(GTKMM_3_10 - gtkmm-3.0>=3.10, - ) + # Check whether we can use new features in Gtkmm 3.10 + # TODO: Drop this test and bump the version number in the GTK test above + # as soon as all supported distributions provide Gtkmm >= 3.10 + pkg_check_modules(GTKMM_3_10 + gtkmm-3.0>=3.10, + ) - IF ("${GTKMM_3_10_FOUND}") + if("${GTKMM_3_10_FOUND}") message("Using Gtkmm 3.10 build") - SET (WITH_GTKMM_3_10 1) - ENDIF() + set (WITH_GTKMM_3_10 1) + endif() pkg_check_modules(GDL_3_6 gdl-3.0>=3.6) - IF ("${GDL_3_6_FOUND}") + if("${GDL_3_6_FOUND}") message("Using Gdl 3.6 or higher") - SET (WITH_GDL_3_6 1) - ENDIF() + set (WITH_GDL_3_6 1) + endif() - SET (TRY_GTKSPELL ) + set(TRY_GTKSPELL ) pkg_check_modules(GTKSPELL3 gtkspell3-3.0) - IF ("${GTKSPELL3_FOUND}") + if("${GTKSPELL3_FOUND}") message("Using GtkSpell3 3.0") - SET (WITH_GTKSPELL 1) - ENDIF() + set (WITH_GTKSPELL 1) + endif() list(APPEND INKSCAPE_INCS_SYS ${GTK_INCLUDE_DIRS} ${GTKSPELL3_INCLUDE_DIRS} @@ -268,7 +268,7 @@ IF ("${WITH_GTK3_EXPERIMENTAL}") ${GTK_LIBRARIES} ${GTKSPELL3_LIBRARIES} ) -ELSE() +else() find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${GTK2_GDK_INCLUDE_DIR} @@ -295,7 +295,7 @@ ELSE() ${GTK2_GIOMMCONFIG_INCLUDE_DIR} ${GTK2_SIGC++_INCLUDE_DIR} ${GTK2_SIGC++CONFIG_INCLUDE_DIR} - ) + ) list(APPEND INKSCAPE_LIBS ${GTK2_GDK_LIBRARY} @@ -314,8 +314,8 @@ ELSE() ${GTK2_GIOMM_LIBRARY} ${GTK2_SIGC++_LIBRARY} ${GTK2_GOBJECT_LIBRARY} - ) -ENDIF() + ) +endif() find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) @@ -327,21 +327,21 @@ list(APPEND INKSCAPE_INCS_SYS ${Boost_INCLUDE_DIRS}) find_package(ASPELL) if(ASPELL_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${ASPELL_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES}) - add_definitions(${ASPELL_DEFINITIONS}) - set(HAVE_ASPELL TRUE) + list(APPEND INKSCAPE_INCS_SYS ${ASPELL_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${ASPELL_LIBRARIES}) + add_definitions(${ASPELL_DEFINITIONS}) + set(HAVE_ASPELL TRUE) endif() if("${TRY_GTKSPELL}" AND "${WITH_GTKSPELL}") - find_package(GtkSpell) - if(GTKSPELL_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${GTKSPELL_LIBRARIES}) - add_definitions(${GTKSPELL_DEFINITIONS}) - else() - set(WITH_GTKSPELL OFF) - endif() + find_package(GtkSpell) + if(GTKSPELL_FOUND) + list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR}) + list(APPEND INKSCAPE_LIBS ${GTKSPELL_LIBRARIES}) + add_definitions(${GTKSPELL_DEFINITIONS}) + else() + set(WITH_GTKSPELL OFF) + endif() endif() #find_package(OpenSSL) @@ -359,23 +359,23 @@ list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES}) add_definitions(${LIBXML2_DEFINITIONS}) if(WITH_OPENMP) - find_package(OpenMP) - if(OPENMP_FOUND) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode") - set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES") - endif() - mark_as_advanced(OpenMP_C_FLAGS) - mark_as_advanced(OpenMP_CXX_FLAGS) - # '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp' - # uncomment explicit linking below if still needed: - set(HAVE_OPENMP ON) - #list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME - else() - set(HAVE_OPENMP OFF) - set(WITH_OPENMP OFF) + find_package(OpenMP) + if(OPENMP_FOUND) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES") endif() + mark_as_advanced(OpenMP_C_FLAGS) + mark_as_advanced(OpenMP_CXX_FLAGS) + # '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp' + # uncomment explicit linking below if still needed: + set(HAVE_OPENMP ON) + #list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME + else() + set(HAVE_OPENMP OFF) + set(WITH_OPENMP OFF) + endif() endif() find_package(ZLIB REQUIRED) @@ -383,34 +383,34 @@ list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) if(WITH_IMAGE_MAGICK) - find_package(ImageMagick COMPONENTS MagickCore Magick++) - if(ImageMagick_FOUND) - # the component-specific paths apparently fail to get detected correctly - # on some linux distros (or with older Cmake versions). - # Use variables which list all include dirs and libraries instead: - list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES}) - # TODO: Cmake's ImageMagick module misses required defines for newer - # versions of ImageMagick. See also: - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832 - #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?) - #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?) - else() - set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster' - endif() + find_package(ImageMagick COMPONENTS MagickCore Magick++) + if(ImageMagick_FOUND) + # the component-specific paths apparently fail to get detected correctly + # on some linux distros (or with older Cmake versions). + # Use variables which list all include dirs and libraries instead: + list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES}) + # TODO: Cmake's ImageMagick module misses required defines for newer + # versions of ImageMagick. See also: + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832 + #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?) + #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?) + else() + set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster' + endif() endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) set(ENABLE_NLS OFF) if(WITH_NLS) - find_package(Gettext) - if(GETTEXT_FOUND) - message(STATUS "Found gettext + msgfmt to convert language files. Translation enabled") - set(ENABLE_NLS ON) - else(GETTEXT_FOUND) - message(STATUS "Cannot find gettext + msgfmt to convert language file. Translation won't be enabled") - endif(GETTEXT_FOUND) + find_package(Gettext) + if(GETTEXT_FOUND) + message(STATUS "Found gettext + msgfmt to convert language files. Translation enabled") + set(ENABLE_NLS ON) + else(GETTEXT_FOUND) + message(STATUS "Cannot find gettext + msgfmt to convert language file. Translation won't be enabled") + endif(GETTEXT_FOUND) endif(WITH_NLS) diff --git a/CMakeScripts/HelperFunctions.cmake b/CMakeScripts/HelperFunctions.cmake index 85cbe7157..f4ed255d5 100644 --- a/CMakeScripts/HelperFunctions.cmake +++ b/CMakeScripts/HelperFunctions.cmake @@ -12,8 +12,8 @@ function(pkg_check_variable _pkg _name) set(_output_name "${_pkg_upper}_${_name_upper}") execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg} - OUTPUT_VARIABLE _pkg_result - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_VARIABLE _pkg_result + OUTPUT_STRIP_TRAILING_WHITESPACE) set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable ${_name} of ${_pkg}") endfunction() diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake index f19baf5f2..f2fbed64b 100644 --- a/CMakeScripts/HelperMacros.cmake +++ b/CMakeScripts/HelperMacros.cmake @@ -1,26 +1,26 @@ # A macro to replace slashes and spaces in a string with underscores macro(SANITIZE_PATH _string_var) - string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}}) + string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}}) endmacro() macro(inkscape_source_group sources) - # Group by location on disk - source_group("Source Files" FILES CMakeLists.txt) + # Group by location on disk + source_group("Source Files" FILES CMakeLists.txt) - foreach(_SRC ${sources}) - get_filename_component(_SRC_EXT ${_SRC} EXT) - if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp")) - source_group("Header Files" FILES ${_SRC}) - else() - source_group("Source Files" FILES ${_SRC}) - endif() - endforeach() + foreach(_SRC ${sources}) + get_filename_component(_SRC_EXT ${_SRC} EXT) + if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp")) + source_group("Header Files" FILES ${_SRC}) + else() + source_group("Source Files" FILES ${_SRC}) + endif() + endforeach() - unset(_SRC) - unset(_SRC_EXT) + unset(_SRC) + unset(_SRC_EXT) endmacro() @@ -29,11 +29,11 @@ macro(add_inkscape_lib name sources) - add_library(${name} ${sources}) + add_library(${name} ${sources}) - # works fine without having the includes - # listed is helpful for IDE's (QtCreator/MSVC) - inkscape_source_group("${sources}") + # works fine without having the includes + # listed is helpful for IDE's (QtCreator/MSVC) + inkscape_source_group("${sources}") endmacro() @@ -44,88 +44,88 @@ set_property(GLOBAL PROPERTY inkscape_global_SRC "") macro (add_inkscape_source sources) - foreach(_SRC ${ARGV}) - get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE) - set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC}) - endforeach() - unset(_SRC) - unset(_ABS_SRC) + foreach(_SRC ${ARGV}) + get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE) + set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC}) + endforeach() + unset(_SRC) + unset(_ABS_SRC) endmacro() # A macro to append to the global source property macro (add_inkscape_library sources) - foreach(_SRC ${ARGV}) - get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE) - set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC}) - endforeach() - unset(_SRC) - unset(_ABS_SRC) + foreach(_SRC ${ARGV}) + get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE) + set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC}) + endforeach() + unset(_SRC) + unset(_ABS_SRC) endmacro() macro(INKSCAPE_PKG_CONFIG_FIND PREFIX MODNAME VERSION PATH_NAME PATH_SUFFIXE LIB_NAME) - if(VERSION) - pkg_check_modules(_${PREFIX} ${MODNAME}${VERSION}) - else(VERSION) - pkg_check_modules(_${PREFIX} ${MODNAME}) - endif(VERSION) - - find_path(${PREFIX}_INCLUDE_DIR - NAMES - ${PATH_NAME} - PATHS - ${_${PREFIX}_INCLUDEDIR} - /usr/include - /usr/local/include - /opt/local/include - /sw/include - $ENV{DEVLIBS_PATH}//include// - PATH_SUFFIXES - ${PATH_SUFFIXE} + if(VERSION) + pkg_check_modules(_${PREFIX} ${MODNAME}${VERSION}) + else(VERSION) + pkg_check_modules(_${PREFIX} ${MODNAME}) + endif(VERSION) + + find_path(${PREFIX}_INCLUDE_DIR + NAMES + ${PATH_NAME} + PATHS + ${_${PREFIX}_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + $ENV{DEVLIBS_PATH}//include// + PATH_SUFFIXES + ${PATH_SUFFIXE} ) - find_library(${PREFIX}_LIBRARY - NAMES - ${LIB_NAME} - PATHS - ${_${PREFIX}_LIBDIR} - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib + find_library(${PREFIX}_LIBRARY + NAMES + ${LIB_NAME} + PATHS + ${_${PREFIX}_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib ) - if (${PREFIX}_LIBRARY) - set(${PREFIX}_FOUND TRUE) - set(${PREFIX}_VERSION ${_${PREFIX}_VERSION}) - endif (${PREFIX}_LIBRARY) + if (${PREFIX}_LIBRARY) + set(${PREFIX}_FOUND TRUE) + set(${PREFIX}_VERSION ${_${PREFIX}_VERSION}) + endif (${PREFIX}_LIBRARY) - set(${PREFIX}_INCLUDE_DIRS - ${${PREFIX}_INCLUDE_DIR} + set(${PREFIX}_INCLUDE_DIRS + ${${PREFIX}_INCLUDE_DIR} ) - if (${PREFIX}_FOUND) - set(${PREFIX}_LIBRARIES - ${${PREFIX}_LIBRARIES} - ${${PREFIX}_LIBRARY} - ) - endif (${PREFIX}_FOUND) - - if (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES) - set(${PREFIX}_FOUND TRUE) - endif (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES) - - if (${PREFIX}_FOUND) - if (NOT ${PREFIX}_FIND_QUIETLY) - message(STATUS "Found ${MODNAME}: ${${PREFIX}_LIBRARIES}") - endif (NOT ${PREFIX}_FIND_QUIETLY) - else (${PREFIX}_FOUND) - if (${PREFIX}_FIND_REQUIRED) - message(FATAL_ERROR "Could not find ${MODNAME}") - endif (${PREFIX}_FIND_REQUIRED) - endif (${PREFIX}_FOUND) - - # show the _INCLUDE_DIRS and _LIBRARIES variables only in the advanced view - mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES) + if (${PREFIX}_FOUND) + set(${PREFIX}_LIBRARIES + ${${PREFIX}_LIBRARIES} + ${${PREFIX}_LIBRARY} + ) + endif (${PREFIX}_FOUND) + + if (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES) + set(${PREFIX}_FOUND TRUE) + endif (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES) + + if (${PREFIX}_FOUND) + if (NOT ${PREFIX}_FIND_QUIETLY) + message(STATUS "Found ${MODNAME}: ${${PREFIX}_LIBRARIES}") + endif (NOT ${PREFIX}_FIND_QUIETLY) + else (${PREFIX}_FOUND) + if (${PREFIX}_FIND_REQUIRED) + message(FATAL_ERROR "Could not find ${MODNAME}") + endif (${PREFIX}_FIND_REQUIRED) + endif (${PREFIX}_FOUND) + + # show the _INCLUDE_DIRS and _LIBRARIES variables only in the advanced view + mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES) endmacro() diff --git a/CMakeScripts/IncludeJava.cmake b/CMakeScripts/IncludeJava.cmake index 1e20a4ca5..09f2bbea6 100644 --- a/CMakeScripts/IncludeJava.cmake +++ b/CMakeScripts/IncludeJava.cmake @@ -1,14 +1,13 @@ # - include the src/javainc dir in the include path and the correct config path too +include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc) -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) +if(WIN32) + include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc/win32) +endif(WIN32) +if(UNIX) + include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc/linux) +endif(UNIX) +if(SOLARIS) + include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc/solaris) +endif(SOLARIS) diff --git a/CMakeScripts/UseGlibMarshal.cmake b/CMakeScripts/UseGlibMarshal.cmake index c9481a4f6..8fabcaa38 100644 --- a/CMakeScripts/UseGlibMarshal.cmake +++ b/CMakeScripts/UseGlibMarshal.cmake @@ -9,32 +9,32 @@ # GLIB_MARSHAL_OUTPUT_CPP - Result of Generation # GLIB_MARSHAL_OUTPUT_LOCATION - Where we are putting the Output -FIND_PROGRAM(GLIB_MARSHAL_EXECUTABLE NAMES glib-genmarshal PATHS /usr/local/bin ) +find_program(GLIB_MARSHAL_EXECUTABLE NAMES glib-genmarshal PATHS /usr/local/bin ) -MACRO(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOCATION) - IF(GLIB_MARSHAL_EXECUTABLE) - SET(GLIB_MARSHAL_OUTPUT_EXTRA_LINE "#include \"${GLIB_MARSHAL_FILE}.h\" \n" ) +macro(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOCATION) + if(GLIB_MARSHAL_EXECUTABLE) + set(GLIB_MARSHAL_OUTPUT_EXTRA_LINE "#include \"${GLIB_MARSHAL_FILE}.h\" \n" ) - MESSAGE(STATUS "Generating header and sourcefiles from ${GLIB_MARSHAL_FILE}.list (Glib-Marshal)") - EXECUTE_PROCESS(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --header ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list - OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_HEADER ) - EXECUTE_PROCESS(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list - OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP ) + message(STATUS "Generating header and sourcefiles from ${GLIB_MARSHAL_FILE}.list (Glib-Marshal)") + execute_process(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --header ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list + OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_HEADER ) + execute_process(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list + OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP ) # check whether the generated file is the same as the existing one - IF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h) - FILE(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD) - ELSE() - SET(GLIB_MARSHAL_HEADER_OLD "") - ENDIF() - IF(NOT GLIB_MARSHAL_HEADER_OLD STREQUAL GLIB_MARSHAL_OUTPUT_HEADER) - MESSAGE(STATUS "${GLIB_MARSHAL_FILE}.h changed; overwriting") - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}") - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}") - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}") - ELSE() - MESSAGE(STATUS "${GLIB_MARSHAL_FILE}.h unchanged") - ENDIF() - ENDIF() -ENDMACRO() + if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h) + file(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD) + else() + set(GLIB_MARSHAL_HEADER_OLD "") + endif() + if(NOT GLIB_MARSHAL_HEADER_OLD STREQUAL GLIB_MARSHAL_OUTPUT_HEADER) + message(STATUS "${GLIB_MARSHAL_FILE}.h changed; overwriting") + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}") + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}") + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}") + else() + message(STATUS "${GLIB_MARSHAL_FILE}.h unchanged") + endif() + endif() +endmacro() diff --git a/CMakeScripts/UsePkgConfig.cmake b/CMakeScripts/UsePkgConfig.cmake index f80e01ba8..86c2425f7 100644 --- a/CMakeScripts/UsePkgConfig.cmake +++ b/CMakeScripts/UsePkgConfig.cmake @@ -23,97 +23,81 @@ # Calling PKGCONFIG_DEFINITION will fill the definition (e.g -D_REENTRANT) into the argument, # e.g. PKGCONFIG_DEFINITION(libart-2.0 LIBART_DEFINITION) -FIND_PROGRAM(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/local/bin ) - -MACRO(STRIP_NEWLINES _string_var) - STRING(REGEX REPLACE "[\n\r]+" "" ${_string_var} ${${_string_var}}) -ENDMACRO(STRIP_NEWLINES _string_var) - -MACRO(PKGCONFIG_FOUND _package _found) - # reset the variable at the beginning - SET(${_found}) - - # if pkg-config has been found - IF(PKGCONFIG_EXECUTABLE) - - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --print-errors --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) +find_program(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/local/bin ) + +macro(STRIP_NEWLINES _string_var) + string(REGEX REPLACE "[\n\r]+" "" ${_string_var} ${${_string_var}}) +endmacro(STRIP_NEWLINES _string_var) + +macro(PKGCONFIG_FOUND _package _found) + # reset the variable at the beginning + set(${_found}) + + # if pkg-config has been found + if(PKGCONFIG_EXECUTABLE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --print-errors --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) + if(${_pkgconfigDevNull}) + message(STATUS "${_pkgconfigDevNull}") + endif(${_pkgconfigDevNull}) - IF(${_pkgconfigDevNull}) - MESSAGE(STATUS "${_pkgconfigDevNull}") - ENDIF(${_pkgconfigDevNull}) - - IF(NOT _return_VALUE) - SET(${_found} "TRUE") - ENDIF(NOT _return_VALUE) - ENDIF(PKGCONFIG_EXECUTABLE) - -ENDMACRO(PKGCONFIG_FOUND _found) - -MACRO(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags) - # reset the variables at the beginning - SET(${_include_DIR}) - SET(${_link_DIR}) - SET(${_link_FLAGS}) - SET(${_cflags}) - - # if pkg-config has been found - IF(PKGCONFIG_EXECUTABLE) - - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) + if(NOT _return_VALUE) + set(${_found} "TRUE") + endif(NOT _return_VALUE) + endif(PKGCONFIG_EXECUTABLE) +endmacro(PKGCONFIG_FOUND _found) + +macro(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags) + # reset the variables at the beginning + set(${_include_DIR}) + set(${_link_DIR}) + set(${_link_FLAGS}) + set(${_cflags}) + + # if pkg-config has been found + if(PKGCONFIG_EXECUTABLE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) # and if the package of interest also exists for pkg-config, then get the information - IF(NOT _return_VALUE) - - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir OUTPUT_VARIABLE ${_include_DIR} ) - - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir OUTPUT_VARIABLE ${_link_DIR} ) - - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs OUTPUT_VARIABLE ${_link_FLAGS} ) - - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags OUTPUT_VARIABLE ${_cflags} ) - - STRIP_NEWLINES(${_cflags}) - - ENDIF(NOT _return_VALUE) - - ENDIF(PKGCONFIG_EXECUTABLE) - -ENDMACRO(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags) - -MACRO(PKGCONFIG_VERSION _package _version) - # reset the variables at the beginning - SET(${_version}) - - # if pkg-config has been found - IF(PKGCONFIG_EXECUTABLE) - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) - - # and if the package of interest also exists for pkg-config, then get the information - IF(NOT _return_VALUE) - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --modversion OUTPUT_VARIABLE ${_version} ) - ENDIF(NOT _return_VALUE) - - ENDIF(PKGCONFIG_EXECUTABLE) - -ENDMACRO(PKGCONFIG_VERSION _package _version) - -MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE) - -MACRO(PKGCONFIG_DEFINITION _package _definition) - # reset the variables at the beginning - SET(${_definition}) - - # if pkg-config has been found - IF(PKGCONFIG_EXECUTABLE) - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) - - # and if the package of interest also exists for pkg-config, then get the information - IF(NOT _return_VALUE) - EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --cflags-only-other OUTPUT_VARIABLE ${_definition} ) - ENDIF(NOT _return_VALUE) - - ENDIF(PKGCONFIG_EXECUTABLE) - -ENDMACRO(PKGCONFIG_DEFINITION _package _definition) - -MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE) + if(NOT _return_VALUE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir OUTPUT_VARIABLE ${_include_DIR} ) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir OUTPUT_VARIABLE ${_link_DIR} ) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs OUTPUT_VARIABLE ${_link_FLAGS} ) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags OUTPUT_VARIABLE ${_cflags} ) + strip_newlines(${_cflags}) + endif(NOT _return_VALUE) + endif(PKGCONFIG_EXECUTABLE) +endmacro(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags) + +macro(PKGCONFIG_VERSION _package _version) + # reset the variables at the beginning + set(${_version}) + + # if pkg-config has been found + if(PKGCONFIG_EXECUTABLE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) + + # and if the package of interest also exists for pkg-config, then get the information + if(NOT _return_VALUE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --modversion OUTPUT_VARIABLE ${_version} ) + endif(NOT _return_VALUE) + endif(PKGCONFIG_EXECUTABLE) +endmacro(PKGCONFIG_VERSION _package _version) + +mark_as_advanced(PKGCONFIG_EXECUTABLE) + +macro(PKGCONFIG_DEFINITION _package _definition) + # reset the variables at the beginning + set(${_definition}) + + # if pkg-config has been found + if(PKGCONFIG_EXECUTABLE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) + + # and if the package of interest also exists for pkg-config, then get the information + if(NOT _return_VALUE) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --cflags-only-other OUTPUT_VARIABLE ${_definition} ) + endif(NOT _return_VALUE) + endif(PKGCONFIG_EXECUTABLE) +endmacro(PKGCONFIG_DEFINITION _package _definition) + +mark_as_advanced(PKGCONFIG_EXECUTABLE) diff --git a/CMakeScripts/inkscape-version.cmake b/CMakeScripts/inkscape-version.cmake index a72946ac5..cf6cadbc4 100644 --- a/CMakeScripts/inkscape-version.cmake +++ b/CMakeScripts/inkscape-version.cmake @@ -10,25 +10,25 @@ set(INKSCAPE_REVISION "unknown") if(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/) - execute_process(COMMAND - bzr revno --tree ${INKSCAPE_SOURCE_DIR} - OUTPUT_VARIABLE INKSCAPE_REVISION - OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND + bzr revno --tree ${INKSCAPE_SOURCE_DIR} + OUTPUT_VARIABLE INKSCAPE_REVISION + OUTPUT_STRIP_TRAILING_WHITESPACE) endif() file(WRITE - ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt - # unlike autoconf, include config.h - "#ifdef HAVE_CONFIG_H\n" - "# include \n" - "#endif\n" - "\n" - "namespace Inkscape {\n" - " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n" - "}\n") + ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt + # unlike autoconf, include config.h + "#ifdef HAVE_CONFIG_H\n" + "# include \n" + "#endif\n" + "\n" + "namespace Inkscape {\n" + " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n" + "}\n") # Copy the file to the final header only if the version changes # and avoid needless rebuilds execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt - ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp) + ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt + ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp) -- cgit v1.2.3 From 705f8f414783f5e82a4f909fc456662cabb5feb0 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sun, 17 Jan 2016 13:02:42 -0800 Subject: cmake: Fix installation directories for man pages We're not (yet) using the GnuInstallDirs module, so we don't have things like CMAKE_INSTALL_MANDIR and such defined. (bzr r14606) --- CMakeScripts/Pod2man.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/Pod2man.cmake b/CMakeScripts/Pod2man.cmake index 839e79d80..3189192de 100644 --- a/CMakeScripts/Pod2man.cmake +++ b/CMakeScripts/Pod2man.cmake @@ -48,7 +48,7 @@ macro(pod2man PODFILE_FULL RELEASE SECTION CENTER) ) install( FILES ${MANFILE_FULL} - DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECTION} + DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/man/man${SECTION} ) endif() endmacro(pod2man PODFILE NAME SECTION CENTER) -- cgit v1.2.3 From 666582ac8ca0aebbbd20c629311f2ac2116bc979 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sun, 17 Jan 2016 13:54:51 -0800 Subject: cmake: Add cleanup targets clean-cmake-files and clean-all These are woefully incomplete but they at least get rid of the top level cmake cruft. Further work will be needed to locate and remove all the various generated cmake files. For now, best practice is to use a parallel build, that can be recursively deleted when needing to start fresh. (bzr r14608) --- CMakeScripts/CleanAll.cmake | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 CMakeScripts/CleanAll.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/CleanAll.cmake b/CMakeScripts/CleanAll.cmake new file mode 100644 index 000000000..0b04d188f --- /dev/null +++ b/CMakeScripts/CleanAll.cmake @@ -0,0 +1,17 @@ +set(_generated + ${CMAKE_CURRENT_BINARY_DIR}/CMakeCache.txt + ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake + ${CMAKE_CURRENT_BINARY_DIR}/po/cmake_install.cmake + ${CMAKE_CURRENT_BINARY_DIR}/Makefile + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles +) + +message("${_generated}") + +foreach(file ${_generated}) + if(EXISTS ${file}) + message("Removing ${file}") + file(REMOVE_RECURSE ${file}) + endif() +endforeach(file) -- cgit v1.2.3 From 1d0e982975cc5438362b3cde1b2fd5e628ed235f Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Tue, 19 Jan 2016 15:13:36 -0800 Subject: cmake: Drop Java support (IIRC java was used for the built-in scripts dialog, along with the linked python and perl libs) (bzr r14609) --- CMakeScripts/DefineDependsandFlags.cmake | 2 -- CMakeScripts/IncludeJava.cmake | 13 ------------- 2 files changed, 15 deletions(-) delete mode 100644 CMakeScripts/IncludeJava.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index f29b98a1f..59c2cb063 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -400,8 +400,6 @@ if(WITH_IMAGE_MAGICK) endif() endif() -include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) - set(ENABLE_NLS OFF) if(WITH_NLS) find_package(Gettext) diff --git a/CMakeScripts/IncludeJava.cmake b/CMakeScripts/IncludeJava.cmake deleted file mode 100644 index 09f2bbea6..000000000 --- a/CMakeScripts/IncludeJava.cmake +++ /dev/null @@ -1,13 +0,0 @@ -# - include the src/javainc dir in the include path and the correct config path too - -include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc) - -if(WIN32) - include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc/win32) -endif(WIN32) -if(UNIX) - include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc/linux) -endif(UNIX) -if(SOLARIS) - include_directories(${CMAKE_SOURCE_DIR}/src/bind/javainc/solaris) -endif(SOLARIS) -- cgit v1.2.3 From a380bbcafa8d6ef58fa4149db9987d6a69b4b6f0 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Thu, 25 Feb 2016 10:48:51 -0800 Subject: inkview: Drop use of obsolete getopt This lets us drop getopt as a cmake requirement. Patch from rindolf, thanks! http://www.shlomifish.org/Files/files/code/inkscape-cmake-get-rid-of-getopt-check-2.diff (bzr r14668) --- CMakeScripts/ConfigChecks.cmake | 1 - 1 file changed, 1 deletion(-) (limited to 'CMakeScripts') diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 46df8051d..926dc3ad3 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -18,7 +18,6 @@ CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR) CHECK_FUNCTION_EXISTS(fpsetmask HAVE_FPSETMASK) CHECK_INCLUDE_FILES(gc/gc.h HAVE_GC_GC_H) CHECK_INCLUDE_FILES(gc.h HAVE_GC_H) -CHECK_INCLUDE_FILES(getopt.h HAVE_GETOPT_H) CHECK_FUNCTION_EXISTS(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) -- cgit v1.2.3 From 53a4d10251bb079fa22ced4dcbb381f42f56ceb1 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 27 Feb 2016 01:25:50 -0800 Subject: cmake: Add sigc++ support Patch from rindolf Signed-off-by: Bryce Harrington (bzr r14669) --- CMakeScripts/DefineDependsandFlags.cmake | 1 + CMakeScripts/Modules/FindSigC++.cmake | 22 +++++++++++++++++++++- CMakeScripts/Modules/sigcpp_test.cpp | 15 +++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 CMakeScripts/Modules/sigcpp_test.cpp (limited to 'CMakeScripts') diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 59c2cb063..ab197a7af 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -411,6 +411,7 @@ if(WITH_NLS) endif(GETTEXT_FOUND) endif(WITH_NLS) +find_package(SigC++ REQUIRED) # end Dependencies diff --git a/CMakeScripts/Modules/FindSigC++.cmake b/CMakeScripts/Modules/FindSigC++.cmake index ed0abc545..8046410b5 100644 --- a/CMakeScripts/Modules/FindSigC++.cmake +++ b/CMakeScripts/Modules/FindSigC++.cmake @@ -13,7 +13,6 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # - if (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) # in cache already set(SIGC++_FOUND TRUE) @@ -103,4 +102,25 @@ else (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) endif (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) +# Try to add -std=c++11 if needed - see: +# https://bugs.launchpad.net/inkscape/+bug/1488079 + +macro (sigcpp_compile extra_cppflags) + try_compile(SIGCPP_COMPILES_FINE "${CMAKE_BINARY_DIR}/sigcpp-bindir" + SOURCES "${CMAKE_SOURCE_DIR}/CMakeScripts/Modules/sigcpp_test.cpp" + COMPILE_DEFINITIONS ${_SIGC++_CFLAGS} ${extra_cppflags} + LINK_LIBRARIES ${SIGC++_LIBRARIES}) +endmacro() + + +sigcpp_compile("") +if (NOT "${SIGCPP_COMPILES_FINE}") + set (cppflag "-std=c++11") + sigcpp_compile("${cppflag}") + if ("${SIGCPP_COMPILES_FINE}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cppflag}") + else() + message(FATAL_ERROR "Could not compile against SIGC++") + endif() +endif() diff --git a/CMakeScripts/Modules/sigcpp_test.cpp b/CMakeScripts/Modules/sigcpp_test.cpp new file mode 100644 index 000000000..b4cf2c773 --- /dev/null +++ b/CMakeScripts/Modules/sigcpp_test.cpp @@ -0,0 +1,15 @@ +/* + * Building this using: + + g++ `pkg-config --cflags sigc++-2.0` sigcpp_test.cpp + + Results in an error. + * */ +#include +#include +#include + +int main() +{ + return 0; +} -- cgit v1.2.3