Настройка имени платформы Visual Studio Solution с помощью CMAKE - PullRequest
0 голосов
/ 13 июня 2019

Можно ли настроить имя платформы решений при создании решений Visual Studio с использованием CMake?

(Примечание: все нижеперечисленное было протестировано с CMake 3.12.0 и CMake 3.15.0-rc1)

На основе тестов с некоторыми проектами с открытым исходным кодом (CEF и т. Д.), А также упрощенного демонстрационного проекта (https://github.com/cognitivewaves/CMake-VisualStudio-Example)) создается впечатление, что CMake создает файлы решений с использованием следующего шаблона (для 32-разрядных):

...
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Win32 = Debug|Win32
        Release|Win32 = Release|Win32
        ...
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Debug|Win32.ActiveCfg = Debug|Win32
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Debug|Win32.Build.0 = Debug|Win32
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Release|Win32.ActiveCfg = Release|Win32
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Release|Win32.Build.0 = Release|Win32
        ...
    EngGlobalSection
    ...
EndGlobal
...

Генерируется с помощью:

cmake .. -G "Visual Studio 14" -Tv140

Однако я хотел бы создать решения с использованием «x86» вместо «Win32» для имени платформы решений, чтобы соответствовать форматам по умолчанию, созданным VS 2015 (обновление 3) и VS 2019, например.

Вот так:

...
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|x86 = Debug|x86
        Release|x86 = Release|x86
        ...
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Debug|x86.ActiveCfg = Debug|Win32
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Debug|x86.Build.0 = Debug|Win32
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Release|x86.ActiveCfg = Release|Win32
        {01234567-89AB-CDEF-0123-456789ABCDEF0}.Release|x86.Build.0 = Release|Win32
        ...
    EngGlobalSection
    ...
EndGlobal
...

Указание x86 в командной строке

cmake .. -G "Visual Studio 14 x86" -Tv140

кажется неподдерживаемым (Ошибка: не удалось создать генератор имен ...).

Аналогично использованию переменной host

cmake .. -G "Visual Studio 14" -Tv140,host=x86

(ошибка с CMake 3.12.0: содержит недопустимое поле 'host = x86'; нет ошибки с CMake 3.15.0-RC1, но, похоже, тоже не оказывает влияния)

или через

cmake .. -G "Visual Studio 14" -Tv140 -DCMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE=x86

(без ошибок, но, похоже, тоже не имеет никакого эффекта)

Есть ли еще один аргумент, который я пропустил / пропустил в документации?

Спасибо, что нашли время, чтобы прочитать это и с наилучшими пожеланиями,

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