cmake を使用して C++/CLI プロジェクトをセットアップしようとしています。Visual Studio 2010 でこれを行うことに成功しましたが、現在、Visual Studio 2008 を必要とするレガシー ソリューションを使用しています。Visual Studio 2010 では、次のように cmake をセットアップするだけで十分です。
set_target_properties(${PROJECT_NAME} PROPERTIES VS_DOTNET_REFERENCES "${CMAKE_CURRENT_SOURCE_DIR}/../OrionMaster/3rdParty/GMap.NET.Core.dll;System;System.Core;System.Data;System.Drawing;System.Xml;WindowsBase")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/clr /EHa")
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d")
if(CMAKE_CXX_FLAGS_DEBUG MATCHES "/RTC1")
string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
endif()
if(CMAKE_CXX_FLAGS MATCHES "/EHsc")
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
その後、Visual Studio 2010 でプロジェクトを調べると、すべての参照が表示され、「共通言語ランタイム サポート」がオンになっています。Visual Studio 2008 で試してみると、参照が表示されず、プロジェクトが「共通言語ランタイム サポートなし」に設定されています。コンパイラ オプションを見ると、/clr がコンパイラに渡されていることがわかります。 . ただし、おそらく参照が不足しているため、多くのコンパイラエラーが発生します。これを正しく設定する方法を知っている人はいますか?