summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2017-11-28 17:26:28 +0000
committerAdam Nemet <anemet@apple.com>2017-11-28 17:26:28 +0000
commit6c826efcddba810fdd122e8f78d19a4b4a90e5f0 (patch)
tree533b052deca68e6852db7bbfa669359e7b858b0a /cmake
parenta4ec08b6fd62577a5c0e9ddd3c131e223c0672b8 (diff)
Add opt-viewer testing
Detects whether we have the Python modules (pygments, yaml) required by opt-viewer and hooks this up to REQUIRES. This fixes https://bugs.llvm.org/show_bug.cgi?id=34129 (the lack of opt-viewer testing). It's also related to https://github.com/apple/swift/pull/12938 and the idea is to expose LLVM_HAVE_OPT_VIEWER_MODULES to the Swift cmake. Differential Revision: https://reviews.llvm.org/D40202 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319188 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rw-r--r--cmake/config-ix.cmake31
1 files changed, 31 insertions, 0 deletions
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
index 23494fb96c6..caa538082fc 100644
--- a/cmake/config-ix.cmake
+++ b/cmake/config-ix.cmake
@@ -628,3 +628,34 @@ else()
endif()
string(REPLACE " " ";" LLVM_BINDINGS_LIST "${LLVM_BINDINGS}")
+
+function(find_python_module module)
+ string(TOUPPER ${module} module_upper)
+ set(FOUND_VAR PY_${module_upper}_FOUND)
+
+ execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" "import ${module}"
+ RESULT_VARIABLE status
+ ERROR_QUIET)
+
+ if(status)
+ set(${FOUND_VAR} 0 PARENT_SCOPE)
+ message(STATUS "Could NOT find Python module ${module}")
+ else()
+ set(${FOUND_VAR} 1 PARENT_SCOPE)
+ message(STATUS "Found Python module ${module}")
+ endif()
+endfunction()
+
+set (PYTHON_MODULES
+ pygments
+ yaml
+ )
+foreach(module ${PYTHON_MODULES})
+ find_python_module(${module})
+endforeach()
+
+if(PY_PYGMENTS_FOUND AND PY_YAML_FOUND)
+ set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
+else()
+ set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
+endif()