# A macro to replace slashes and spaces in a string with underscores macro(SANITIZE_PATH _string_var) string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}}) endmacro() macro(inkscape_source_group sources) # Group by location on disk source_group("Source Files" FILES CMakeLists.txt) foreach(_SRC ${sources}) get_filename_component(_SRC_EXT ${_SRC} EXT) if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp")) source_group("Header Files" FILES ${_SRC}) else() source_group("Source Files" FILES ${_SRC}) endif() endforeach() unset(_SRC) unset(_SRC_EXT) endmacro() # only MSVC uses SOURCE_GROUP macro(add_inkscape_lib name sources) add_library(${name} STATIC ${sources}) # works fine without having the includes # listed is helpful for IDE's (QtCreator/MSVC) inkscape_source_group("${sources}") endmacro() # A macro to append to the global source property set_property(GLOBAL PROPERTY inkscape_global_SRC "") macro (add_inkscape_source sources) foreach(_SRC ${ARGV}) get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE) set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC}) endforeach() unset(_SRC) unset(_ABS_SRC) endmacro() # A macro to append to the global source property macro (add_inkscape_library sources) foreach(_SRC ${ARGV}) get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE) set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC}) endforeach() unset(_SRC) unset(_ABS_SRC) endmacro() macro(INKSCAPE_PKG_CONFIG_FIND PREFIX MODNAME VERSION PATH_NAME PATH_SUFFIXE LIB_NAME) if(VERSION) pkg_check_modules(_${PREFIX} ${MODNAME}${VERSION}) else(VERSION) pkg_check_modules(_${PREFIX} ${MODNAME}) endif(VERSION) find_path(${PREFIX}_INCLUDE_DIR NAMES ${PATH_NAME} PATHS ${_${PREFIX}_INCLUDEDIR} /usr/include /usr/local/include /opt/local/include /sw/include $ENV{DEVLIBS_PATH}//include// PATH_SUFFIXES ${PATH_SUFFIXE} ) find_library(${PREFIX}_LIBRARY NAMES ${LIB_NAME} PATHS ${_${PREFIX}_LIBDIR} /usr/lib /usr/local/lib /opt/local/lib /sw/lib ) if (${PREFIX}_LIBRARY) set(${PREFIX}_FOUND TRUE) set(${PREFIX}_VERSION ${_${PREFIX}_VERSION}) endif (${PREFIX}_LIBRARY) set(${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR} ) if (${PREFIX}_FOUND) set(${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${PREFIX}_LIBRARY} ) endif (${PREFIX}_FOUND) if (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES) set(${PREFIX}_FOUND TRUE) endif (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES) if (${PREFIX}_FOUND) if (NOT ${PREFIX}_FIND_QUIETLY) message(STATUS "Found ${MODNAME}: ${${PREFIX}_LIBRARIES}") endif (NOT ${PREFIX}_FIND_QUIETLY) else (${PREFIX}_FOUND) if (${PREFIX}_FIND_REQUIRED) message(FATAL_ERROR "Could not find ${MODNAME}") endif (${PREFIX}_FIND_REQUIRED) endif (${PREFIX}_FOUND) # show the _INCLUDE_DIRS and _LIBRARIES variables only in the advanced view mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES) endmacro()