Привет. Есть SUBDIR шаблон проекта и есть файл с моими функциями и переменными, которые используются во всех подпроектах.
Проблема заключается в том, что ПО собирается под винду и линукс. Под виндой оно должно работать с LDAP Active Directory (на целевом оборудовании).
Разработка ведется под линами (за исключением сборки под винду и разработка модуля авторизации LDAP). Соответственно хочется включать/выключать сборку LDAP модуля и линковку его
простым решением, например объявлением соответствующей переменной WithLDAPAuth. Все работает за исключением включения/выключения подпроекта ldap_auth в переменную SUBDIRS корневого проекта.
include(target_path.inc)
TEMPLATE = subdirs
SUBDIRS += lib1 \
lib2 \
app
win32 {
defined(WithLDAPAuth, var) {
SUBDIRS += ldap_auth //не работает, всегда добавляет в SUBDIRS в независимости от присутствия/отсутствия переменной WithLDAPAuth
} else {
SUBDIRS -= ldap_auth
}
}
Есть файл с предварительными настройками и функциями target_path.inc
# Файл настроек сборки и установки SCADA
extension_path="extensions"
WithLDAPAuth = 1
defined(WithLDAPAuth, var) {
message(With LDAP)
DEFINES += MUST_LDAP_AUTH
} else {
message(Without LDAP)
DEFINES -= MUST_LDAP_AUTH
}
Если строку
закоментировать, то все ок.
Может я что то не понимаю в использовании своих переменных? (читал и офф. доки по qmake и кучу форумов).