diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b45e21..dcaf7ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -219,7 +219,7 @@
 
 # Targets
 add_library(aom_version ${AOM_VERSION_SOURCES})
-add_stub_source_file_to_target(aom_version c)
+add_no_op_source_file_to_target(aom_version c)
 add_custom_command(OUTPUT "${AOM_CONFIG_DIR}/config/aom_version.h"
                    COMMAND ${CMAKE_COMMAND} ARGS
                            -DAOM_CONFIG_DIR=${AOM_CONFIG_DIR}
@@ -781,7 +781,7 @@
     # here, it really is the Xcode generator's fault, or just a deficiency in
     # Xcode itself.
     foreach(aom_app ${AOM_APP_TARGETS})
-      add_stub_source_file_to_target("${aom_app}" "cc")
+      add_no_op_source_file_to_target("${aom_app}" "cc")
     endforeach()
   endif()
 endif()
diff --git a/aom_dsp/aom_dsp.cmake b/aom_dsp/aom_dsp.cmake
index e366622..f9dbc55f 100644
--- a/aom_dsp/aom_dsp.cmake
+++ b/aom_dsp/aom_dsp.cmake
@@ -327,8 +327,8 @@
 function(setup_aom_dsp_targets)
   add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES})
   list(APPEND AOM_LIB_TARGETS aom_dsp_common)
-  create_stub_source_file("aom_av1" "c" "stub_source_file")
-  add_library(aom_dsp OBJECT "${stub_source_file}")
+  create_no_op_source_file("aom_av1" "c" "no_op_source_file")
+  add_library(aom_dsp OBJECT "${no_op_source_file}")
   target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_common>)
   if(BUILD_SHARED_LIBS)
     target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_common>)
@@ -337,7 +337,7 @@
 
   # Not all generators support libraries consisting only of object files. Add a
   # source file to the aom_dsp target.
-  add_stub_source_file_to_target("aom_dsp" "c")
+  add_no_op_source_file_to_target("aom_dsp" "c")
 
   if(CONFIG_AV1_DECODER)
     add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES})
diff --git a/build/cmake/aom_install.cmake b/build/cmake/aom_install.cmake
index cd5951c..b02c7b9 100644
--- a/build/cmake/aom_install.cmake
+++ b/build/cmake/aom_install.cmake
@@ -32,7 +32,7 @@
     set(AOM_PKG_CONFIG_FILE "${AOM_CONFIG_DIR}/aom.pc")
 
     # Create a library target for creating aom.pc.
-    create_stub_source_file(aom_pc c AOM_PKG_CONFIG_SOURCES)
+    create_no_op_source_file(aom_pc c AOM_PKG_CONFIG_SOURCES)
     add_library(aom_pc ${AOM_PKG_CONFIG_SOURCES})
 
     # Setup a rule to generate aom.pc.
diff --git a/build/cmake/aom_optimization.cmake b/build/cmake/aom_optimization.cmake
index 7ffc0b8..ab49315 100644
--- a/build/cmake/aom_optimization.cmake
+++ b/build/cmake/aom_optimization.cmake
@@ -178,7 +178,7 @@
     # function to force the linker language to C. We don't bother with setting
     # the LINKER_LANGUAGE property on the library target because not all
     # generators obey it (looking at you, Xcode generator).
-    add_stub_source_file_to_target("${asm_lib_name}" "c")
+    add_no_op_source_file_to_target("${asm_lib_name}" "c")
 
     # Add the new lib target to the global list of aom library targets.
     list(APPEND AOM_LIB_TARGETS ${asm_lib_name})
diff --git a/build/cmake/util.cmake b/build/cmake/util.cmake
index 2033dd3..31de2e1 100644
--- a/build/cmake/util.cmake
+++ b/build/cmake/util.cmake
@@ -16,32 +16,32 @@
 # Directory where generated sources will be written.
 set(AOM_GEN_SRC_DIR "${AOM_CONFIG_DIR}/gen_src")
 
-# Creates source file in $AOM_GEN_SRC_DIR named $basename.$extension and returns
-# the full path to the source file via appending it to the list variable
+# Creates a no-op source file in $AOM_GEN_SRC_DIR named $basename.$extension and
+# returns the full path to the source file via appending it to the list variable
 # referred to by $out_file_list_var parameter.
-macro(create_stub_source_file basename extension out_file_list_var)
-  set(stub_source_file "${AOM_GEN_SRC_DIR}/${basename}_stub.${extension}")
-  file(WRITE "${stub_source_file}"
+macro(create_no_op_source_file basename extension out_file_list_var)
+  set(no_op_source_file "${AOM_GEN_SRC_DIR}/${basename}_no_op.${extension}")
+  file(WRITE "${no_op_source_file}"
        "// Generated file. DO NOT EDIT!\n"
        "// ${target_name} needs a ${extension} file to force link language, \n"
        "// or to silence a harmless CMake warning: Ignore me.\n"
-       "void aom_${target_name}_stub_function(void);\n"
-       "void aom_${target_name}_stub_function(void) {}\n")
-  list(APPEND "${out_file_list_var}" "${stub_source_file}")
+       "void aom_${target_name}_no_op_function(void);\n"
+       "void aom_${target_name}_no_op_function(void) {}\n")
+  list(APPEND "${out_file_list_var}" "${no_op_source_file}")
 endmacro()
 
-# Convenience function for adding a stub source file to $target_name using
-# $extension as the file extension. Wraps create_stub_source_file().
-function(add_stub_source_file_to_target target_name extension)
-  create_stub_source_file("${target_name}" "${extension}"
-                          "stub_source_file_list")
-  target_sources(${target_name} PRIVATE ${stub_source_file_list})
+# Convenience function for adding a no-op source file to $target_name using
+# $extension as the file extension. Wraps create_no_op_source_file().
+function(add_no_op_source_file_to_target target_name extension)
+  create_no_op_source_file("${target_name}" "${extension}"
+                           "no_op_source_file_list")
+  target_sources(${target_name} PRIVATE ${no_op_source_file_list})
 endfunction()
 
 # Sets the value of the variable referenced by $feature to $value, and reports
 # the change to the user via call to message(WARNING ...). $cause is expected to
 # be a configuration variable that conflicts with $feature in some way. This
-# function is a noop if $feature is already set to $value.
+# function is a no-op if $feature is already set to $value.
 function(change_config_and_warn feature value cause)
   if(${feature} EQUAL ${value})
     return()
