[CMake] CMake with Team Foundation Server?

Petr Kmoch petr.kmoch at gmail.com
Wed Aug 28 04:53:14 EDT 2013


Hi Fabian.

CMake has support for generating Scc* properties in projects; see target
properties VS_SCC_*
Since version 2.8.11, there's also support for generating arbitrary
GlobalSections in .sln files; see directory properties VS_GLOBAL_SECTION_*

You should be able to use these to generate the necessary bindings as part
of running CMake.

Petr


On Wed, Aug 28, 2013 at 10:33 AM, Fabian Saccilotto <f.saccilotto at gmx.ch>wrote:

> We are starting to use CMake with TFS, as we already have solutions with
> different versions of VS and want to simplify the configuration of
> dependencies and settings with CMake.
> The problem we actually have is that the bindings to TFS are stored in the
> solution and project files. As soon as you run CMake again this bindings
> are overwritten and you loose the connection to TFS. Once you connected
> your projects to TFS and have a mapping, you can easily reconnect your
> projects via File-> Source Code Management > Manage (Or something similar,
> my VS is in german) and then select the projects which you want to bind
> again.
>
> This solution works when you don't have to change your CMake Files a lot
> (i.e adding, removing files at the beginning of a project) but is not as
> nice as if you would work with a non CMake VS Solution... I tried to find
> some information on the format of the entries in the solution files, but
> whitout success. The only thing I have is the result of a diff (see below)
> where you could guess how you could create the bindings programmatically.
> From my point of view a problem is where the local mapping is stored as
> only relative paths are stored in the solution file. Another question is
> what those GUID's exactly mean resp. where you get this information.
>
> Regards Fabian Saccilotto
>
> (Solution File)
> GlobalSection(**TeamFoundationVersionControl) = preSolution
>                 SccNumberOfProjects = 3
>                 SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-**
> 32DDF27D184C}
>                 SccTeamFoundationServer = <URL to your TFS server>
>                 SccProjectUniqueName0 = 3DReconstruction\\**
> 3DReconstruction.vcxproj
>                 SccProjectName0 = 3DReconstruction
>                 SccAuxPath0 = <URL to your TFS server>
>                 SccLocalPath0 = 3DReconstruction
>                 SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-**32DDF27D184C}
>                 SccProjectUniqueName1 = 3DRecConsole\\3DRecConsole.**
> vcxproj
>                 SccProjectName1 = 3DRecConsole
>                 SccAuxPath1 = <URL to your TFS server>
>                 SccLocalPath1 = 3DRecConsole
>                 SccProvider1 = {4CA58AB2-18FA-4F8D-95D4-**32DDF27D184C}
>                 SccProjectUniqueName2 = VanishingPointDetection\\**
> VanishingPointDetection.**vcxproj
>                 SccProjectName2 = VanishingPointDetection
>                 SccAuxPath2 = <URL to your TFS server>
>                 SccLocalPath2 = VanishingPointDetection
>                 SccProvider2 = {4CA58AB2-18FA-4F8D-95D4-**32DDF27D184C}
> EndGlobalSection
>
> (Project File)
> <PropertyGroup Label="Globals">
>     <ProjectGUID>{180ABFA3-1346-**484E-8843-4E777FC7BFE9}</**ProjectGUID>
>     <Keyword>Win32Proj</Keyword>
>     <Platform>Win32</Platform>
>     <ProjectName>ImageTo3D</**ProjectName>
>     <SccProjectName>SAK</**SccProjectName>
>     <SccAuxPath>SAK</SccAuxPath>
>     <SccLocalPath>SAK</**SccLocalPath>
>     <SccProvider>SAK</SccProvider>
>   </PropertyGroup>
>
>
> Am 27.08.2013 21:22, schrieb Zamir Khan:
>
>  In the interest of brevity (and avoiding expressing some of my biases),
>> I'll
>> try to keep the problem description short.
>>
>> We currently develop on Windows, using multiple versions of VS (2008,
>> 2010,
>> 2012 in the near future). Currently our target platform is Windows only,
>> but
>> that could change. Most of our code is native C++, but there is also some
>> C#. We use Mercurial for source control. We use CMake to generate our VS
>> projects and, after initial struggles (and hacks), I finally have a system
>> that works well to generate even our C# projects. CMake makes managing
>> dependencies relatively painless.
>>
>> However, there is an external push to move to a system that uses Team
>> Foundation Server (which we currently do not use). Mercurial and CMake
>> play
>> well together in terms of out-of-source build. Mercurial can theoretically
>> be replaced by TFS source control (without commenting on whether this is a
>> good thing). However, it's unclear to me whether TFS would play nicely (if
>> at all) with CMake.
>>
>> Basically, I'm wondering if anyone has used TFS and CMake together, to
>> what
>> extent, and what their experience has been. If Google is any indication,
>> the
>> TFS/CMake combination is exceedingly rare. Of course, another other
>> insights, even without direct experience, are welcome too.
>>
>>
>>
>> --
>> View this message in context: http://cmake.3232098.n2.**
>> nabble.com/CMake-with-Team-**Foundation-Server-tp7585293.**html<http://cmake.3232098.n2.nabble.com/CMake-with-Team-Foundation-Server-tp7585293.html>
>> Sent from the CMake mailing list archive at Nabble.com.
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/**CMake_FAQ<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<http://cmake.org/cmake/help/support.html>
>> CMake Consulting: http://cmake.org/cmake/help/**consulting.html<http://cmake.org/cmake/help/consulting.html>
>> CMake Training Courses: http://cmake.org/cmake/help/**training.html<http://cmake.org/cmake/help/training.html>
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/**
>> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/**listinfo/cmake<http://www.cmake.org/mailman/listinfo/cmake>
>>
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/**CMake_FAQ<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<http://cmake.org/cmake/help/support.html>
> CMake Consulting: http://cmake.org/cmake/help/**consulting.html<http://cmake.org/cmake/help/consulting.html>
> CMake Training Courses: http://cmake.org/cmake/help/**training.html<http://cmake.org/cmake/help/training.html>
>
> Visit other Kitware open-source projects at http://www.kitware.com/**
> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/**listinfo/cmake<http://www.cmake.org/mailman/listinfo/cmake>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130828/b89152b3/attachment.htm>


More information about the CMake mailing list