ctkFunctionGetLibraryDirs.cmake 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. ###########################################################################
  2. #
  3. # Library: CTK
  4. #
  5. # Copyright (c) German Cancer Research Center,
  6. # Division of Medical and Biological Informatics
  7. #
  8. # Licensed under the Apache License, Version 2.0 (the "License");
  9. # you may not use this file except in compliance with the License.
  10. # You may obtain a copy of the License at
  11. #
  12. # http://www.apache.org/licenses/LICENSE-2.0
  13. #
  14. # Unless required by applicable law or agreed to in writing, software
  15. # distributed under the License is distributed on an "AS IS" BASIS,
  16. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. # See the License for the specific language governing permissions and
  18. # limitations under the License.
  19. #
  20. ###########################################################################
  21. #! \ingroup CMakeUtilities
  22. function(ctkFunctionGetLibraryDirs var_library_dirs)
  23. if(NOT ARGN)
  24. message(FATAL_ERROR "No targets given")
  25. endif()
  26. set(_library_dirs ${${var_library_dirs}})
  27. foreach(_target ${ARGN})
  28. # Add the library directories from the external project
  29. # The variable ${_target}_DEPENDENCIES is set in the
  30. # macro ctkMacroValidateBuildOptions
  31. set(ext_deps )
  32. ctkMacroGetAllNonProjectTargetLibraries("${${_target}_DEPENDENCIES}" ext_deps)
  33. foreach(dep ${ext_deps})
  34. if(${dep}_LIBRARY_DIRS)
  35. string(REPLACE "^" ";" _ext_library_dirs "${${dep}_LIBRARY_DIRS}")
  36. list(APPEND _library_dirs ${_ext_library_dirs})
  37. endif()
  38. endforeach()
  39. endforeach()
  40. if(_library_dirs)
  41. list(REMOVE_DUPLICATES _library_dirs)
  42. endif()
  43. set(${var_library_dirs} ${_library_dirs} PARENT_SCOPE)
  44. endfunction()