Argiris Kirtzidis <akyrtzi at gmail.com> writes:> How does updating the CMake produced VC++ project files work ? > I mean: > > -I have CMake produce VC++ project files > -Compile the solution > -Do a svn update and pick up a couple of files > -Have CMake produce new project files > -Now, do I have to rebuild the entire solution again ?AFAIK, it should do the right thing automatically, regenerating the project files on the fly and recompiling only what is outdated. You don't even need to explicitly invoke cmake after a svn update. This is my understanding from reading the CMake ml. I tend to use nmake. -- Oscar
I think the reasons we would like to have CMake for clang are the same as for LLVM, manually maintaining the project files is a big pain and not done by that many developers. I don't have any experience with CMake but I did try it out and it seemed to work well, unfortunately I only have VS 2003 so I got blocked on C++ issues building with that compiler. However, the project file generation stuff worked fine -- thanks for your effort on it! - Daniel On Fri, Oct 24, 2008 at 6:34 AM, Óscar Fuentes <ofv at wanadoo.es> wrote:> Argiris Kirtzidis <akyrtzi at gmail.com> writes: > > > How does updating the CMake produced VC++ project files work ? > > I mean: > > > > -I have CMake produce VC++ project files > > -Compile the solution > > -Do a svn update and pick up a couple of files > > -Have CMake produce new project files > > -Now, do I have to rebuild the entire solution again ? > > AFAIK, it should do the right thing automatically, regenerating the > project files on the fly and recompiling only what is outdated. You > don't even need to explicitly invoke cmake after a svn update. > > This is my understanding from reading the CMake ml. I tend to use nmake. > > -- > Oscar > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081024/6a3eca5c/attachment.html>
"Daniel Dunbar" <daniel at zuster.org> writes:> I think the reasons we would like to have CMake for clang are the same as > for LLVM, manually maintaining the project files is a big pain and not done > by that many developers.So far, the only sound reason for extending CMake to the point of being a replacement for configure && make is to lessen maintenance work. This is achievable, but it will take time. Having some priorities, for achieving a point where the CMake build is mature enough to be an option for most users, and therefore being thoroughly tested, will speed up things. I'm not specially excited about replicating random features, warts and all.> I don't have any experience with CMake but I did try it out and it seemed to > work well, unfortunately I only have VS 2003 so I got blocked on C++ issues > building with that compiler. However, the project file generation stuff > worked fine -- thanks for your effort on it!You are welcomed. But the build should work (*) on Linux too: cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/some/path path/to/llvm/root make make install (*) Bug reports welcomed. -- Oscar
Óscar Fuentes wrote:> Argiris Kirtzidis <akyrtzi at gmail.com> writes: > > >> How does updating the CMake produced VC++ project files work ? >> I mean: >> >> -I have CMake produce VC++ project files >> -Compile the solution >> -Do a svn update and pick up a couple of files >> -Have CMake produce new project files >> -Now, do I have to rebuild the entire solution again ? >> > > AFAIK, it should do the right thing automatically, regenerating the > project files on the fly and recompiling only what is outdated. You > don't even need to explicitly invoke cmake after a svn update. > > This is my understanding from reading the CMake ml. I tend to use nmake. > >I gave it a try and unfortunately it doesn't seem practical to use CMake-produced VC++ projects. Every time you run CMake so that the VC++ projects include new files, the entire solution gets rebuilt. -Argiris
Argiris Kirtzidis <akyrtzi at gmail.com> writes:> I gave it a try and unfortunately it doesn't seem practical to use > CMake-produced VC++ projects. Every time you run CMake so that the VC++ > projects include new files, the entire solution gets rebuilt.I recall some discussion about the behavior you describe on the cmake ml, but can't find it right now. IIRC, once generated the project files, you shouldn't need to re-run cmake, ever. CMake inserts something in the project files for detecting that a re-generation is needed and automatically stops the build and invokes itself, then continue, perhaps with some intermediate prompt by the IDE about changed files, etc. If this doesn't work for you, please comment it on the cmake ml. Don't forget to mention the version you are using, etc. -- Oscar
Argiris Kirtzidis <akyrtzi at gmail.com> writes:> I gave it a try and unfortunately it doesn't seem practical to use > CMake-produced VC++ projects. Every time you run CMake so that the VC++ > projects include new files, the entire solution gets rebuilt.Forgot to mention that right now all executables depend on all libraries (for the MSVC++ case, for the others llvm-config is used to determine the dependencies). So if you modify one library, all executables will need relinking. This is not too hard to fix, but creates some maintenance work. Using the MSVC++ build on this state would be a major pain for a LLVM developer but, as my knowledge goes, there are not much of them (if any) using MSVC++. The VC++ cmake build system, as implemented today, is oriented towards LLVM users who do not update frequently (those using the official releases, for instance). -- Oscar