CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkFunctionGetLibraryDirs.cmake
Go to the documentation of this file.
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 
22 #! \ingroup CMakeUtilities
23 function(ctkFunctionGetLibraryDirs var_library_dirs)
24 
25  if(NOT ARGN)
26  message(FATAL_ERROR "No targets given")
27  endif()
28 
29  set(_library_dirs ${${var_library_dirs}})
30  foreach(_target ${ARGN})
31 
32  # Add the library directories from the external project
33  # The variable ${_target}_DEPENDENCIES is set in the
34  # macro ctkMacroValidateBuildOptions
35 
36  set(ext_deps )
37 
38  ctkMacroGetAllNonProjectTargetLibraries("${${_target}_DEPENDENCIES}" ext_deps)
39 
40  foreach(dep ${ext_deps})
41 
42  if(${dep}_LIBRARY_DIRS)
43  string(REPLACE "^" ";" _ext_library_dirs "${${dep}_LIBRARY_DIRS}")
44  list(APPEND _library_dirs ${_ext_library_dirs})
45  endif()
46 
47  endforeach()
48 
49  endforeach()
50 
51  if(_library_dirs)
52  list(REMOVE_DUPLICATES _library_dirs)
53  endif()
54  set(${var_library_dirs} ${_library_dirs} PARENT_SCOPE)
55 
56 endfunction()