<!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> I have managed to do it with</p>
<p><br></p>
<p> CMAKE_USE_RELATIVE_PATHS and CMAKE_SUPPRESS_REGENERATION</p>
<p><br></p>
<p> cmake switches.. :)</p>
<p><br></p>
<p> 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>></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> </span></p>
<p><span class=rvts7>To support relative path for dependencies I have patched the method: </span></p>
<p><span class=rvts8> </span></p>
<p><span class=rvts8>cmGlobalVisualStudio71Generator::WriteProject</span></p>
<p><span class=rvts8> </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> </span></p>
<p><span class=rvts8>void</span></p>
<p><span class=rvts8>cmGlobalVisualStudio71Generator::WriteProject(std::ostream& fout,</span></p>
<p><span class=rvts8> const char* dspname, </span></p>
<p><span class=rvts8> const char* dir, </span></p>
<p><span class=rvts8> cmTarget& t)</span></p>
<p><span class=rvts8>{</span></p>
<p><span class=rvts8> std::string d;</span></p>
<p><span class=rvts8> if(cmSystemTools::FileIsFullPath(dir)) </span></p>
<p><span class=rvts8> {</span></p>
<p><span class=rvts8> d = cmSystemTools::RelativePath(</span></p>
<p><span class=rvts8>this->GetLocalGenerator(0)->GetMakefile()->GetStartOutputDirectory(), dir); </span></p>
<p><span class=rvts8> if(d.empty()) </span></p>
<p><span class=rvts8> {</span></p>
<p><span class=rvts8> d = ".";</span></p>
<p><span class=rvts8> }</span></p>
<p><span class=rvts8> }</span></p>
<p><span class=rvts8> else </span></p>
<p><span class=rvts8> {</span></p>
<p><span class=rvts8> d = dir;</span></p>
<p><span class=rvts8> }</span></p>
<p><span class=rvts8> cmSystemTools::ReplaceString(d, "/", "\\");</span></p>
<p><span class=rvts8> fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" </span></p>
<p><span class=rvts8> << dspname << "\", \""</span></p>
<p><span class=rvts8> << d << "\\" << dspname << ".vcproj\", \"{"</span></p>
<p><span class=rvts8> << </span></p>
<p><span class=rvts8>this->GetGUID(dspname) << "}\"\n"; </span></p>
<p><span class=rvts8> fout << "\tProjectSection(ProjectDependencies) = postProject\n";</span></p>
<p><span class=rvts8> this->WriteProjectDepends(fout, dspname, dir, t); </span></p>
<p><span class=rvts8> fout << "\tEndProjectSection\n";</span></p>
<p><span class=rvts8> fout <<"EndProject\n";</span></p>
<p><span class=rvts8>}</span></p>
<p><span class=rvts8> </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> </span></p>
<p><span class=rvts7>Sylvain</span></p>
<p><span class=rvts7>----- Original Message ----- </span></p>
<p><span class=rvts9>From:</span><span class=rvts7> </span><a class=rvts10 href="mailto:speedy@3d-io.com">speedy</a><span class=rvts7> </span></p>
<p><span class=rvts9>To:</span><span class=rvts7> </span><a class=rvts10 href="mailto:cmake@cmake.org">cmake@cmake.org</a><span class=rvts7> </span></p>
<p><span class=rvts9>Sent:</span><span class=rvts7> Thursday, November 16, 2006 8:20 PM</span></p>
<p><span class=rvts9>Subject:</span><span class=rvts7> [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> is there a way for cmake to generate relative paths to dependencies and files</span></p>
<p><span class=rvts8> like the VisualStudio IDE does by default?</span></p>
<p><br></p>
<p><span class=rvts8> Those full paths make .vcproj files very hard to version control and checkout </span></p>
<p><span class=rvts8> into different folders requires deleting and creating them anew by cmake .</span></p>
<p><br></p>
<p><span class=rvts8> Thanks!</span></p>
<p><br></p>
<p><span class=rvts11>-- </span></p>
<p><span class=rvts11>Best regards,</span></p>
<p><span class=rvts11> speedy </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>-- </span></p>
<p><span class=rvts13>Best regards,</span></p>
<p><span class=rvts13> speedy </span><a class=rvts12 href="mailto:speedy@3d-io.com">mailto:speedy@3d-io.com</a></p>
</body></html>