Visual Studio с CMake и статической библиотекой / флаг Z7 - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь создать статическую библиотеку (в частности, Protobuf), используя Visual Studio 2017 и проект на основе CMake (и бэкэнд по умолчанию для ниндзя).

Я хочу передать переключатель компилятора /Z7при сборке (или, точнее, замените значение по умолчанию /Zi на /Z7), чтобы отладочная информация в конечном итоге была встроена в файл .lib вместо создания отдельных файлов .pdb.

Я знаюабсолютно ничего о CMake (но у меня есть рабочая сборка).Как мне это сделать?

Предпочтительно, если это возможно, используя только изменения в созданном VS файле CMakeSettings.json, не внося никаких изменений в исходные файлы CMakeLists.txt.

Если этоне возможно, тогда какой-то способ создать новый файл CMakeLists.txt, который наследует все от неизмененного исходного файла, но переопределяет этот параметр, также был бы хорош.

Мой текущий файл CMakeSettings.json определяет и Debug, иRelWithDebInfo конфигурации.

1 Ответ

0 голосов
/ 19 декабря 2018

Немного поэкспериментировав (и вдохновившись этим вопросом ), это похоже на второе (менее предпочтительное) решение добавления нового файла CMakeLists.txt:

cmake_minimum_required(VERSION 3.1.3)
project(protobuf C CXX)

string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")

add_subdirectory(../cmake cmake)

Я все еще заинтересован в более чистых решениях, если у кого-нибудь есть.

...