| --- a/cmake/Modules/MacroOptionalFindPackage.cmake |
| +++ b/cmake/Modules/MacroOptionalFindPackage.cmake |
| @@ -0,0 +1,48 @@ |
| +# - 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 ) |
| + option(WITH_${_name} "Search for ${_name} package" ON) |
| + 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) |
| + |
| --- a/CMakeLists.txt |
| +++ b/CMakeLists.txt |
| @@ -34,7 +34,7 @@ |
| include(DefineInstallationPaths) |
| include(DefineOptions.cmake) |
| include(CPackConfig.cmake) |
| - |
| +include(MacroOptionalFindPackage) |
| if (UNIT_TESTING) |
| include(AddCMockaTest) |
| endif (UNIT_TESTING) |
| --- a/doc/CMakeLists.txt |
| +++ b/doc/CMakeLists.txt |
| @@ -1,5 +1,7 @@ |
| # |
| # Build the documentation |
| # |
| -include(UseDoxygen OPTIONAL) |
| - |
| +option(WITH_APIDOC "Use doxygen to generate documentation" ON) |
| +if (WITH_APIDOC) |
| + include(UseDoxygen OPTIONAL) |
| +endif (WITH_APIDOC) |