プロパティの種類 (C++)
プロジェクト システムでは、プロパティを単純プロパティと集約プロパティの 2 種類に区別します。プロパティの種類によって、プロパティ継承の評価は異なります。
単純プロパティ
単純プロパティは、整数型、ブール型、列挙型などの、文字列でないすべてのプロパティで、単一値だけを保持します。ローカル レベル (このファイル構成、この構成、このプロパティ シートなど) で定義されている場合、継承された値は無視されます。このようなプロパティの例としては、CL.EXE に /WX スイッチを設定する WarnAsError があります。
集約プロパティ
集約プロパティは、常に文字列のプロパティです。集約プロパティの値は、任意のレベルで定義され、その親の値と連結されます。集約プロパティの例としては、CL.EXE に /I スイッチを設定する AdditionalIncludeDirectories があります。パスのプロパティは、単一値ではなく複数の値のリストで構成されており、集約プロパティの良い例です。
集約プロパティのプロパティ評価を制御する 3 種類の組み込み特殊マクロがあります。
$(Inherit)
親のプロパティ値を評価し、マクロの代わりにこれらの値を挿入することを指定します。どこにも $(Inherit) が指定されていない場合、値の末尾にあることが暗示されています。つまり、親の値は、現在のレベルの値に追加されます。$(NoInherit)
親のプロパティ値を集約プロパティに追加しないことを指定します。$(NoInherit) マクロは、$(Inherit) マクロをオーバーライドします。$(StopEvaluating)
マクロが使用されている特定の集約プロパティでのすべての評価を中断することを指定します。$(StopEvaluating) マクロの後の値はすべて失われます。