[CMake] CMake with Team Foundation Server?

Fabian Saccilotto f.saccilotto at gmx.ch
Wed Aug 28 04:33:03 EDT 2013


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
> 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
>
> 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://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list