Для RegEx:
Это работает для меня:
OSDISTRO = $$system(cat /proc/version)
contains(OSDISTRO, .*Ubuntu.*){
message("Found Ubuntu")
}
Примечание: Совпадение чувствительно к регистру.
Например, .*[uU]buntu.*
можно использовать для сопоставления ubuntu
и Ubuntu
.
Объяснение , почему ваше решение не работает:
Функция QMake
contains
работает с списками значений.
Итак, выполнение вашего решения будет таким:
1) Первая инструкция OSDISTRO = $$(cat /proc/version)
:
Предполагая, что результат будет вашим.Результат первой инструкции выглядит следующим образом: OSDISTRO = "Linux" "version" "4.18.0-20-generic"...
.
2) Вторая инструкция contains(OSDISTRO, "Ubuntu") : message(Found ubuntu)
:
QMake
будет искать, если переменная OSDISTRO
содержитзначение Ubuntu
и отобразить сообщение Found ubuntu
в случае успеха.
Здесь, в вашем случае, QMake
никогда не найдет Ubuntu
, потому что значение, которое содержит его, выглядит следующим образом (Ubuntu 7.3.0-16ubuntu3)
и QMake
ищите только значение Ubuntu
.
Надеюсь, оно вам поможет.