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