как попросить cmake очистить конфигурацию выпуска для сборки Msvc - PullRequest
1 голос
/ 16 мая 2011

У меня есть дерево сборки для разных компиляторов (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

Так что я нашел ответ на свой вопрос.

1 Ответ

0 голосов
/ 16 мая 2011

Отказ от ответственности: я должен признать, что я мало что знаю о параметре --build для Cmake.Тем не менее, cmake также генерирует цели 'package' и 'install', возможно, вы можете указать их с опцией --target с помощью cmake --build.

cmake --build my_build_dir --target install 

В противном случае вам нужно будет указать те, которые используютпараметры командной строки devenv или msbuild.Без cmake это будет что-то вроде

devenv INSTALL.vcproj /Build Release
devenv INSTALL.vcproj /Clean Release

msbuild INSTALL.vcproj /t:Build /p:Configuration=Release
msbuild INSTALL.vcproj /t:Clean /p:Configuration=Release

Полагаю, что после msbuild / devenv вы можете передать все через cmake с помощью '-'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...