49 lines
1.9 KiB
CMake
49 lines
1.9 KiB
CMake
# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
|
|
# MACRO_OPTIONAL_FIND_PACKAGE( <name> [QUIT] )
|
|
# This macro is a combination of OPTION() and FIND_PACKAGE(), it
|
|
# works like FIND_PACKAGE(), but additionally it automatically creates
|
|
# an option name WITH_<name>, which can be disabled via the cmake GUI.
|
|
# or via -DWITH_<name>=OFF
|
|
# The standard <name>_FOUND variables can be used in the same way
|
|
# as when using the normal FIND_PACKAGE()
|
|
|
|
# Copyright (c) 2006-2010 Alexander Neundorf, <neundorf@kde.org>
|
|
#
|
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
|
|
|
# This is just a helper macro to set a bunch of variables empty.
|
|
# We don't know whether the package uses UPPERCASENAME or CamelCaseName, so we try both:
|
|
macro(_MOFP_SET_EMPTY_IF_DEFINED _name _var)
|
|
if(DEFINED ${_name}_${_var})
|
|
set(${_name}_${_var} "")
|
|
endif(DEFINED ${_name}_${_var})
|
|
|
|
string(TOUPPER ${_name} _nameUpper)
|
|
if(DEFINED ${_nameUpper}_${_var})
|
|
set(${_nameUpper}_${_var} "")
|
|
endif(DEFINED ${_nameUpper}_${_var})
|
|
endmacro(_MOFP_SET_EMPTY_IF_DEFINED _package _var)
|
|
|
|
|
|
macro (MACRO_OPTIONAL_FIND_PACKAGE _name _default)
|
|
option(WITH_${_name} "Search for ${_name} package" ${_default})
|
|
if (WITH_${_name})
|
|
find_package(${_name} ${ARGN})
|
|
else (WITH_${_name})
|
|
string(TOUPPER ${_name} _nameUpper)
|
|
set(${_name}_FOUND FALSE)
|
|
set(${_nameUpper}_FOUND FALSE)
|
|
|
|
_mofp_set_empty_if_defined(${_name} INCLUDE_DIRS)
|
|
_mofp_set_empty_if_defined(${_name} INCLUDE_DIR)
|
|
_mofp_set_empty_if_defined(${_name} INCLUDES)
|
|
_mofp_set_empty_if_defined(${_name} LIBRARY)
|
|
_mofp_set_empty_if_defined(${_name} LIBRARIES)
|
|
_mofp_set_empty_if_defined(${_name} LIBS)
|
|
_mofp_set_empty_if_defined(${_name} FLAGS)
|
|
_mofp_set_empty_if_defined(${_name} DEFINITIONS)
|
|
endif (WITH_${_name})
|
|
endmacro (MACRO_OPTIONAL_FIND_PACKAGE)
|
|
|