On 07/02/2015 09:53 AM, Stuermer, Michael SP/HZA-ZSEP wrote: > I got the first sort of working version running. Would be great > if some people could have a look at it if it's going into a > good direction.
Thanks again for working on this. Sorry for the delay in response. I was working on the basic Apple Swift support and thought it could be a useful example for CSharp work. > Patch 0001: > - adds the necessary Module/* files for enabling C# as a language Some of the CMakeCSharpInformation module content like: > +set(CMAKE_CSharp_FLAGS_INIT "/define:TRACE /langversion:3 /nowin32manifest") > +set(CMAKE_CSharp_FLAGS_DEBUG_INIT "/debug:full /optimize- /warn:3 > /errorreport:prompt /define:DEBUG") > +set(CMAKE_CSharp_FLAGS_RELEASE_INIT "/debug:none /optimize /warn:1 > /errorreport:queue") > +set(CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT "/debug:full /optimize-") > +set(CMAKE_CSharp_FLAGS_MINSIZEREL_INIT "/debug:none /optimize") belongs in a file such as Modules/Platform/Windows-MSVC-CSharp.cmake file. The CMakeCSharpInformation file should have only information specific to the C# language and not any particular toolchain and then load other modules that provide information specific to the platform and toolchain vendor (compiler id). See the recently added CMakeSwiftInformation module for an example. > Patch 0002: > - some minor changes to mostly visual studio related classes to enable > .csproj support > o .csproj GUID is added > o a method to check if the target is C# is added Looks good at a glance. > Patch 0003: > - the actual implementation of the .csproj generation > - all generation takes place inside VisualStudio10TargetGenerator class That looks like the right direction. How did you generate the flag table? The other flag tables we have for VS >= 10 generators are generated by Source/cmparseMSBuildXML.py. See commit VS14: Generate flag tables from MSBuild v140 tool files http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d96b3f68 for an example. Typically we add a new flag table generated by the script in one commit and then add follow-up commits to apply manual tweaks. That way we know exactly how to reproduce the table. Thanks, -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers