-The code in question is the Geant4 
(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/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
--

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

Reply via email to