Multiple Cmake_Prefix_Paths

2019-02-08 04:18发布

On a project I develop on, we're using cmake to compile our service. Currently, we need to get data for Qt from 3 different locations and I'm curious if there's a way to run one cmake command over three separate ones.

What we currently use:

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 ..

We've attempted to pass the same flag 3 times and separating the paths with : and ;, but none seem to work as expected.

标签: cmake
1条回答
Anthone
2楼-- · 2019-02-08 04:46

To provide multiple paths in the CMAKE_PREFIX_PATH variable you need to delimit each entry by ;(semicolon). So your command will look like:

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

To check if everything alright with the provided paths you can use the following code in the cmake file:

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

It will print every path provided.

查看更多
登录 后发表回答