<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title></title>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-15">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
  margin: 5px 5px 5px 5px;
  background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
 font-size: 9pt;
 font-family: 'Courier New';
 font-style: normal;
 font-weight: normal;
 color: #000000;
 text-decoration: none;
}
span.rvts1 /* Heading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #0000ff;
}
span.rvts2 /* Subheading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #000080;
}
span.rvts3 /* Keywords */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-style: italic;
 color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
span.rvts6
{
 font-weight: bold;
 color: #ffffff;
}
span.rvts7
{
 font-family: 'arial';
}
span.rvts8
{
}
span.rvts9
{
 font-family: 'arial';
 font-weight: bold;
}
a.rvts10, span.rvts10
{
 font-family: 'arial';
 color: #0000ff;
 text-decoration: underline;
}
span.rvts11
{
 font-size: 8pt;
 font-family: 'arial';
 font-style: italic;
 color: #c0c0c0;
}
a.rvts12, span.rvts12
{
 font-size: 8pt;
 font-family: 'arial';
 color: #0000ff;
 text-decoration: underline;
}
span.rvts13
{
 font-size: 8pt;
 font-family: 'arial';
 font-style: italic;
 color: #c0c0c0;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
 text-align: left;
 text-indent: 0px;
 padding: 0px 0px 0px 0px;
 margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
 text-align: center;
}
--></style>
</head>
<body>

