aboutsummaryrefslogtreecommitdiff
path: root/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake
blob: ab76997f88abefec8170291322f004b8189a393e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#
# Build PxCudaContextManager common
#


# CUDA!
SET(CUDA_NVCC_FLAGS "-lineinfo -use_fast_math -ftz=true -prec-div=false -prec-sqrt=false  -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_50,code=compute_50 -D_CONSOLE -D_WIN32_WINNT=0x0501")

CUDA_INCLUDE_DIRECTORIES(
	${PXSHARED_SOURCE_DIR}/../include
	${PXSHARED_SOURCE_DIR}/foundation/include
	${PXSHARED_SOURCE_DIR}/cudamanager/include
)

SET(CUDA_PROPAGATE_HOST_FLAGS OFF)

# Compile the CuKernelSolver - it has different options than the other CUDA files
SET(CUDA_NVCC_FLAGS_DEBUG   "-D_DEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_DEBUG}")
SET(CUDA_NVCC_FLAGS_CHECKED "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_CHECKED}")
SET(CUDA_NVCC_FLAGS_PROFILE "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_PROFILE}")
SET(CUDA_NVCC_FLAGS_RELEASE "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_RELEASE}")

SET(CUDACONTEXTMANAGER_HEADERS	
	${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxCudaContextManager.h
	${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxCudaMemoryManager.h
	${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxGpuCopyDesc.h
	${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxGpuCopyDescQueue.h
)
SOURCE_GROUP(include FILES ${CUDACONTEXTMANAGER_HEADERS})

SET(CUDACONTEXTMANAGER_KERNELS
	${LL_SOURCE_DIR}/src/CUDA/UtilKernels.cu
)
SOURCE_GROUP("src kernels" FILES ${CUDACONTEXTMANAGER_KERNELS})

SET(CUDACONTEXTMANAGER_SOURCE
	${LL_SOURCE_DIR}/src/CudaContextManager.cpp
	${LL_SOURCE_DIR}/src/CudaKernelWrangler.cpp
	${LL_SOURCE_DIR}/src/CudaMemoryManager.cpp
	${LL_SOURCE_DIR}/src/HeapManagerRef.cpp
	${LL_SOURCE_DIR}/src/GpuDispatcher.cpp
	${LL_SOURCE_DIR}/src/BlockingWait.cpp
	${LL_SOURCE_DIR}/src/PhysXDeviceSettings.cpp
)
SOURCE_GROUP(src\\src FILES ${CUDACONTEXTMANAGER_SOURCE})

SET(CUDACONTEXTMANAGER_SOURCE_HEADERS
	${LL_SOURCE_DIR}/include/CudaContextManager.h
	${LL_SOURCE_DIR}/include/CudaKernelWrangler.h
	${LL_SOURCE_DIR}/include/GpuDispatcher.h
	${LL_SOURCE_DIR}/include/PhysXDeviceSettings.h
)
SOURCE_GROUP(src\\src FILES ${CUDACONTEXTMANAGER_SOURCE_HEADERS})

CUDA_ADD_LIBRARY(PxCudaContextManager STATIC 
	${CUDACONTEXTMANAGER_HEADERS}
	${CUDACONTEXTMANAGER_SOURCE}
	${CUDACONTEXTMANAGER_SOURCE_HEADERS}
	
	${CUDACONTEXTMANAGER_KERNELS}	
)

# Target specific compile options


TARGET_INCLUDE_DIRECTORIES(PxCudaContextManager 
	PRIVATE ${PXSHARED_SOURCE_DIR}/../include
	PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include
	PRIVATE ${PXSHARED_SOURCE_DIR}/task/include
	PRIVATE ${PXSHARED_SOURCE_DIR}/cudamanager/include
	PRIVATE ${LL_SOURCE_DIR}/include
	PRIVATE ${CUDA_INCLUDE_DIRS}

)