Проверка сложных условий в Makefile

Попробуйте:

SELECT * FROM Employees
WHERE DATEADD(yyyy, DATEPART(yyyy, @Today)-DATEPART(yyyy, Birthday), Birthday) > @Today 
AND DATEADD(yyyy, DATEPART(yyyy, @Today)-DATEPART(yyyy, Birthday), Birthday) < DATEADD(dd, @NumDays, @Today)
24
задан dma_k 7 April 2011 в 17:07
поделиться

1 ответ

Если ваш make является GNU-make и все определенные переменные содержат непробельный символ,

ifdef VAR1 && VAR2 && VAR3

можно записать как

ifneq ($(and $(VAR1),$(VAR2),$(VAR3)),)

В соответствующей заметке , вероятно, для функций и требуется версия 3.81 или более поздняя.

В случае, если некоторые определенные переменные могут быть пустыми строками, если мы подготовим следующие функции:

ifndef_any_of = $(filter undefined,$(foreach v,$(1),$(origin $(v))))
ifdef_any_of = $(filter-out undefined,$(foreach v,$(1),$(origin $(v))))

, то следующие условия:

ifdef VAR1 || VAR2
ifdef VAR1 && VAR2

могут быть записаны соответственно с использованием ] вызов функции:

ifneq ($(call ifdef_any_of,VAR1 VAR2),)
ifeq ($(call ifndef_any_of,VAR1 VAR2),)
32
ответ дан 28 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: