summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2017-11-29 17:07:41 +0000
committerAdam Nemet <anemet@apple.com>2017-11-29 17:07:41 +0000
commitd3ee0657bcbfd34f52b0079df96a51039b3f2f14 (patch)
tree37682e0a3b5ea2c2ca142539a5fe8d2b20376ee3 /cmake
parentff7724479284555eb1d624c9e19e285408f1f45a (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 Fixes since the first commit: 1. Disable syntax highlighting as different versions of pygments generate different HTML 2. Use llvm-cxxfilt from the build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319324 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()