130 lines
3.1 KiB
CMake
130 lines
3.1 KiB
CMake
# 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()
|