Hi Doug,
I just finished merging the Linux code and extending the windows code.
It's currently a little hacky but I'll explain what I've done and how someone else can add it into their own project.
All of my projects are CMake based, so I made a top level CMakeLists.txt file which sets up rcc and integrates it into an external project, it can be found in the root of my fork.
To include it into an external project, the scripts requires some help for linking, and includes.
The following variables need to be set, in the parent cmake file that includes the rcc cmake file.
RCC_INCLUDE_DEPENDENCIES - Include directories used during compile
RCC_LIBRARY_DIRS - Directories to be used during linking
IObject_INCLUDE - Include directory where the user defined IObject.h file can be found
The rcc cmake file now searches for cuda and automatically adds a NVCC_PATH definition.
Typically cuda code is setup in a similar structure to C++ code except with the extension ".cuh" and ".cu" instead of ".h" and ".cpp". So I made some modifications to the source dependency code to replace ".cuh" extensions with ".cu" instead of ".cpp" and everything kinda fell into place.
All that is needed in a cuda ".cuh" file is the following:
#include "RuntimeInclude.h"
#include "RuntimeSourceDependency.h"
RUNTIME_COMPILER_SOURCEDEPENDENCY
RUNTIME_MODIFIABLE_INCLUDE
Now any ".cpp" files that include the ".cuh" file will recompile with the updated ".cu" code. So to make a runtime cuda change, just edit the .cu file, then make a trivial edit to the .cpp file interfacing it with the rest of the system.
On my todo list next is to figure out why RCC wont trigger an appropriate recompile to an edit of the ".cu" code, it notices the file change but something is going on with the dependency searching such that it doesn't realize other files are dependent on that ".cu" file.
RCC is used in my EagleEye project to provide recompilation of computer vision processing nodes, which can be found
here , example RCC integration can be found in
this subfolder.
An example RCC cuda module can be found
here