torque3d.cmake 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. # -----------------------------------------------------------------------------
  2. # Copyright (c) 2014 GarageGames, LLC
  3. #
  4. # Permission is hereby granted, free of charge, to any person obtaining a copy
  5. # of this software and associated documentation files (the "Software"), to
  6. # deal in the Software without restriction, including without limitation the
  7. # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  8. # sell copies of the Software, and to permit persons to whom the Software is
  9. # furnished to do so, subject to the following conditions:
  10. #
  11. # The above copyright notice and this permission notice shall be included in
  12. # all copies or substantial portions of the Software.
  13. #
  14. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  19. # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  20. # IN THE SOFTWARE.
  21. # -----------------------------------------------------------------------------
  22. project(${TORQUE_APP_NAME})
  23. if(UNIX)
  24. # default compiler flags
  25. # force compile 32 bit
  26. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -Wall -Wundef -msse -pipe -Wfatal-errors ${TORQUE_ADDITIONAL_LINKER_FLAGS}")
  27. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -Wall -Wundef -msse -pipe -Wfatal-errors ${TORQUE_ADDITIONAL_LINKER_FLAGS}")
  28. # for asm files
  29. SET (CMAKE_ASM_NASM_OBJECT_FORMAT "elf")
  30. ENABLE_LANGUAGE (ASM_NASM)
  31. endif()
  32. # TODO: fmod support
  33. ###############################################################################
  34. # modules
  35. ###############################################################################
  36. option(TORQUE_SFX_VORBIS "Vorbis Sound" ON)
  37. mark_as_advanced(TORQUE_SFX_VORBIS)
  38. option(TORQUE_THEORA "Theora Video Support" ON)
  39. mark_as_advanced(TORQUE_THEORA)
  40. option(TORQUE_ADVANCED_LIGHTING "Advanced Lighting" ON)
  41. mark_as_advanced(TORQUE_ADVANCED_LIGHTING)
  42. option(TORQUE_BASIC_LIGHTING "Basic Lighting" ON)
  43. mark_as_advanced(TORQUE_BASIC_LIGHTING)
  44. if(WIN32)
  45. option(TORQUE_SFX_DirectX "DirectX Sound" ON)
  46. mark_as_advanced(TORQUE_SFX_DirectX)
  47. else()
  48. set(TORQUE_SFX_DirectX OFF)
  49. endif()
  50. option(TORQUE_SFX_OPENAL "OpenAL Sound" ON)
  51. mark_as_advanced(TORQUE_SFX_OPENAL)
  52. option(TORQUE_HIFI "HIFI? support" OFF)
  53. mark_as_advanced(TORQUE_HIFI)
  54. option(TORQUE_EXTENDED_MOVE "Extended move support" OFF)
  55. mark_as_advanced(TORQUE_EXTENDED_MOVE)
  56. option(TORQUE_NAVIGATION "Enable Navigation module" OFF)
  57. #mark_as_advanced(TORQUE_NAVIGATION)
  58. option(TORQUE_TESTING "Enable unit test module" OFF)
  59. mark_as_advanced(TORQUE_TESTING)
  60. if(WIN32)
  61. option(TORQUE_OPENGL "Allow OpenGL render" OFF)
  62. #mark_as_advanced(TORQUE_OPENGL)
  63. else()
  64. set(TORQUE_OPENGL ON) # we need OpenGL to render on Linux/Mac
  65. option(TORQUE_DEDICATED "Torque dedicated" OFF)
  66. endif()
  67. #Oculus VR
  68. option(TORQUE_OCULUSVR "Enable OCULUSVR module" OFF)
  69. mark_as_advanced(TORQUE_OCULUSVR)
  70. if(TORQUE_OCULUSVR)
  71. set(TORQUE_OCULUSVR_SDK_PATH "" CACHE PATH "OCULUSVR library path" FORCE)
  72. else() # hide variable
  73. set(TORQUE_OCULUSVR_SDK_PATH "" CACHE INTERNAL "" FORCE)
  74. endif()
  75. #Hydra
  76. option(TORQUE_HYDRA "Enable HYDRA module" OFF)
  77. mark_as_advanced(TORQUE_HYDRA)
  78. if(TORQUE_HYDRA)
  79. set(TORQUE_HYDRA_SDK_PATH "" CACHE PATH "HYDRA library path" FORCE)
  80. else() # hide variable
  81. set(TORQUE_HYDRA_SDK_PATH "" CACHE INTERNAL "" FORCE)
  82. endif()
  83. ###############################################################################
  84. # options
  85. ###############################################################################
  86. if(NOT MSVC) # handle single-configuration generator
  87. set(TORQUE_BUILD_TYPE "Debug" CACHE STRING "Select one of Debug, Release and RelWithDebInfo")
  88. set_property(CACHE TORQUE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo")
  89. set(TORQUE_ADDITIONAL_LINKER_FLAGS "" CACHE STRING "Additional linker flags")
  90. mark_as_advanced(TORQUE_ADDITIONAL_LINKER_FLAGS)
  91. endif()
  92. option(TORQUE_MULTITHREAD "Multi Threading" ON)
  93. mark_as_advanced(TORQUE_MULTITHREAD)
  94. option(TORQUE_DISABLE_MEMORY_MANAGER "Disable memory manager" ON)
  95. mark_as_advanced(TORQUE_DISABLE_MEMORY_MANAGER)
  96. option(TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM "Disable virtual mount system" OFF)
  97. mark_as_advanced(TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM)
  98. option(TORQUE_PLAYER "Playback only?" OFF)
  99. mark_as_advanced(TORQUE_PLAYER)
  100. option(TORQUE_TOOLS "Enable or disable the tools" ON)
  101. mark_as_advanced(TORQUE_TOOLS)
  102. option(TORQUE_ENABLE_PROFILER "Enable or disable the profiler" OFF)
  103. mark_as_advanced(TORQUE_ENABLE_PROFILER)
  104. option(TORQUE_DEBUG "T3D Debug mode" OFF)
  105. mark_as_advanced(TORQUE_DEBUG)
  106. option(TORQUE_SHIPPING "T3D Shipping build?" OFF)
  107. mark_as_advanced(TORQUE_SHIPPING)
  108. option(TORQUE_DEBUG_NET "debug network" OFF)
  109. mark_as_advanced(TORQUE_DEBUG_NET)
  110. option(TORQUE_DEBUG_NET_MOVES "debug network moves" OFF)
  111. mark_as_advanced(TORQUE_DEBUG_NET_MOVES)
  112. option(TORQUE_ENABLE_ASSERTS "enables or disable asserts" OFF)
  113. mark_as_advanced(TORQUE_ENABLE_ASSERTS)
  114. option(TORQUE_DEBUG_GFX_MODE "triggers graphics debug mode" OFF)
  115. mark_as_advanced(TORQUE_DEBUG_GFX_MODE)
  116. #option(DEBUG_SPEW "more debug" OFF)
  117. set(TORQUE_NO_DSO_GENERATION ON)
  118. if(WIN32)
  119. # warning C4800: 'XXX' : forcing value to bool 'true' or 'false' (performance warning)
  120. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4800")
  121. # warning C4018: '<' : signed/unsigned mismatch
  122. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4018")
  123. # warning C4244: 'initializing' : conversion from 'XXX' to 'XXX', possible loss of data
  124. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244")
  125. if( TORQUE_CPU_X64 )
  126. link_directories($ENV{DXSDK_DIR}/Lib/x64)
  127. else()
  128. link_directories($ENV{DXSDK_DIR}/Lib/x86)
  129. endif()
  130. endif()
  131. ###############################################################################
  132. # Always enabled paths first
  133. ###############################################################################
  134. addPath("${srcDir}/") # must come first :)
  135. addPathRec("${srcDir}/app")
  136. addPath("${srcDir}/sfx/media")
  137. addPath("${srcDir}/sfx/null")
  138. addPath("${srcDir}/sfx")
  139. addPath("${srcDir}/component")
  140. addPath("${srcDir}/component/interfaces")
  141. addPath("${srcDir}/console")
  142. addPath("${srcDir}/core")
  143. addPath("${srcDir}/core/stream")
  144. addPath("${srcDir}/core/strings")
  145. addPath("${srcDir}/core/util")
  146. addPath("${srcDir}/core/util/test")
  147. addPath("${srcDir}/core/util/journal")
  148. addPath("${srcDir}/core/util/journal/test")
  149. addPath("${srcDir}/core/util/zip")
  150. addPath("${srcDir}/core/util/zip/test")
  151. addPath("${srcDir}/core/util/zip/compressors")
  152. addPath("${srcDir}/i18n")
  153. addPath("${srcDir}/sim")
  154. addPath("${srcDir}/util")
  155. addPath("${srcDir}/windowManager")
  156. addPath("${srcDir}/windowManager/torque")
  157. addPath("${srcDir}/windowManager/test")
  158. addPath("${srcDir}/math")
  159. addPath("${srcDir}/math/util")
  160. addPath("${srcDir}/math/test")
  161. addPath("${srcDir}/platform")
  162. addPath("${srcDir}/cinterface")
  163. addPath("${srcDir}/platform/nativeDialogs")
  164. if( NOT TORQUE_DEDICATED )
  165. addPath("${srcDir}/platform/menus")
  166. endif()
  167. addPath("${srcDir}/platform/test")
  168. addPath("${srcDir}/platform/threads")
  169. addPath("${srcDir}/platform/async")
  170. addPath("${srcDir}/platform/async/test")
  171. addPath("${srcDir}/platform/input")
  172. addPath("${srcDir}/platform/output")
  173. addPath("${srcDir}/app")
  174. addPath("${srcDir}/app/net")
  175. addPath("${srcDir}/util/messaging")
  176. addPath("${srcDir}/gfx/Null")
  177. addPath("${srcDir}/gfx/test")
  178. addPath("${srcDir}/gfx/bitmap")
  179. addPath("${srcDir}/gfx/bitmap/loaders")
  180. addPath("${srcDir}/gfx/util")
  181. addPath("${srcDir}/gfx/video")
  182. addPath("${srcDir}/gfx")
  183. addPath("${srcDir}/shaderGen")
  184. addPath("${srcDir}/gfx/sim")
  185. addPath("${srcDir}/gui/buttons")
  186. addPath("${srcDir}/gui/containers")
  187. addPath("${srcDir}/gui/controls")
  188. addPath("${srcDir}/gui/core")
  189. addPath("${srcDir}/gui/game")
  190. addPath("${srcDir}/gui/shiny")
  191. addPath("${srcDir}/gui/utility")
  192. addPath("${srcDir}/gui")
  193. addPath("${srcDir}/collision")
  194. addPath("${srcDir}/materials")
  195. addPath("${srcDir}/lighting")
  196. addPath("${srcDir}/lighting/common")
  197. addPath("${srcDir}/renderInstance")
  198. addPath("${srcDir}/scene")
  199. addPath("${srcDir}/scene/culling")
  200. addPath("${srcDir}/scene/zones")
  201. addPath("${srcDir}/scene/mixin")
  202. addPath("${srcDir}/shaderGen")
  203. addPath("${srcDir}/terrain")
  204. addPath("${srcDir}/environment")
  205. addPath("${srcDir}/forest")
  206. addPath("${srcDir}/forest/ts")
  207. addPath("${srcDir}/ts")
  208. addPath("${srcDir}/ts/arch")
  209. addPath("${srcDir}/physics")
  210. addPath("${srcDir}/gui/3d")
  211. addPath("${srcDir}/postFx")
  212. addPath("${srcDir}/T3D")
  213. addPath("${srcDir}/T3D/examples")
  214. addPath("${srcDir}/T3D/fps")
  215. addPath("${srcDir}/T3D/fx")
  216. addPath("${srcDir}/T3D/vehicles")
  217. addPath("${srcDir}/T3D/physics")
  218. addPath("${srcDir}/T3D/decal")
  219. addPath("${srcDir}/T3D/sfx")
  220. addPath("${srcDir}/T3D/gameBase")
  221. addPath("${srcDir}/T3D/turret")
  222. addPath("${srcDir}/main/")
  223. addPathRec("${srcDir}/ts/collada")
  224. addPathRec("${srcDir}/ts/loader")
  225. addPathRec("${projectSrcDir}")
  226. ###############################################################################
  227. # modular paths
  228. ###############################################################################
  229. # lighting
  230. if(TORQUE_ADVANCED_LIGHTING)
  231. addPath("${srcDir}/lighting/advanced")
  232. addPathRec("${srcDir}/lighting/shadowMap")
  233. if(WIN32)
  234. addPathRec("${srcDir}/lighting/advanced/hlsl")
  235. endif()
  236. if(TORQUE_OPENGL)
  237. addPathRec("${srcDir}/lighting/advanced/glsl")
  238. endif()
  239. addDef(TORQUE_ADVANCED_LIGHTING)
  240. endif()
  241. if(TORQUE_BASIC_LIGHTING)
  242. addPathRec("${srcDir}/lighting/basic")
  243. addPathRec("${srcDir}/lighting/shadowMap")
  244. addDef(TORQUE_BASIC_LIGHTING)
  245. endif()
  246. # DirectX Sound
  247. if(TORQUE_SFX_DirectX)
  248. addLib(x3daudio.lib)
  249. addPathRec("${srcDir}/sfx/dsound")
  250. addPathRec("${srcDir}/sfx/xaudio")
  251. endif()
  252. # OpenAL
  253. if(TORQUE_SFX_OPENAL AND NOT TORQUE_DEDICATED)
  254. addPath("${srcDir}/sfx/openal")
  255. #addPath("${srcDir}/sfx/openal/mac")
  256. if(WIN32)
  257. addPath("${srcDir}/sfx/openal/win32")
  258. addInclude("${libDir}/openal/win32")
  259. endif()
  260. if(UNIX)
  261. addPath("${srcDir}/sfx/openal/linux")
  262. endif()
  263. endif()
  264. # Vorbis
  265. if(TORQUE_SFX_VORBIS)
  266. addInclude(${libDir}/libvorbis/include)
  267. addDef(TORQUE_OGGVORBIS)
  268. addLib(libvorbis)
  269. addLib(libogg)
  270. endif()
  271. # Theora
  272. if(TORQUE_THEORA)
  273. addPath("${srcDir}/core/ogg")
  274. addPath("${srcDir}/gfx/video")
  275. addPath("${srcDir}/gui/theora")
  276. addDef(TORQUE_OGGTHEORA)
  277. addDef(TORQUE_OGGVORIBS)
  278. addInclude(${libDir}/libtheora/include)
  279. addLib(libtheora)
  280. endif()
  281. # Include tools for non-tool builds (or define player if a tool build)
  282. if(TORQUE_TOOLS)
  283. addPath("${srcDir}/gui/worldEditor")
  284. addPath("${srcDir}/environment/editors")
  285. addPath("${srcDir}/forest/editor")
  286. addPath("${srcDir}/gui/editor")
  287. addPath("${srcDir}/gui/editor/inspector")
  288. endif()
  289. if(TORQUE_HIFI)
  290. addPath("${srcDir}/T3D/gameBase/hifi")
  291. addDef(TORQUE_HIFI_NET)
  292. endif()
  293. if(TORQUE_EXTENDED_MOVE)
  294. addPath("${srcDir}/T3D/gameBase/extended")
  295. addDef(TORQUE_EXTENDED_MOVE)
  296. else()
  297. addPath("${srcDir}/T3D/gameBase/std")
  298. endif()
  299. if(TORQUE_TESTING)
  300. include( "modules/module_testing.cmake" )
  301. endif()
  302. if(TORQUE_NAVIGATION)
  303. include( "modules/module_navigation.cmake" )
  304. endif()
  305. if(TORQUE_OCULUSVR)
  306. include( "modules/module_oculusVR.cmake" )
  307. endif()
  308. if(TORQUE_HYDRA)
  309. include( "modules/module_hydra.cmake" )
  310. endif()
  311. if(TORQUE_DEDICATED)
  312. addDef(TORQUE_DEDICATED)
  313. endif()
  314. include( "modules/module_testing.cmake" )
  315. ###############################################################################
  316. # platform specific things
  317. ###############################################################################
  318. if(WIN32)
  319. addPath("${srcDir}/platformWin32")
  320. addPath("${srcDir}/platformWin32/nativeDialogs")
  321. addPath("${srcDir}/platformWin32/menus")
  322. addPath("${srcDir}/platformWin32/threads")
  323. addPath("${srcDir}/platformWin32/videoInfo")
  324. addPath("${srcDir}/platformWin32/minidump")
  325. addPath("${srcDir}/windowManager/win32")
  326. #addPath("${srcDir}/gfx/D3D8")
  327. addPath("${srcDir}/gfx/D3D")
  328. addPath("${srcDir}/gfx/D3D9")
  329. addPath("${srcDir}/gfx/D3D9/pc")
  330. addPath("${srcDir}/shaderGen/HLSL")
  331. addPath("${srcDir}/terrain/hlsl")
  332. addPath("${srcDir}/forest/hlsl")
  333. # add windows rc file for the icon
  334. addFile("${projectSrcDir}/torque.rc")
  335. endif()
  336. if(APPLE)
  337. addPath("${srcDir}/platformMac")
  338. addPath("${srcDir}/platformMac/menus")
  339. addPath("${srcDir}/platformPOSIX")
  340. addPath("${srcDir}/windowManager/mac")
  341. addPath("${srcDir}/gfx/gl")
  342. addPath("${srcDir}/gfx/gl/ggl")
  343. addPath("${srcDir}/gfx/gl/ggl/mac")
  344. addPath("${srcDir}/gfx/gl/ggl/generated")
  345. addPath("${srcDir}/shaderGen/GLSL")
  346. addPath("${srcDir}/terrain/glsl")
  347. addPath("${srcDir}/forest/glsl")
  348. endif()
  349. if(XBOX360)
  350. addPath("${srcDir}/platformXbox")
  351. addPath("${srcDir}/platformXbox/threads")
  352. addPath("${srcDir}/windowManager/360")
  353. addPath("${srcDir}/gfx/D3D9")
  354. addPath("${srcDir}/gfx/D3D9/360")
  355. addPath("${srcDir}/shaderGen/HLSL")
  356. addPath("${srcDir}/shaderGen/360")
  357. addPath("${srcDir}/ts/arch/360")
  358. addPath("${srcDir}/terrain/hlsl")
  359. addPath("${srcDir}/forest/hlsl")
  360. endif()
  361. if(PS3)
  362. addPath("${srcDir}/platformPS3")
  363. addPath("${srcDir}/platformPS3/threads")
  364. addPath("${srcDir}/windowManager/ps3")
  365. addPath("${srcDir}/gfx/gl")
  366. addPath("${srcDir}/gfx/gl/ggl")
  367. addPath("${srcDir}/gfx/gl/ggl/ps3")
  368. addPath("${srcDir}/gfx/gl/ggl/generated")
  369. addPath("${srcDir}/shaderGen/GLSL")
  370. addPath("${srcDir}/ts/arch/ps3")
  371. addPath("${srcDir}/terrain/glsl")
  372. addPath("${srcDir}/forest/glsl")
  373. endif()
  374. if(UNIX)
  375. if(TORQUE_DEDICATED)
  376. addPath("${srcDir}/windowManager/dedicated")
  377. # ${srcDir}/platformX86UNIX/*.client.* files are not needed
  378. # @todo: move to separate file
  379. file( GLOB tmp_files
  380. ${srcDir}/platformX86UNIX/*.cpp
  381. ${srcDir}/platformX86UNIX/*.c
  382. ${srcDir}/platformX86UNIX/*.cc
  383. ${srcDir}/platformX86UNIX/*.h )
  384. file( GLOB tmp_remove_files ${srcDir}/platformX86UNIX/*client.* )
  385. LIST( REMOVE_ITEM tmp_files ${tmp_remove_files} )
  386. foreach( f ${tmp_files} )
  387. addFile( ${f} )
  388. endforeach()
  389. else()
  390. addPath("${srcDir}/platformX86UNIX")
  391. endif()
  392. addPath("${srcDir}/platformX86UNIX/threads")
  393. addPath("${srcDir}/platformPOSIX")
  394. endif()
  395. if( TORQUE_OPENGL )
  396. addPath("${srcDir}/shaderGen/GLSL")
  397. if( TORQUE_OPENGL AND NOT TORQUE_DEDICATED )
  398. addPath("${srcDir}/gfx/gl")
  399. addPath("${srcDir}/gfx/gl/tGL")
  400. addPath("${srcDir}/terrain/glsl")
  401. addPath("${srcDir}/forest/glsl")
  402. endif()
  403. if(WIN32 AND NOT TORQUE_SDL)
  404. addPath("${srcDir}/gfx/gl/win32")
  405. endif()
  406. endif()
  407. ###############################################################################
  408. ###############################################################################
  409. finishExecutable()
  410. ###############################################################################
  411. ###############################################################################
  412. message(STATUS "writing ${projectSrcDir}/torqueConfig.h")
  413. CONFIGURE_FILE("${cmakeDir}/torqueConfig.h.in" "${projectSrcDir}/torqueConfig.h")
  414. # configure the relevant files only once
  415. if(NOT EXISTS "${projectSrcDir}/torque.ico")
  416. CONFIGURE_FILE("${cmakeDir}/torque.ico" "${projectSrcDir}/torque.ico" COPYONLY)
  417. endif()
  418. if(NOT EXISTS "${projectOutDir}/${PROJECT_NAME}.torsion")
  419. CONFIGURE_FILE("${cmakeDir}/template.torsion.in" "${projectOutDir}/${PROJECT_NAME}.torsion")
  420. endif()
  421. if(EXISTS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" AND NOT EXISTS "${projectOutDir}/main.cs")
  422. CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" "${projectOutDir}/main.cs")
  423. endif()
  424. if(WIN32)
  425. if(NOT EXISTS "${projectSrcDir}/torque.rc")
  426. CONFIGURE_FILE("${cmakeDir}/torque-win.rc.in" "${projectSrcDir}/torque.rc")
  427. endif()
  428. if(NOT EXISTS "${projectOutDir}/${PROJECT_NAME}-debug.bat")
  429. CONFIGURE_FILE("${cmakeDir}/app-debug-win.bat.in" "${projectOutDir}/${PROJECT_NAME}-debug.bat")
  430. endif()
  431. if(NOT EXISTS "${projectOutDir}/cleanup.bat")
  432. CONFIGURE_FILE("${cmakeDir}/cleanup-win.bat.in" "${projectOutDir}/cleanup.bat")
  433. endif()
  434. endif()
  435. ###############################################################################
  436. # Common Libraries
  437. ###############################################################################
  438. addLib(lmng)
  439. addLib(lpng)
  440. addLib(lungif)
  441. addLib(ljpeg)
  442. addLib(zlib)
  443. addLib(tinyxml)
  444. addLib(opcode)
  445. addLib(squish)
  446. addLib(collada)
  447. addLib(pcre)
  448. addLib(convexDecomp)
  449. if(WIN32)
  450. # copy pasted from T3D build system, some might not be needed
  451. set(TORQUE_EXTERNAL_LIBS "COMCTL32.LIB;COMDLG32.LIB;USER32.LIB;ADVAPI32.LIB;GDI32.LIB;WINMM.LIB;WSOCK32.LIB;vfw32.lib;Imm32.lib;d3d9.lib;d3dx9.lib;DxErr.lib;ole32.lib;shell32.lib;oleaut32.lib;version.lib" CACHE STRING "external libs to link against")
  452. mark_as_advanced(TORQUE_EXTERNAL_LIBS)
  453. addLib("${TORQUE_EXTERNAL_LIBS}")
  454. endif()
  455. if(UNIX)
  456. # copy pasted from T3D build system, some might not be needed
  457. set(TORQUE_EXTERNAL_LIBS "rt dl Xxf86vm Xext X11 Xft stdc++ pthread GL" CACHE STRING "external libs to link against")
  458. mark_as_advanced(TORQUE_EXTERNAL_LIBS)
  459. string(REPLACE " " ";" TORQUE_EXTERNAL_LIBS_LIST ${TORQUE_EXTERNAL_LIBS})
  460. addLib( "${TORQUE_EXTERNAL_LIBS_LIST}" )
  461. endif()
  462. ###############################################################################
  463. # Always enabled Definitions
  464. ###############################################################################
  465. addDef(TORQUE_DEBUG DEBUG)
  466. addDef(TORQUE_ENABLE_ASSERTS "DEBUG;RelWithDebInfo")
  467. addDef(TORQUE_DEBUG_GFX_MODE "RelWithDebInfo")
  468. addDef(TORQUE_SHADERGEN)
  469. addDef(INITGUID)
  470. addDef(NTORQUE_SHARED)
  471. addDef(UNICODE)
  472. addDef(_UNICODE) # for VS
  473. addDef(TORQUE_UNICODE)
  474. #addDef(TORQUE_SHARED) # not used anymore as the game is the executable directly
  475. addDef(LTC_NO_PROTOTYPES) # for libTomCrypt
  476. addDef(BAN_OPCODE_AUTOLINK)
  477. addDef(ICE_NO_DLL)
  478. addDef(TORQUE_OPCODE)
  479. addDef(TORQUE_COLLADA)
  480. addDef(DOM_INCLUDE_TINYXML)
  481. addDef(PCRE_STATIC)
  482. addDef(_CRT_SECURE_NO_WARNINGS)
  483. addDef(_CRT_SECURE_NO_DEPRECATE)
  484. if(UNIX)
  485. addDef(LINUX)
  486. endif()
  487. ###############################################################################
  488. # Include Paths
  489. ###############################################################################
  490. addInclude("${projectSrcDir}")
  491. addInclude("${srcDir}/")
  492. addInclude("${libDir}/lmpg")
  493. addInclude("${libDir}/lpng")
  494. addInclude("${libDir}/ljpeg")
  495. addInclude("${libDir}/lungif")
  496. addInclude("${libDir}/zlib")
  497. addInclude("${libDir}/") # for tinyxml
  498. addInclude("${libDir}/tinyxml")
  499. addInclude("${libDir}/squish")
  500. addInclude("${libDir}/convexDecomp")
  501. addInclude("${libDir}/libogg/include")
  502. addInclude("${libDir}/opcode")
  503. addInclude("${libDir}/collada/include")
  504. addInclude("${libDir}/collada/include/1.4")
  505. # external things
  506. if(WIN32)
  507. set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INCLUDE_DIRECTORIES $ENV{DXSDK_DIR}/Include)
  508. endif()
  509. if(UNIX)
  510. addInclude("/usr/include/freetype2/freetype")
  511. addInclude("/usr/include/freetype2")
  512. endif()
  513. ###############################################################################
  514. # Installation
  515. ###############################################################################
  516. if(TORQUE_TEMPLATE)
  517. message("Prepare Template(${TORQUE_TEMPLATE}) install...")
  518. INSTALL(DIRECTORY "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game" DESTINATION "${TORQUE_APP_DIR}")
  519. if(WIN32)
  520. INSTALL(FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/cleanShaders.bat" DESTINATION "${TORQUE_APP_DIR}")
  521. INSTALL(FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/DeleteCachedDTSs.bat" DESTINATION "${TORQUE_APP_DIR}")
  522. INSTALL(FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/DeleteDSOs.bat" DESTINATION "${TORQUE_APP_DIR}")
  523. INSTALL(FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/DeletePrefs.bat" DESTINATION "${TORQUE_APP_DIR}")
  524. endif()
  525. endif()