Я использую premake5 с Visual Studio 2013 и пытаюсь связать стороннюю библиотеку с моим проектом. Отладочная версия этой библиотеки имеет суффикс «d», как обычно. Это пример сценария.Специализация переменной по типу конфигурации в premake
solution "MySln"
language "C++"
configurations { "debug", "release" }
d = ""
configuration "debug"
d = "d"
configuration "release"
d = ""
libicu = { "icuin%{d}", "icuuc%{d}" }
project "core"
kind "SharedLib"
location "core"
links(libicu)
files { "core/**.h", "core/**.cpp" }
Но этот скрипт ссылки в обеих конфигурациях (отладки и выпуска) icuin.lib и icuuc.lib. Если я удалю d = "" присвоение в конфигурации "release" блок, тогда обе конфигурации связывают библиотеки icuind.lib и icuucd.lib. Похоже, что premake использует последнее увиденное определение переменной при разрешении% {d} placeholder. Как я могу изменить свой скрипт, чтобы получить правильное поведение? Благодаря!