[llvm] [opt-viewer] Allow users to set LLVM_HAVE_OPT_VIEWER_MODULES manually… (PR #151845)

Khem Raj via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 2 20:31:49 PDT 2025


https://github.com/kraj created https://github.com/llvm/llvm-project/pull/151845

… from the CMake

Check right before setting LLVM_HAVE_OPT_VIEWER_MODULES so that if the user specifies the variable on the commandline it takes precedence. If not, fall back to the old logic

>From 6856481be61001948b25115fc93e24e3743a9ed4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem at gmail.com>
Date: Sat, 2 Aug 2025 17:58:20 -0700
Subject: [PATCH] [opt-viewer] Allow users to set LLVM_HAVE_OPT_VIEWER_MODULES
 manually from the CMake

Check right before setting LLVM_HAVE_OPT_VIEWER_MODULES
so that if the user specifies the variable on the commandline
it takes precedence. If not, fall back to the old logic
---
 llvm/CMakeLists.txt                     |  2 ++
 llvm/cmake/config-ix.cmake              | 13 ++++++++++---
 llvm/include/llvm/Config/config.h.cmake |  3 +++
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 4c70b98a32f92..60b786ca39c2e 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -7,6 +7,8 @@ set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
 include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
   NO_POLICY_SCOPE)
 
+option(LLVM_HAVE_OPT_VIEWER_MODULES "Enable opt-viewer modules support" ON)
+
 # Builds with custom install names and installation rpath setups may not work
 # in the build tree. Allow these cases to use CMake's default build tree
 # behavior by setting `LLVM_NO_INSTALL_NAME_DIR_FOR_BUILD_TREE` to do this.
diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index a8e4e5a63244d..17af3dc1e93f4 100644
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -805,10 +805,17 @@ foreach(module ${PYTHON_MODULES})
   find_python_module(${module})
 endforeach()
 
-if(PY_PYGMENTS_FOUND AND PY_PYGMENTS_LEXERS_C_CPP_FOUND AND PY_YAML_FOUND)
-  set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
+if(NOT DEFINED LLVM_HAVE_OPT_VIEWER_MODULES)
+  if(PY_PYGMENTS_FOUND AND PY_PYGMENTS_LEXERS_C_CPP_FOUND AND PY_YAML_FOUND)
+    set (LLVM_HAVE_OPT_VIEWER_MODULES 1)
+  else()
+    set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
+  endif()
+elseif(LLVM_HAVE_OPT_VIEWER_MODULES)
+  # Use the user-provided value
+  set(LLVM_HAVE_OPT_VIEWER_MODULES 1)
 else()
-  set (LLVM_HAVE_OPT_VIEWER_MODULES 0)
+  set(LLVM_HAVE_OPT_VIEWER_MODULES 0)
 endif()
 
 function(llvm_get_host_prefixes_and_suffixes)
diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake
index ce83de8e4cba9..02cf6d2ec3636 100644
--- a/llvm/include/llvm/Config/config.h.cmake
+++ b/llvm/include/llvm/Config/config.h.cmake
@@ -287,6 +287,9 @@
 /* Define to a function implementing strdup */
 #cmakedefine strdup ${strdup}
 
+/* Define indicating opt-viewer modules */
+#cmakedefine LLVM_HAVE_OPT_VIEWER_MODULES
+
 /* Whether GlobalISel rule coverage is being collected */
 #cmakedefine01 LLVM_GISEL_COV_ENABLED
 



More information about the llvm-commits mailing list