summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-03-20 09:22:25 -0400
committerCMake Topic Stage <kwrobot@kitware.com>2014-03-20 09:22:25 -0400
commitb048a3edd031f1674c912353c968087a9f059ea3 (patch)
tree336b00dd05d915bb33f0118bb4aa613e14f4dd88 /Modules
parent82c590b12ed7301539202b0af92f8181f7708f16 (diff)
parentcc5a0d8f42f9ad8bc5ac50be343db05128a0c6ea (diff)
downloadcmake-b048a3edd031f1674c912353c968087a9f059ea3.tar.gz
Merge topic 'FindPkgConfig_Extend-PKG_CONFIG_PATH_2'
cc5a0d8f FindPkgConfig: More unit tests 453d2b24 FindPkgConfig: small refactoring
Diffstat (limited to 'Modules')
-rw-r--r--Modules/FindPkgConfig.cmake55
1 files changed, 31 insertions, 24 deletions
diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake
index 812bb922f6..286cc23663 100644
--- a/Modules/FindPkgConfig.cmake
+++ b/Modules/FindPkgConfig.cmake
@@ -136,6 +136,31 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma
list(REMOVE_ITEM ${_result} "NO_CMAKE_ENVIRONMENT_PATH")
endmacro()
+# Add the content of a variable or an environment variable to a list of
+# paths
+# Usage:
+# - _pkgconfig_add_extra_path(_extra_paths VAR)
+# - _pkgconfig_add_extra_path(_extra_paths ENV VAR)
+function(_pkgconfig_add_extra_path _extra_paths_var _var)
+ set(_is_env 0)
+ if(_var STREQUAL "ENV")
+ set(_var ${ARGV2})
+ set(_is_env 1)
+ endif()
+ if(NOT _is_env)
+ if(NOT "${${_var}}" STREQUAL "")
+ list(APPEND ${_extra_paths_var} ${CMAKE_PREFIX_PATH})
+ endif()
+ else()
+ if(NOT "$ENV{${_var}}" STREQUAL "")
+ file(TO_CMAKE_PATH "$ENV{${_var}}" _path)
+ list(APPEND ${_extra_paths_var} ${_path})
+ unset(_path)
+ endif()
+ endif()
+ set(${_extra_paths_var} ${${_extra_paths_var}} PARENT_SCOPE)
+endfunction()
+
###
macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _prefix)
_pkgconfig_unset(${_prefix}_FOUND)
@@ -179,33 +204,15 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma
set(_extra_paths)
if(NOT _no_cmake_path)
- if(NOT "${CMAKE_PREFIX_PATH}" STREQUAL "")
- list(APPEND _extra_paths ${CMAKE_PREFIX_PATH})
- endif()
- if(NOT "${CMAKE_FRAMEWORK_PATH}" STREQUAL "")
- list(APPEND _extra_paths ${CMAKE_FRAMEWORK_PATH})
- endif()
- if(NOT "${CMAKE_APPBUNDLE_PATH}" STREQUAL "")
- list(APPEND _extra_paths ${CMAKE_FRAMEWORK_PATH})
- endif()
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_PREFIX_PATH)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_FRAMEWORK_PATH)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_APPBUNDLE_PATH)
endif()
if(NOT _no_cmake_environment_path)
- if(NOT "$ENV{CMAKE_PREFIX_PATH}" STREQUAL "")
- file(TO_CMAKE_PATH "$ENV{CMAKE_PREFIX_PATH}" _path)
- list(APPEND _extra_paths ${_path})
- unset(_path)
- endif()
- if(NOT "$ENV{CMAKE_FRAMEWORK_PATH}" STREQUAL "")
- file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _path)
- list(APPEND _extra_paths ${_path})
- unset(_path)
- endif()
- if(NOT "$ENV{CMAKE_APPBUNDLE_PATH}" STREQUAL "")
- file(TO_CMAKE_PATH "$ENV{CMAKE_APPBUNDLE_PATH}" _path)
- list(APPEND _extra_paths ${_path})
- unset(_path)
- endif()
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_PREFIX_PATH)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_FRAMEWORK_PATH)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_APPBUNDLE_PATH)
endif()
if(NOT "${_extra_paths}" STREQUAL "")