HelperMacros.cmake revision c43e8c459ef8a48adf6b336c1a8a13cfe0415065
# A macro to replace slashes and spaces in a string with underscores
macro(SANITIZE_PATH _string_var)
string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}})
endmacro()
macro(inkscape_source_group
sources)
# Group by location on disk
source_group("Source Files" FILES CMakeLists.txt)
foreach(_SRC ${sources})
get_filename_component(_SRC_EXT ${_SRC} EXT)
if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp"))
source_group("Header Files" FILES ${_SRC})
else()
source_group("Source Files" FILES ${_SRC})
endif()
endforeach()
unset(_SRC)
unset(_SRC_EXT)
endmacro()
# only MSVC uses SOURCE_GROUP
macro(add_inkscape_lib
name
sources)
add_library(${name} ${sources})
# works fine without having the includes
# listed is helpful for IDE's (QtCreator/MSVC)
inkscape_source_group("${sources}")
endmacro()
# A macro to append to the global source property
set_property(GLOBAL PROPERTY inkscape_global_SRC "")
macro (add_inkscape_source
sources)
foreach(_SRC ${ARGV})
get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
endforeach()
unset(_SRC)
unset(_ABS_SRC)
endmacro()
# A macro to append to the global source property
macro (add_inkscape_library
sources)
foreach(_SRC ${ARGV})
get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
endforeach()
unset(_SRC)
unset(_ABS_SRC)
endmacro()
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 <PREFIX>_INCLUDE_DIRS and <PREFIX>_LIBRARIES variables only in the advanced view
mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES)
endmacro()