Я настраиваю некоторое решение 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 #?