[libcxx-commits] [libcxx] [libc++] Don't generate the modulemap file (PR #80352)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Thu Feb 29 07:15:34 PST 2024


https://github.com/ldionne updated https://github.com/llvm/llvm-project/pull/80352

>From cbfc3ba9d1f4f3296b387566f05accd07f807425 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Thu, 1 Feb 2024 17:08:42 -0500
Subject: [PATCH 1/2] [libc++] Don't generate the modulemap file

We actually didn't generate anything in that file, so generating it
via CMake is useless.
---
 libcxx/docs/Contributing.rst                             | 2 +-
 libcxx/include/CMakeLists.txt                            | 9 +--------
 libcxx/include/{module.modulemap.in => module.modulemap} | 0
 libcxx/utils/libcxx/header_information.py                | 1 -
 4 files changed, 2 insertions(+), 10 deletions(-)
 rename libcxx/include/{module.modulemap.in => module.modulemap} (100%)

diff --git a/libcxx/docs/Contributing.rst b/libcxx/docs/Contributing.rst
index 596d86ef224490..90aabc9c4ff6fa 100644
--- a/libcxx/docs/Contributing.rst
+++ b/libcxx/docs/Contributing.rst
@@ -156,7 +156,7 @@ sure you don't forget anything:
 - Did you add all new named declarations to the ``std`` module?
 - If you added a header:
 
-  - Did you add it to ``include/module.modulemap.in``?
+  - Did you add it to ``include/module.modulemap``?
   - Did you add it to ``include/CMakeLists.txt``?
   - If it's a public header, did you update ``utils/libcxx/header_information.py``?
 
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index cafd8c6e00d968..6be99d31ea6157 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -968,6 +968,7 @@ set(files
   mdspan
   memory
   memory_resource
+  module.modulemap
   mutex
   new
   numbers
@@ -1021,18 +1022,10 @@ set(files
   wctype.h
   )
 
-foreach(feature LIBCXX_ENABLE_FILESYSTEM LIBCXX_ENABLE_LOCALIZATION LIBCXX_ENABLE_THREADS LIBCXX_ENABLE_WIDE_CHARACTERS)
-  if (NOT ${${feature}})
-    set(requires_${feature} "requires LIBCXX_CONFIGURED_WITHOUT_SUPPORT_FOR_THIS_HEADER")
-  endif()
-endforeach()
-
 configure_file("__config_site.in" "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site" @ONLY)
-configure_file("module.modulemap.in" "${LIBCXX_GENERATED_INCLUDE_DIR}/module.modulemap" @ONLY)
 configure_file("${LIBCXX_ASSERTION_HANDLER_FILE}" "${LIBCXX_GENERATED_INCLUDE_DIR}/__assertion_handler" COPYONLY)
 
 set(_all_includes "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site"
-                  "${LIBCXX_GENERATED_INCLUDE_DIR}/module.modulemap"
                   "${LIBCXX_GENERATED_INCLUDE_DIR}/__assertion_handler")
 foreach(f ${files})
   set(src "${CMAKE_CURRENT_SOURCE_DIR}/${f}")
diff --git a/libcxx/include/module.modulemap.in b/libcxx/include/module.modulemap
similarity index 100%
rename from libcxx/include/module.modulemap.in
rename to libcxx/include/module.modulemap
diff --git a/libcxx/utils/libcxx/header_information.py b/libcxx/utils/libcxx/header_information.py
index b2aa3739ea697d..bccae353b0c6bd 100644
--- a/libcxx/utils/libcxx/header_information.py
+++ b/libcxx/utils/libcxx/header_information.py
@@ -155,7 +155,6 @@
 def is_header(file):
     """Returns whether the given file is a header (i.e. not a directory or the modulemap file)."""
     return not file.is_dir() and not file.name in [
-        "module.modulemap.in",
         "module.modulemap",
         "CMakeLists.txt",
         "libcxx.imp",

>From a351f04fc61b4a1e5ac2346d464d86e8e5dbad82 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Thu, 29 Feb 2024 10:15:12 -0500
Subject: [PATCH 2/2] Fix modulemap linting

---
 libcxx/test/libcxx/lint/lint_headers.sh.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/libcxx/lint/lint_headers.sh.py b/libcxx/test/libcxx/lint/lint_headers.sh.py
index ab237c968da7e1..c5e582cb0f7cb4 100644
--- a/libcxx/test/libcxx/lint/lint_headers.sh.py
+++ b/libcxx/test/libcxx/lint/lint_headers.sh.py
@@ -11,7 +11,7 @@
 def exclude_from_consideration(path):
     return (
         path.endswith(".txt")
-        or path.endswith(".modulemap.in")
+        or path.endswith(".modulemap")
         or os.path.basename(path) == "__config"
         or os.path.basename(path) == "__config_site.in"
         or os.path.basename(path) == "libcxx.imp"



More information about the libcxx-commits mailing list