Я использую premake5 в качестве генератора проекта.Я использую его для создания make-файла или Visual Studio, где это необходимо (Linux и Windows соответственно).Я хочу иметь конфигурацию SAN (Adress / Undefined-Behavior SANitizer) только при использовании gcc или clang (другой набор инструментов не поддерживает) для моего проекта C ++.К сожалению, я не установил его успешно.
Я использую premake5 Alpha13.Я пробовал все виды комбинаций not
, or
и and
внутри фильтра:
workspace "MyWorkspace"
configurations { "Debug", "DebugSAN", "Release" }
filter "toolset:not(gcc or clang)"
removeconfigurations "*SAN"
filter { "configurations:*SAN", "toolset:gcc or clang" }
buildoptions { "-fno-omit-frame-pointer" }
buildoptions { "-fsanitize=undefined,address" }
linkoptions { "-fsanitize=undefined,address" }
Пробовал "toolset:not gcc and not clang"
, {"toolset:not gcc", "toolset:not clang"}
...
Я долженв итоге получим 3 конфигурации при генерации в Linux с GCC по умолчанию и только 2 при форсировании toolset "msc"
в premake5.lua.Но я продолжаю получать один и тот же make-файл в двух случаях.
$ make help
Usage: make [config=name] [target]
CONFIGURATIONS:
debug
debugsan <- Showing-up when it wants
release