aboutsummaryrefslogtreecommitdiff
path: root/sdk/compiler/cmake/NvBlastTk.cmake
blob: 2eb6a3247960d43383e2a27055d6d282c127ad35 (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#
# Build NvBlastTk common
#

SET(TOOLKIT_DIR ${PROJECT_SOURCE_DIR}/toolkit)
SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)

FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)

# Include here after the directories are defined so that the platform specific file can use the variables.
include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastTk.cmake)

SET(COMMON_FILES
	${BLASTTK_PLATFORM_COMMON_FILES}
	
	${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
	${COMMON_SOURCE_DIR}/NvBlastAssert.h
	${COMMON_SOURCE_DIR}/NvBlastAtomic.cpp
	${COMMON_SOURCE_DIR}/NvBlastAtomic.h
	${COMMON_SOURCE_DIR}/NvBlastDLink.h
	${COMMON_SOURCE_DIR}/NvBlastFixedArray.h
	${COMMON_SOURCE_DIR}/NvBlastFixedBitmap.h
	${COMMON_SOURCE_DIR}/NvBlastFixedBoolArray.h
	${COMMON_SOURCE_DIR}/NvBlastFixedPriorityQueue.h
	${COMMON_SOURCE_DIR}/NvBlastGeometry.h
#	${COMMON_SOURCE_DIR}/NvBlastIndexFns.cpp
	${COMMON_SOURCE_DIR}/NvBlastIndexFns.h
	${COMMON_SOURCE_DIR}/NvBlastIteratorBase.h
	${COMMON_SOURCE_DIR}/NvBlastMath.h
	${COMMON_SOURCE_DIR}/NvBlastMemory.h
	${COMMON_SOURCE_DIR}/NvBlastPreprocessorInternal.h
	${COMMON_SOURCE_DIR}/NvBlastTime.cpp
	${COMMON_SOURCE_DIR}/NvBlastTime.h
	${COMMON_SOURCE_DIR}/NvBlastTimers.cpp
	${COMMON_SOURCE_DIR}/NvBlastArray.h
	${COMMON_SOURCE_DIR}/NvBlastHashMap.h
	${COMMON_SOURCE_DIR}/NvBlastHashSet.h
)

SET(PUBLIC_FILES
	${TOOLKIT_DIR}/include/NvBlastTk.h
	${TOOLKIT_DIR}/include/NvBlastTkActor.h
	${TOOLKIT_DIR}/include/NvBlastTkAsset.h
	${TOOLKIT_DIR}/include/NvBlastTkEvent.h
	${TOOLKIT_DIR}/include/NvBlastTkFamily.h
	${TOOLKIT_DIR}/include/NvBlastTkFramework.h
	${TOOLKIT_DIR}/include/NvBlastTkGroup.h
	${TOOLKIT_DIR}/include/NvBlastTkIdentifiable.h
	${TOOLKIT_DIR}/include/NvBlastTkJoint.h
	${TOOLKIT_DIR}/include/NvBlastTkObject.h
	${TOOLKIT_DIR}/include/NvBlastTkType.h
)

SET(TOOLKIT_FILES
	${TOOLKIT_DIR}/source/NvBlastTkActorImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkActorImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkAssetImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkAssetImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkCommon.h
	${TOOLKIT_DIR}/source/NvBlastTkEventQueue.h
	${TOOLKIT_DIR}/source/NvBlastTkFamilyImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkFamilyImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkFrameworkImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkFrameworkImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkGroupImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkGroupImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkGUID.h
	${TOOLKIT_DIR}/source/NvBlastTkJointImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkJointImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkTaskImpl.cpp
	${TOOLKIT_DIR}/source/NvBlastTkTaskImpl.h
	${TOOLKIT_DIR}/source/NvBlastTkTypeImpl.h
)

ADD_LIBRARY(NvBlastTk ${BLASTTK_LIBTYPE} 
	${COMMON_FILES}
	${PUBLIC_FILES}
	${TOOLKIT_FILES}
)

SOURCE_GROUP("common" FILES ${COMMON_FILES})
SOURCE_GROUP("public" FILES ${PUBLIC_FILES})
SOURCE_GROUP("toolkit" FILES ${TOOLKIT_FILES})

# Target specific compile options

TARGET_INCLUDE_DIRECTORIES(NvBlastTk 
	PRIVATE ${BLASTTK_PLATFORM_INCLUDES}

	PRIVATE ${PROJECT_SOURCE_DIR}/common
	PUBLIC ${PROJECT_SOURCE_DIR}/lowlevel/include
	PUBLIC ${PROJECT_SOURCE_DIR}/toolkit/include
	
	PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
)

TARGET_COMPILE_DEFINITIONS(NvBlastTk 
	PRIVATE ${BLASTTK_COMPILE_DEFS}
)

TARGET_COMPILE_OPTIONS(NvBlastTk
	PRIVATE ${BLASTTK_PLATFORM_COMPILE_OPTIONS}
)

SET_TARGET_PROPERTIES(NvBlastTk PROPERTIES 
	PDB_NAME_DEBUG "NvBlastTk${CMAKE_DEBUG_POSTFIX}"
	PDB_NAME_CHECKED "NvBlastTk${CMAKE_CHECKED_POSTFIX}"
	PDB_NAME_PROFILE "NvBlastTk${CMAKE_PROFILE_POSTFIX}"
	PDB_NAME_RELEASE "NvBlastTk${CMAKE_RELEASE_POSTFIX}"
)

# Do final direct sets after the target has been defined
TARGET_LINK_LIBRARIES(NvBlastTk 
	PUBLIC NvBlast NvBlastGlobals

	PUBLIC ${BLASTTK_PLATFORM_LINKED_LIBS}
)