1#-----------------------------------------------------------------------------
2MACRO(VTK_THIRD_PARTY_OPTION upper lower)
3  OPTION(VTK_USE_SYSTEM_${upper} "Use the system's ${lower} library." OFF)
4  MARK_AS_ADVANCED(VTK_USE_SYSTEM_${upper})
5  IF(VTK_USE_SYSTEM_${upper})
6    IF(EXISTS ${CMAKE_ROOT}/Modules/Find${upper}.cmake)
7      INCLUDE(${CMAKE_ROOT}/Modules/Find${upper}.cmake)
8    ELSE()
9      INCLUDE(${VTK_CMAKE_DIR}/Find${upper}.cmake)
10    ENDIF()
11    MARK_AS_ADVANCED(${upper}_INCLUDE_DIR ${upper}_LIBRARY)
12    IF(${upper}_FOUND)
13      SET(VTK_${upper}_LIBRARIES ${${upper}_LIBRARIES})
14      IF("${upper}" MATCHES "^PNG$")
15        SET(PNG_INCLUDE_DIR ${PNG_PNG_INCLUDE_DIR})
16        MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR)
17      ENDIF()
18    ELSE()
19      MESSAGE(SEND_ERROR "VTK_USE_SYSTEM_${upper} is ON, but ${upper}_LIBRARY is NOTFOUND.")
20    ENDIF()
21  ELSE()
22    SET(VTK_${upper}_LIBRARIES vtk${lower})
23  ENDIF()
24ENDMACRO()
25
26#-----------------------------------------------------------------------------
27MACRO(VTK_THIRD_PARTY_INCLUDE upper lower)
28  IF(VTK_USE_SYSTEM_${upper})
29    IF(${upper}_INCLUDE_DIR)
30      SET(VTK_INCLUDE_DIRS_SYSTEM ${VTK_INCLUDE_DIRS_SYSTEM} ${${upper}_INCLUDE_DIR})
31    ENDIF()
32  ELSE()
33    SET(VTK_INCLUDE_DIRS_SOURCE_TREE ${VTK_INCLUDE_DIRS_SOURCE_TREE}
34      ${VTK_BINARY_DIR}/Utilities/${lower}
35      ${VTK_SOURCE_DIR}/Utilities/${lower}
36    )
37  ENDIF()
38ENDMACRO()
39
40MACRO(VTK_THIRD_PARTY_INCLUDE2 upper)
41  IF(VTK_USE_SYSTEM_${upper})
42    IF(${upper}_INCLUDE_DIR)
43      SET(VTK_INCLUDE_DIRS_SYSTEM ${VTK_INCLUDE_DIRS_SYSTEM} ${${upper}_INCLUDE_DIR})
44    ENDIF()
45  ENDIF()
46ENDMACRO()
47
48#-----------------------------------------------------------------------------
49MACRO(VTK_THIRD_PARTY_SUBDIR upper lower)
50  IF(NOT VTK_USE_SYSTEM_${upper})
51    SUBDIRS(${lower})
52  ENDIF()
53ENDMACRO()
54
55#-----------------------------------------------------------------------------
56MACRO(VTK_THIRD_PARTY_WARNING_SUPPRESS upper lang)
57  IF(NOT ${upper}_WARNINGS_ALLOW)
58    # MSVC uses /w to suppress warnings.  It also complains if another
59    # warning level is given, so remove it.
60    IF(MSVC)
61      SET(${upper}_WARNINGS_BLOCKED 1)
62      STRING(REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " "
63        CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS}")
64      SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} /w")
65    ENDIF()
66
67    # Borland uses -w- to suppress warnings.
68    IF(BORLAND)
69      SET(${upper}_WARNINGS_BLOCKED 1)
70      SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} -w-")
71    ENDIF()
72
73    # Most compilers use -w to suppress warnings.
74    IF(NOT ${upper}_WARNINGS_BLOCKED)
75      SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} -w")
76    ENDIF()
77  ENDIF()
78ENDMACRO()
79