diff --git a/Modules/FindIconv.cmake b/Modules/FindIconv.cmake
index 5ec12b2c7a65a2d25ba6cf7246927b5064ea98fc..566330f40db4ee979d1aeaa59a8f88eb0bab089f 100644
--- a/Modules/FindIconv.cmake
+++ b/Modules/FindIconv.cmake
@@ -122,26 +122,28 @@ if(NOT DEFINED Iconv_IS_BUILT_IN)
   endif()
 endif()
 
-if(NOT Iconv_IS_BUILT_IN)
+set(_Iconv_REQUIRED_VARS)
+if(Iconv_IS_BUILT_IN)
+  set(_Iconv_REQUIRED_VARS _Iconv_IS_BUILT_IN_MSG)
+  set(_Iconv_IS_BUILT_IN_MSG "built in to C library")
+else()
+  set(_Iconv_REQUIRED_VARS Iconv_LIBRARY Iconv_INCLUDE_DIR)
+
   find_path(Iconv_INCLUDE_DIR
     NAMES "iconv.h"
     DOC "iconv include directory")
   set(Iconv_LIBRARY_NAMES "iconv" "libiconv")
-else()
-  set(Iconv_INCLUDE_DIR "" CACHE FILEPATH "iconv include directory")
-  set(Iconv_LIBRARY_NAMES "c")
-endif()
-
-find_library(Iconv_LIBRARY
-  NAMES ${Iconv_LIBRARY_NAMES}
-  NAMES_PER_DIR
-  DOC "iconv library (potentially the C library)")
+  mark_as_advanced(Iconv_INCLUDE_DIR)
 
-mark_as_advanced(Iconv_INCLUDE_DIR)
-mark_as_advanced(Iconv_LIBRARY)
+  find_library(Iconv_LIBRARY
+    NAMES iconv libiconv
+    NAMES_PER_DIR
+    DOC "iconv library (if not in the C library)")
+  mark_as_advanced(Iconv_LIBRARY)
+endif()
 
 # NOTE: glibc's iconv.h does not define _LIBICONV_VERSION
-if(Iconv_INCLUDE_DIR AND NOT Iconv_IS_BUILT_IN)
+if(Iconv_INCLUDE_DIR AND EXISTS "${Iconv_INCLUDE_DIR}/iconv.h")
   file(STRINGS ${Iconv_INCLUDE_DIR}/iconv.h Iconv_VERSION_DEFINE REGEX "_LIBICONV_VERSION (.*)")
 
   if(Iconv_VERSION_DEFINE MATCHES "(0x[A-Fa-f0-9]+)")
@@ -160,19 +162,21 @@ if(Iconv_INCLUDE_DIR AND NOT Iconv_IS_BUILT_IN)
 endif()
 
 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-if(NOT Iconv_IS_BUILT_IN)
-  find_package_handle_standard_args(Iconv REQUIRED_VARS Iconv_LIBRARY Iconv_INCLUDE_DIR
-                                    VERSION_VAR Iconv_VERSION)
-else()
-  find_package_handle_standard_args(Iconv REQUIRED_VARS Iconv_LIBRARY)
-endif()
+find_package_handle_standard_args(Iconv
+                                  REQUIRED_VARS ${_Iconv_REQUIRED_VARS}
+                                  VERSION_VAR Iconv_VERSION)
 
 if(Iconv_FOUND)
-  set(Iconv_INCLUDE_DIRS "${Iconv_INCLUDE_DIR}")
-  set(Iconv_LIBRARIES "${Iconv_LIBRARY}")
+  if(Iconv_IS_BUILT_IN)
+    set(Iconv_INCLUDE_DIRS "")
+    set(Iconv_LIBRARIES "")
+  else()
+    set(Iconv_INCLUDE_DIRS "${Iconv_INCLUDE_DIR}")
+    set(Iconv_LIBRARIES "${Iconv_LIBRARY}")
+  endif()
   if(NOT TARGET Iconv::Iconv)
     add_library(Iconv::Iconv INTERFACE IMPORTED)
+    set_property(TARGET Iconv::Iconv PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${Iconv_INCLUDE_DIRS}")
+    set_property(TARGET Iconv::Iconv PROPERTY INTERFACE_LINK_LIBRARIES "${Iconv_LIBRARIES}")
   endif()
-  set_property(TARGET Iconv::Iconv PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${Iconv_INCLUDE_DIRS}")
-  set_property(TARGET Iconv::Iconv PROPERTY INTERFACE_LINK_LIBRARIES "${Iconv_LIBRARIES}")
 endif()
diff --git a/Modules/FindIntl.cmake b/Modules/FindIntl.cmake
index 038f4dacf1e304ea5f8b0669898c9ad48062fe4c..95eeabda83ea2f3dd2fb11d01f6f850575a62ea0 100644
--- a/Modules/FindIntl.cmake
+++ b/Modules/FindIntl.cmake
@@ -129,7 +129,9 @@ else()
             DOC "libintl include directory")
   mark_as_advanced(Intl_INCLUDE_DIR)
 
-  find_library(Intl_LIBRARY "intl" "libintl" NAMES_PER_DIR
+  find_library(Intl_LIBRARY
+    NAMES "intl" "libintl"
+    NAMES_PER_DIR
     DOC "libintl libraries (if not in the C library)")
   mark_as_advanced(Intl_LIBRARY)
 endif()