У меня есть дерево сборки для разных компиляторов (msvc-2008, mingw-gcc), созданное с помощью CMake:
\---buildroot
\---win32
+---mingw-gcc-4.4.0
| +---Debug
| \---Release
\---msvc-2008
+---Debug_Dynamic
+---Debug_Static
+---Release_Dynamic
\---Release_Static
И я хочу собрать все конфигурации одним скриптом. Я написал простую оболочку python, которая выполняет итерацию по иерархии и вызывает cmake --build. Для сборок msvc мне нужно выбрать правильную конфигурацию для сборки, очистки и установки.
Я читал документацию и нахожу параметр --config
.
Итак, последняя команда cmake выглядит так:
cmake --build win32\mingw-gcc-4.4.0\Debug
cmake --build win32\mingw-gcc-4.4.0\Release
cmake --build win32\msvc-2008\Debug_Dynamic --config Debug
cmake --build win32\msvc-2008\Debug_Static --config Debug
cmake --build win32\msvc-2008\Release_Dynamic --config Release
cmake --build win32\msvc-2008\Release_Static --config Release
Вот команды cmake для очистки всех целей:
cmake --build win32\mingw-gcc-4.4.0\Debug --target clean
cmake --build win32\mingw-gcc-4.4.0\Release --target clean
cmake --build win32\msvc-2008\Debug_Dynamic --config Debug --target clean
cmake --build win32\msvc-2008\Debug_Static --config Debug --target clean
cmake --build win32\msvc-2008\Release_Dynamic --config Release --target clean
cmake --build win32\msvc-2008\Release_Static --config Release --target clean
Итак, я нашел ответ на свой вопрос.
cmake --build
действительно помогает. Можно выбрать конфигурацию для сборки, просто вызовитеcmake --build my_build_dir --config Release --target clean
, чтобы очистить конфигурацию Release, аналогичная команда для установки. - person Alexey   schedule 16.05.2011