[CMake] Moving large MSVS projects to CUDA

Ming ymyang at wisc.edu
Sat May 5 05:32:26 EDT 2012


From: James Bigler 
Sent: Saturday, May 05, 2012 1:51 AM
To: Ming 
Cc: cmake at cmake.org 
Subject: Re: [CMake] Moving large MSVS projects to CUDA

On Fri, May 4, 2012 at 12:39 PM, Ming <ymyang at wisc.edu> wrote:

  Hello CMake community,

  I have experience using CMake to generate sime cuda-enabled executables (where the cpp’s reside in one folder, etc.).
  I am attempting to move a large project that utilizes CMake, from just c++ to CUDA enabled c++.  

  It is a project that generates a large set of libraries (comprising a toolkit), using various cmake scripts.  I have modified the “add_libraries” call to be “cuda_add_libraries”, and changed all of the .cc files to .cu (but with no additional CUDA code).  An approach I thought would be similar to changing a simple program from add_executable to “cuda_add_executable” and renaming the extension to “.cu”
  My goal was first to have it compile properly in its original form post migration, but am met with some very strange errors in visual studio.  

  I am wondering if anyone else has undertaken such a migration before (libraries or binaries), and if so, what types of general steps need to be taken other than just telling CMake we’re adding “.cu” files?

  Thanks all in advance,
  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



What kind of strange errors?

Typically when adding a new CUDA enabled library, you simply start adding the .cu files with the host/device code mixed to a cuda_add_* target.

James

Thank you all for the reply,

  -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 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120505/86cddf07/attachment.htm>


More information about the CMake mailing list