У меня есть дерево сборки для разных компиляторов (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
.
Итак final команда 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 для clean все цели:
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
Так что я нашел ответ на свой вопрос.