Есть ли способ пропустить переключение / AI, когда мы добавляем зависимость библиотеки C # к цели C ++? - PullRequest
3 голосов
/ 27 сентября 2019

Я настраиваю некоторое решение Visual Studio, где у меня есть несколько проектов на C # и C ++.Интересно, смогу ли я как-нибудь упростить код CMake, который управляет зависимостью между целью C ++ и библиотекой C #.

Он должен работать в Visual Studio 2015 с CMake 3.15.На этой странице я прочитал, что функция target_link_libraries должна работать одинаково для целей C ++ и C #.

Старое решение:

target_link_libraries(C++Target LINKING_TYPE C#Library)
target_compile_options(C++Target LINKING_TYPE "/AI${PATH_TO_DIR_WITH_C#_DLL}")

Желаемое решение:

target_link_libraries(C++Target LINKING_TYPE C#Library)

Сводка результатов: в старом решении все работает должным образом, но чтобы сделать это таким образом, мне нужно иметь некоторую конструкцию «если» в моем CMake, чтобы обнаружить, что добавленная библиотека - это библиотека C #.

Когда я делаю это таким способом, я получаю ошибку компиляции.

foo.cpp(10): fatal error C1107: could not find assembly 'C#Library.dll': please specify the assembly search path using /AI or by setting the LIBPATH environment variable

Так что мне интересно, есть ли какой-нибудь способ упростить добавление этой зависимости?Может быть, я могу установить какое-либо свойство библиотеки C #?

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