1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
# 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 <PREFIX>_INCLUDE_DIRS and <PREFIX>_LIBRARIES variables only in the advanced view
mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES)
endmacro()
|