Несколько Cmake_Prefix_Paths

В проекте, который я разрабатываю, мы используем cmake для компиляции нашего сервиса. В настоящее время нам нужно получить данные для Qt из 3 разных местоположений, и мне любопытно, есть ли способ запустить одну команду cmake над тремя отдельными.

Что мы в настоящее время используем:

cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\Qt\5.5\msvc2013\lib\cmake ..
cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\protobuf\src ..
cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\protobuf\cmake\build\Release ..

Мы попытались передать один и тот же флаг 3 раза и разделили пути с помощью : и ;, но никто не работает должным образом.

Ответ 1

Чтобы предоставить несколько путей в переменной CMAKE_PREFIX_PATH, вам нужно разграничить каждую запись с помощью ; (точка с запятой). Таким образом, ваша команда будет выглядеть так:

cmake -DCMAKE_PREFIX_PATH="C:\Qt\5.5\msvc2013\lib\cmake;C:\protobuf\src;C:\protobuf\c‌​make\build\Release"

Чтобы проверить, все ли в порядке с предоставленными путями, вы можете использовать следующий код в файле cmake:

foreach(path ${CMAKE_PREFIX_PATH})
  message("Path: " ${path})
endforeach(path)

Он будет печатать каждый предоставленный путь.