On Mon, May 7, 2012 at 11:41 AM, Ming <ymy...@wisc.edu> wrote: > ** > >> * -The code in question is the Geant4 (** >> http://geant4.web.cern.ch/geant4/support/download.shtml*<http://geant4.web.cern.ch/geant4/support/download.shtml> >> *) toolkit, which uses CMake to handle its cross-platform >> configurations. The end result of the toolkit is to compile a large set of >> libraries.* >> *-I’ve changed all of the source files from .cc to .cu, and changed all >> “add_library” terms to “cuda_add_library”* >> *-I’ve also updated all of the “include directories” to >> “cuda_include_directories”* >> *-The end result is that I am able to generate a build directory >> (without any errors) using cmake, for VS2010. * >> ** >> *However when I attempt to build the package in an analagous fashion, I >> get errors from visual studio informing me mid-build that it:* >> ** >> *Cannot load macro project “ for the following reason:* >> *C:\...\Projects\VSMacros80\Samples\Samples.vsmacros’ is an invalid or >> inaccessible macro project file* >> ** >> *Once I acknowledge this message, it then says:* >> ** >> *CMake has regenerated 3 .sln and/or .vcproj files.* >> *Click:* >> *--Yes to reload the whole solution...* >> *--No to reload the solution ...* >> *--Cancel to do nothing* >> ** >> *This message shows up even though CMake was done generating files and >> was closed prior to the build.* >> *The same thing happens on my work computer, and I am able to compile >> other programs just fine, so I do not believe it to be a corrupt install of >> visual studio. Any suggestions on why this would occur is appreciated!* >> ** >> *Thanks,* >> *Ming* >> ** >> *Uploaded screenshots of the error messages:* >> *https://mywebspace.wisc.edu/ymyang/web/macroerr1.png*<https://mywebspace.wisc.edu/ymyang/web/macroerr1.png> >> * * >> *https://mywebspace.wisc.edu/ymyang/web/macroerr2.png*<https://mywebspace.wisc.edu/ymyang/web/macroerr2.png> >> * * >> > > *I believe the macro error is a known problem with the CMake VS macro in > VS 2010 (MS broke it). The regeneration of the project files is also a > known behavior of FindCUDA. The dependencies are computed by nvcc during > build and saved in a file. When the dependency file is regenerated CMake > will want to reconfigure to add those new dependencies to the project > file. This is the expected behavior. > > My current recommendation for CUDA + VS 2010 is to specify > CMAKE_SUPPRESS_REGENERATION OFF in your project file's CMakeLists.txt: > option(CMAKE_SUPPRESS_REGENERATION "Suppress regeneration of build scripts > during build" ON) > > This will disable the VS CMake plugin, requiring you to manually configure > with CMake when you change the build scripts. I also recommend configuring > CMake after your first build to pick up the file level dependencies that > CUDA generates. > > James > * > Hey James, > Thanks you for the reply. I am a bit new to this (and definitely jumping > into the deep end with what I am attempting). Could you elaborate on what > you mean by “manually configure with CMake” after the initial build? Is it > safe to interpret that as re-running CMake-gui after a build, for the same > source and build directories?. Or is there something else implied? I’ve > had issues in the past trying to perform a configure command in CMake-gui > when the buidl directory already existed..? > > Thanks! > Ming >
By design, CMake should detect configuration changes and reconfigure before the build starts. The VS plugin was designed to provide a single dialog box that would allow for reloading of the entire solution with a single click rather than having to click "reload" for each project one at a time. This plugin doesn't work properly in VS 2010, because MS broke something. To run the configuration manually, you would need to configure your build from the CMake-GUI instead of relying on VS to run the configuration during the build. You would use the same build and source directory. This should work fine.
-- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake