Compartir a través de


patsubst, patsubsti funciones de NMAKE

Se evalúa como una lista de elementos con cada elemento que coincide con un patrón reemplazado por una sustitución y los elementos que no coinciden tal como están.

Sintaxis

$(patsubst pattern,replacement,input)
$(patsubsti pattern,replacement,input)

Parámetros

pattern
Patrón que se va a buscar.

replacement
Patrón por el que se va a reemplazar pattern. Si un carácter comodín está presente en replacement, se reemplazará por el texto que coincide con el carácter comodín pattern.

input
Lista de elementos que se van a reemplazar o conservar.

Valor devuelto

Devuelve input, pero cada elemento que coincide pattern se reemplaza por replacement. Los elementos que no coinciden pattern se mantienen tal como están.

Comentarios

patsubsti es una versión sin distinción entre mayúsculas y minúsculas de patsubst.

Esta función de macro está disponible a partir de la versión 17.1 de Visual Studio 2022, en la versión 14.31 o posterior de NMAKE.

Ejemplo

$(patsubst He%,_%_,Hello Hey Hi) # Evaluates to "_llo_ _y_ Hi"
# "He" matches "Hello" and "Hey", and so "llo" and "y" are matched by the wildcard
# and used to substitute the wildcard in the replacement. "Hi" is not matched and so is kept as-is

$(patsubst Hi,Bye,Hello Hey Hi) # Evaluates to "Hello Hey Bye" - No wildcard is required
$(patsubst %lo,Bye,Hello Hey Hi) # Evaluates to "Bye Hey Hi"
# A wildcard can be used in the pattern without a wildcard in the replacement

$(patsubst he%,_%_,Hello Hey Hi) # Evaluates to "Hello Hey Hi" - patsubst is case-sensitive, so no substitutions performed
$(patsubsti he%,_%_,Hello Hey Hi) # Evaluates to "_llo_ _y_ Hi" - patsubsti is case-insensitive

# patsubsti is commonly used to change the file extensions of a list of files
OBJ_FILES=$(patsubst %.c,%.obj,$(C_SOURCES)) $(patsubst %.cpp,%.obj,$(patsubst %.cxx,%.obj,$(CPP_SOURCES)))

Vea también

Macros y NMAKE
Funciones de NMAKE por categoría