Partager via


patsubst, patsubsti fonctions NMAKE

Évalue une liste d’éléments avec chaque élément qui correspond à un modèle remplacé par une substitution, et les éléments qui ne correspondent pas conservés tel quel.

Syntaxe

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

Paramètres

pattern
Modèle à rechercher.

replacement
Modèle à remplacer pattern par. Si un caractère générique est présent replacement, il est remplacé par le texte mis en pattern correspondance par le caractère générique.

input
Liste des éléments à remplacer ou conserver.

Valeur retournée

Retourne input, mais chaque élément qui correspond pattern est remplacé par replacement. Les éléments qui ne correspondent pattern pas sont conservés comme c’est le cas.

Notes

patsubsti est la version non sensible à la casse de patsubst.

Cette fonction de macro est disponible à partir de Visual Studio 2022 version 17.1, dans NMAKE version 14.31 ou ultérieure.

Exemple

$(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)))

Voir aussi

NMAKE et les macros
Fonctions NMAKE par catégorie