Imported Upstream version 2.81
[platform/upstream/libbullet.git] / Demos / DX11ClothDemo / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.4)\r
2 \r
3 \r
4 #this line has to appear before 'PROJECT' in order to be able to disable incremental linking\r
5 SET(MSVC_INCREMENTAL_DEFAULT ON)\r
6 \r
7 PROJECT(AppDX11ClothDemo)\r
8 SET(BULLET_VERSION 2.76)\r
9 \r
10 IF (NOT CMAKE_BUILD_TYPE)\r
11 # SET(CMAKE_BUILD_TYPE "Debug")\r
12  SET(CMAKE_BUILD_TYPE "Release")\r
13 ENDIF (NOT CMAKE_BUILD_TYPE) \r
14 \r
15 \r
16 OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" ON)\r
17 OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF)\r
18 \r
19 \r
20 \r
21 IF(MSVC)\r
22         IF (NOT USE_MSVC_INCREMENTAL_LINKING)\r
23                 #MESSAGE("MSVC_INCREMENTAL_DEFAULT"+${MSVC_INCREMENTAL_DEFAULT})\r
24                 SET( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:NO")\r
25                  \r
26                 STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags ${CMAKE_EXE_LINKER_FLAGS_DEBUG}) \r
27                 SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO ${replacementFlags}" )\r
28                 MESSAGE("CMAKE_EXE_LINKER_FLAGS_DEBUG=${CMAKE_EXE_LINKER_FLAGS_DEBUG}")\r
29                 \r
30                 STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags3 ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO})\r
31                 SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO ${replacementFlags3}) \r
32                 SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/INCREMENTAL:NO ${replacementFlags3}" )\r
33         ENDIF (NOT USE_MSVC_INCREMENTAL_LINKING)\r
34 \r
35         IF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)\r
36                 #We statically link to reduce dependancies\r
37                 FOREACH(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)\r
38                         IF(${flag_var} MATCHES "/MD")\r
39                                 STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")\r
40                         ENDIF(${flag_var} MATCHES "/MD")\r
41                         IF(${flag_var} MATCHES "/MDd")\r
42                                 STRING(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}")\r
43                         ENDIF(${flag_var} MATCHES "/MDd")\r
44                 ENDFOREACH(flag_var)\r
45         ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)\r
46 \r
47         OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON)\r
48         IF (USE_MSVC_SSE)\r
49                 ADD_DEFINITIONS(/arch:SSE)\r
50         ENDIF()\r
51         OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option"   ON)\r
52         IF (USE_MSVC_FAST_FLOATINGPOINT)\r
53                 ADD_DEFINITIONS(/fp:fast)\r
54   ENDIF()\r
55 ENDIF(MSVC)\r
56 \r
57    \r
58 IF(COMMAND cmake_policy)\r
59    cmake_policy(SET CMP0003 NEW)\r
60 ENDIF(COMMAND cmake_policy)\r
61    \r
62 \r
63 \r
64 \r
65 SET(DXSDK_DIR $ENV{DXSDK_DIR})\r
66 SET(DX11_INCLUDE_PATH  "${DXSDK_DIR}Include" CACHE DOCSTRING "Microsoft directX SDK include path")\r
67 IF (CMAKE_CL_64)\r
68         SET(DX11_LIB_PATH "${DXSDK_DIR}Lib/x64" CACHE DOCSTRING "Microsoft DirectX SDK library path")\r
69 ELSE()\r
70         SET(DX11_LIB_PATH "${DXSDK_DIR}Lib/x86" CACHE DOCSTRING "Microsoft DirectX SDK library path")   \r
71 ENDIF()\r
72 \r
73 SET(BulletClothExample_SRCS\r
74         DXUT/Core/DXUT.cpp\r
75         DXUT/Optional/DXUTcamera.cpp\r
76         DXUT/Core/DXUTDevice11.cpp\r
77         DXUT/Core/DXUTDevice9.cpp\r
78         DXUT/Optional/DXUTgui.cpp\r
79         DXUT/Core/DXUTmisc.cpp\r
80         DXUT/Optional/DXUTres.cpp\r
81         DXUT/Optional/DXUTsettingsdlg.cpp\r
82         DXUT/Optional/SDKmesh.cpp\r
83         DXUT/Optional/SDKmisc.cpp       \r
84 \r
85         cloth_renderer.cpp\r
86 )\r
87 \r
88 \r
89 SET(BulletClothExample_HDRS\r
90         DXUT/Core/DXUT.h\r
91         DXUT/Optional/DXUTcamera.h\r
92         DXUT/Core/DXUTDevice11.h\r
93         DXUT/Core/DXUTDevice9.h\r
94         DXUT/Optional/DXUTgui.h\r
95         DXUT/Core/DXUTmisc.h\r
96         DXUT/Optional/DXUTres.h\r
97         DXUT/Optional/DXUTsettingsdlg.h\r
98         DXUT/Optional/SDKmesh.h\r
99         DXUT/Optional/SDKmisc.h\r
100 \r
101         btDirectComputeSupport.h\r
102         cap.h\r
103         cloth.h\r
104         cylinder.h\r
105 #       FreeImage.h\r
106         resource.h\r
107 )\r
108 \r
109 \r
110 INCLUDE_DIRECTORIES(\r
111         ${DX11_INCLUDE_PATH} \r
112         ${BULLET_PHYSICS_SOURCE_DIR}/src  \r
113         "DXUT/Core"\r
114         "DXUT/Optional"\r
115         ${VECTOR_MATH_INCLUDE}\r
116 )\r
117 LINK_DIRECTORIES(\r
118 ${DX11_LIB_PATH}\r
119 )\r
120 \r
121 ADD_DEFINITIONS(-DUNICODE)\r
122 ADD_DEFINITIONS(-D_UNICODE)\r
123 \r
124 ADD_EXECUTABLE(AppDX11ClothDemo WIN32\r
125         ${BulletClothExample_SRCS} \r
126         ${BulletClothExample_HDRS} \r
127 )\r
128 TARGET_LINK_LIBRARIES(AppDX11ClothDemo\r
129         d3dcompiler\r
130         dxerr\r
131         dxguid\r
132         d3dx9\r
133         d3d9\r
134         winmm\r
135         comctl32\r
136         d3dx11\r
137         BulletDynamics\r
138         BulletCollision\r
139         LinearMath\r
140         BulletSoftBody\r
141         BulletSoftBodySolvers_DX11\r
142 )\r
143 \r
144 IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES)\r
145                 SET_TARGET_PROPERTIES(AppDX11ClothDemo PROPERTIES  DEBUG_POSTFIX "_Debug")\r
146                 SET_TARGET_PROPERTIES(AppDX11ClothDemo PROPERTIES  MINSIZEREL_POSTFIX "_MinsizeRel")\r
147                 SET_TARGET_PROPERTIES(AppDX11ClothDemo PROPERTIES  RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo")\r
148 ENDIF()\r
149 \r
150 \r
151 IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES)\r
152         ADD_CUSTOM_COMMAND(\r
153                 TARGET AppDX11ClothDemo\r
154                 POST_BUILD\r
155                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/cloth_renderer_PS.hlsl ${CMAKE_CURRENT_BINARY_DIR}/cloth_renderer_PS.hlsl\r
156                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/cloth_renderer_VS.hlsl ${CMAKE_CURRENT_BINARY_DIR}/cloth_renderer_VS.hlsl\r
157                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/texture.bmp ${CMAKE_CURRENT_BINARY_DIR}/texture.bmp\r
158                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/amdFlag.bmp  ${CMAKE_CURRENT_BINARY_DIR}/amdFlag.bmp\r
159                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/atiFlag.bmp  ${CMAKE_CURRENT_BINARY_DIR}/atiFlag.bmp\r
160                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/texture.png ${CMAKE_CURRENT_BINARY_DIR}/texture.png\r
161                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/Media/UI/Font.dds ${CMAKE_CURRENT_BINARY_DIR}/Media/UI/Font.dds\r
162                 COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/DX11ClothDemo/Media/Tiny/tiny.sdkmesh ${CMAKE_CURRENT_BINARY_DIR}/Media/Tiny/tiny.sdkmesh\r
163                 \r
164         )\r
165 ENDIF()\r
166