Я пытаюсь создать макрос Swift, который условно добавляет атрибут @available(*, deprecated) ко всем свойствам структуры при применении макроса. Я хочу контролировать это поведение глобально, используя собственный флаг времени компиляции, чтобы я мог переключаться между отображением и скрытием аннотации @available в моем проекте во время сборки.
Я хотел бы передать флаг времени компиляции глобально внутри проекта и он условно повлияет на поведение макроса Swift.
Пример:
Я хочу использовать макрос следующим образом:
@MyMacro()
struct X {
var a: String
var b: Int
}
И в зависимости от того, установлен ли глобальный флаг времени компиляции, результат должен выглядеть так:
struct X {
@available(*, deprecated) var a: String
@available(*, deprecated) var b: Int
}
С включенным флагом
struct X {
@available(*, deprecated) var a: String
@available(*, deprecated) var b: Int
}
С отключенным флагом:
struct X {
var a: String
var b: Int
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... deprecated