@@ -9,7 +9,6 @@ SET(EXAMPLE_CUDA_LIBRARY_NAME ExamplePluginCUDA)
99
1010SET (SHARED_TARGET ${EXAMPLE_CUDA_LIBRARY_NAME} )
1111
12-
1312# These are all the places to search for header files which are
1413# to be part of the API.
1514SET (API_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /include" "${CMAKE_CURRENT_SOURCE_DIR} /include/internal" )
@@ -25,38 +24,33 @@ ENDFOREACH(dir)
2524SET (SOURCE_FILES ) # empty
2625SET (SOURCE_INCLUDE_FILES)
2726
28- FILE (GLOB_RECURSE src_files ${CMAKE_CURRENT_SOURCE_DIR} /src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR} /${subdir} /src/*.c)
29- FILE (GLOB incl_files ${CMAKE_CURRENT_SOURCE_DIR} /src/*.h)
30- SET (SOURCE_FILES ${SOURCE_FILES} ${src_files} ) #append
31- SET (SOURCE_INCLUDE_FILES ${SOURCE_INCLUDE_FILES} ${incl_files} )
32- INCLUDE_DIRECTORIES (BEFORE ${CMAKE_CURRENT_SOURCE_DIR} /include )
27+ SET (OPENMM_SOURCE_SUBDIRS . ../common)
28+ FOREACH (subdir ${OPENMM_SOURCE_SUBDIRS} )
29+ FILE (GLOB_RECURSE src_files ${CMAKE_CURRENT_SOURCE_DIR} /${subdir} /src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR} /${subdir} /${subdir} /src/*.c)
30+ FILE (GLOB incl_files ${CMAKE_CURRENT_SOURCE_DIR} /${subdir} /src/*.h)
31+ SET (SOURCE_FILES ${SOURCE_FILES} ${src_files} ) #append
32+ SET (SOURCE_INCLUDE_FILES ${SOURCE_INCLUDE_FILES} ${incl_files} )
33+ ENDFOREACH (subdir)
34+
35+ SET (COMMON_KERNELS_CPP ${CMAKE_CURRENT_BINARY_DIR} /../common/src/CommonExampleKernelSources.cpp)
36+ SET (SOURCE_FILES ${SOURCE_FILES} ${COMMON_KERNELS_CPP} )
3337
3438INCLUDE_DIRECTORIES (BEFORE ${CMAKE_CURRENT_SOURCE_DIR} /src)
39+ INCLUDE_DIRECTORIES (BEFORE ${CMAKE_CURRENT_SOURCE_DIR} /../common/src)
3540INCLUDE_DIRECTORIES (BEFORE ${CMAKE_SOURCE_DIR} /platforms/cuda/include )
3641INCLUDE_DIRECTORIES (BEFORE ${CMAKE_SOURCE_DIR} /platforms/cuda/src)
3742INCLUDE_DIRECTORIES (BEFORE ${CMAKE_BINARY_DIR} /platforms/cuda/src)
38-
39- # Set variables needed for encoding kernel sources into a C++ class
40-
41- SET (CUDA_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /src)
42- SET (CUDA_SOURCE_CLASS CudaExampleKernelSources)
43- SET (CUDA_KERNELS_CPP ${CMAKE_CURRENT_BINARY_DIR} /src/${CUDA_SOURCE_CLASS} .cpp)
44- SET (CUDA_KERNELS_H ${CMAKE_CURRENT_BINARY_DIR} /src/${CUDA_SOURCE_CLASS} .h)
45- SET (SOURCE_FILES ${SOURCE_FILES} ${CUDA_KERNELS_CPP} ${CUDA_KERNELS_H} )
46- INCLUDE_DIRECTORIES (BEFORE ${CMAKE_CURRENT_BINARY_DIR} /src)
43+ INCLUDE_DIRECTORIES (BEFORE ${CMAKE_SOURCE_DIR} /platforms/common/include )
44+ INCLUDE_DIRECTORIES (BEFORE ${CMAKE_BINARY_DIR} /platforms/common/src)
45+ INCLUDE_DIRECTORIES (BEFORE ${CMAKE_CURRENT_BINARY_DIR} /../common/src)
4746
4847# Create the library
4948
5049INCLUDE_DIRECTORIES (${CUDA_TOOLKIT_INCLUDE} )
5150
52- FILE (GLOB CUDA_KERNELS ${CUDA_SOURCE_DIR} /kernels/*.cu)
53- ADD_CUSTOM_COMMAND (OUTPUT ${CUDA_KERNELS_CPP} ${CUDA_KERNELS_H}
54- COMMAND ${CMAKE_COMMAND}
55- ARGS -D CUDA_SOURCE_DIR=${CUDA_SOURCE_DIR} -D CUDA_KERNELS_CPP=${CUDA_KERNELS_CPP} -D CUDA_KERNELS_H=${CUDA_KERNELS_H} -D CUDA_SOURCE_CLASS=${CUDA_SOURCE_CLASS} -P ${CMAKE_SOURCE_DIR} /platforms/cuda/EncodeCUDAFiles.cmake
56- DEPENDS ${CUDA_KERNELS}
57- )
58- SET_SOURCE_FILES_PROPERTIES (${CUDA_KERNELS_CPP} ${CUDA_KERNELS_H} PROPERTIES GENERATED TRUE )
51+ SET_SOURCE_FILES_PROPERTIES (${COMMON_KERNELS_CPP} PROPERTIES GENERATED TRUE )
5952ADD_LIBRARY (${SHARED_TARGET} SHARED ${SOURCE_FILES} ${SOURCE_INCLUDE_FILES} ${API_INCLUDE_FILES} )
53+ ADD_DEPENDENCIES (${SHARED_TARGET} CommonKernels)
6054
6155TARGET_LINK_LIBRARIES (${SHARED_TARGET} ${CUDA_LIBRARIES} )
6256TARGET_LINK_LIBRARIES (${SHARED_TARGET} OpenMM)
0 commit comments