<p>Hello Sylvain,</p>
<p><br></p>
<p> &nbsp; &nbsp; &nbsp; &nbsp;I have managed to do it with</p>
<p><br></p>
<p> &nbsp; &nbsp; &nbsp; &nbsp;CMAKE_USE_RELATIVE_PATHS and CMAKE_SUPPRESS_REGENERATION</p>
<p><br></p>
<p> &nbsp; &nbsp; &nbsp; &nbsp;cmake switches.. :)</p>
<p><br></p>
<p> &nbsp; &nbsp; &nbsp; &nbsp;Thanks anyways for the reply!</p>
<p><br></p>
<p>Friday, November 17, 2006, 10:41:44 AM, you wrote:</p>
<p><br></p>
<div><table border=0 cellpadding=1 cellspacing=2 style="border-color: #000000; border-style: solid; background-color: #ffffff;">
<tr valign=top>
<td width=9 style="background-color: #0000ff;">
<p><span class=rvts6>&gt;</span></p>
</td>
<td width=781>
<p><span class=rvts7>I'm far from a CMake expert, so maybe this answer is not optimal.</span></p>
<p><span class=rvts8>&nbsp;</span></p>
<p><span class=rvts7>To support relative path for dependencies I have patched the method:&nbsp;</span></p>
<p><span class=rvts8>&nbsp;</span></p>
<p><span class=rvts8>cmGlobalVisualStudio71Generator::WriteProject</span></p>
<p><span class=rvts8>&nbsp;</span></p>
<p><span class=rvts7>Here is the modified version (sorry I don't know how to do a patch file, fortunately it is a small method):</span></p>
<p><span class=rvts8>&nbsp;</span></p>
<p><span class=rvts8>void</span></p>
<p><span class=rvts8>cmGlobalVisualStudio71Generator::WriteProject(std::ostream&amp; fout,</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; const char* dspname,&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; const char* dir,&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cmTarget&amp; t)</span></p>
<p><span class=rvts8>{</span></p>
<p><span class=rvts8>&nbsp; &nbsp; std::string d;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; if(cmSystemTools::FileIsFullPath(dir))&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; {</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; d = cmSystemTools::RelativePath(</span></p>
<p><span class=rvts8>this-&gt;GetLocalGenerator(0)-&gt;GetMakefile()-&gt;GetStartOutputDirectory(), dir);&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; if(d.empty())&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; {</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d = ".";</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; }</span></p>
<p><span class=rvts8>&nbsp; &nbsp; }</span></p>
<p><span class=rvts8>&nbsp; &nbsp; else&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; {</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; d = dir;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; }</span></p>
<p><span class=rvts8>&nbsp; &nbsp; cmSystemTools::ReplaceString(d, "/", "\\");</span></p>
<p><span class=rvts8>&nbsp; &nbsp; fout &lt;&lt; "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \""&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt; dspname &lt;&lt; "\", \""</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt; d &lt;&lt; "\\" &lt;&lt; dspname &lt;&lt; ".vcproj\", \"{"</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt;&nbsp;</span></p>
<p><span class=rvts8>this-&gt;GetGUID(dspname) &lt;&lt; "}\"\n";&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; fout &lt;&lt; "\tProjectSection(ProjectDependencies) = postProject\n";</span></p>
<p><span class=rvts8>&nbsp; &nbsp; this-&gt;WriteProjectDepends(fout, dspname, dir, t);&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; fout &lt;&lt; "\tEndProjectSection\n";</span></p>
<p><span class=rvts8>&nbsp; &nbsp; fout &lt;&lt;"EndProject\n";</span></p>
<p><span class=rvts8>}</span></p>
<p><span class=rvts8>&nbsp;</span></p>
<p><span class=rvts7>For the files I think it is not a problem. First, you should separate your vcproj and your source files. With the patch above you can move easily the vcproj folder tree and it will always work.</span></p>
<p><span class=rvts7>If you still want to change the location of your source files, you just have to check out your vcproj files, launch CMake, and check in the projects with a meaningfull comment like: "changed location of sources files from ... to ..."</span></p>
<p><span class=rvts8>&nbsp;</span></p>
<p><span class=rvts7>Sylvain</span></p>
<p><span class=rvts7>----- Original Message -----&nbsp;</span></p>
<p><span class=rvts9>From:</span><span class=rvts7>&nbsp;</span><a class=rvts10 href="mailto:speedy@3d-io.com">speedy</a><span class=rvts7>&nbsp;</span></p>
<p><span class=rvts9>To:</span><span class=rvts7>&nbsp;</span><a class=rvts10 href="mailto:cmake@cmake.org">cmake@cmake.org</a><span class=rvts7>&nbsp;</span></p>
<p><span class=rvts9>Sent:</span><span class=rvts7>&nbsp;Thursday, November 16, 2006 8:20 PM</span></p>
<p><span class=rvts9>Subject:</span><span class=rvts7>&nbsp;[CMake] relative paths for visual studio generators?</span></p>
<p><br></p>
<p><span class=rvts8>Hello Cmake crew,</span></p>
<p><br></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp;is there a way for cmake to generate relative paths to dependencies and files</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp;like the VisualStudio IDE does by default?</span></p>
<p><br></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp;Those full paths make .vcproj files very hard to version control and checkout&nbsp;</span></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp;into different folders requires deleting and creating them anew by cmake .</span></p>
<p><br></p>
<p><span class=rvts8>&nbsp; &nbsp; &nbsp; &nbsp;Thanks!</span></p>
<p><br></p>
<p><span class=rvts11>--&nbsp;</span></p>
<p><span class=rvts11>Best regards,</span></p>
<p><span class=rvts11>&nbsp;speedy &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><a class=rvts12 href="mailto:speedy@3d-io.com">mailto:speedy@3d-io.com</a></p>
<hr noshade size=2 >
<p><span class=rvts8>_______________________________________________</span></p>
<p><span class=rvts8>CMake mailing list</span></p>
<p><span class=rvts8>CMake@cmake.org</span></p>
<p><span class=rvts8>http://www.cmake.org/mailman/listinfo/cmake</span></p>
</td>
</tr>
</table>
</div>
<p><br></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><span class=rvts13>--&nbsp;</span></p>
<p><span class=rvts13>Best regards,</span></p>
<p><span class=rvts13>&nbsp;speedy &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><a class=rvts12 href="mailto:speedy@3d-io.com">mailto:speedy@3d-io.com</a></p>

</body></html>