CMakeLists.txt 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. #===================================
  2. # Build script for libRocket =======
  3. #===================================
  4. if(APPLE)
  5. if(IOS_PLATFORM)
  6. set(CMAKE_TOOLCHAIN_FILE cmake/Platform/iOS.cmake)
  7. endif(IOS_PLATFORM)
  8. endif(APPLE)
  9. # We use the new OSX_ARCHITECTURES property
  10. # and GNUInstallDirs module
  11. cmake_minimum_required(VERSION 2.8.5)
  12. if(COMMAND cmake_policy)
  13. cmake_policy(SET CMP0015 NEW)
  14. endif(COMMAND cmake_policy)
  15. project(libRocket C CXX)
  16. # paths
  17. include(GNUInstallDirs)
  18. set(LIBROCKET_VERSION_MAJOR 1)
  19. set(LIBROCKET_VERSION_MINOR 3)
  20. set(LIBROCKET_VERSION_PATCH 0)
  21. set(LIBROCKET_VERSION_TWEAK 0)
  22. set(PROJECT_VERSION ${LIBROCKET_VERSION_MAJOR}.${LIBROCKET_VERSION_MINOR}.${LIBROCKET_VERSION_PATCH}.${LIBROCKET_VERSION_TWEAK})
  23. # Search in the 'cmake' directory for additional CMake modules.
  24. list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
  25. # Old versions of CMake need some updated Modules, but we don't want
  26. # to override newer versions of CMake which have working versions
  27. if(CMAKE_MAJOR_VERSION LESS 3)
  28. list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/v2fixes)
  29. endif()
  30. set(CMAKE_DEBUG_POSTFIX "_d")
  31. #===================================
  32. # Environment tests ================
  33. #===================================
  34. include(TestForANSIForScope)
  35. include(TestForANSIStreamHeaders)
  36. include(TestForSTDNamespace)
  37. #===================================
  38. # Provide hints as to where depends=
  39. # might be found =
  40. #===================================
  41. if(NOT DEFINED ENV{FREETYPE_DIR})
  42. set(ENV{FREETYPE_DIR} "${PROJECT_SOURCE_DIR}/../Dependencies")
  43. endif()
  44. if(NOT DEFINED ENV{Boost_DIR})
  45. set(ENV{Boost_DIR} "${PROJECT_SOURCE_DIR}/../Dependencies")
  46. endif()
  47. if(NOT DEFINED ENV{LUA_DIR})
  48. set(ENV{LUA_DIR} "${PROJECT_SOURCE_DIR}/../Dependencies")
  49. endif()
  50. #===================================
  51. # Build options ====================
  52. #===================================
  53. if(NOT CMAKE_BUILD_TYPE)
  54. set(CMAKE_BUILD_TYPE Release CACHE STRING
  55. "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
  56. FORCE)
  57. endif()
  58. if(NOT IOS)
  59. option(BUILD_SHARED_LIBS "Build shared libraries" ON)
  60. endif(NOT IOS)
  61. option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
  62. option(BUILD_LUA_BINDINGS "Build Lua bindings" OFF)
  63. option(BUILD_SAMPLES "Build samples" OFF)
  64. if(WIN32)
  65. option(SKIP_DIRECTX_SAMPLES "Skip build of all DirectX related samples. Only applies if BUILD_SAMPLES is ON" OFF)
  66. option(SKIP_DIRECTX9_SAMPLE "Skip build of DirectX 9 related sample. Only applies if BUILD_SAMPLES is ON and SKIP_DIRECTX_SAMPLES is OFF" OFF)
  67. option(SKIP_DIRECTX10_SAMPLE "Skip build of DirectX 10 related sample. Only applies if BUILD_SAMPLES is ON and SKIP_DIRECTX_SAMPLES is OFF" OFF)
  68. endif()
  69. if(IOS)
  70. if(BUILD_SHARED_LIBS)
  71. message(FATAL_ERROR "BUILD_SHARED_LIBS must be OFF for iOS builds. iOS does not support shared libraries.")
  72. endif(BUILD_SHARED_LIBS)
  73. endif(IOS)
  74. if(IOS)
  75. if(BUILD_SHARED_LIBS)
  76. message(FATAL_ERROR "BUILD_SHARED_LIBS must be OFF for iOS builds. iOS does not support shared libraries.")
  77. endif(BUILD_SHARED_LIBS)
  78. endif(IOS)
  79. if(NOT BUILD_SHARED_LIBS)
  80. add_definitions(-DSTATIC_LIB)
  81. endif()
  82. #on windows, check for VC10 and fix the multiple compile target issue.
  83. IF(WIN32)
  84. if(MSVC)
  85. if(${MSVC_VERSION} STREQUAL 1600 OR ${MSVC_VERSION} STRGREATER 1600)
  86. message("Visual Studio 2010 (${MSVC_VERSION}) build fix at play (/FORCE:MULTIPLE)")
  87. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /FORCE:MULTIPLE")
  88. endif()
  89. endif()
  90. ENDIF(WIN32)
  91. #===================================
  92. # Find dependencies ================
  93. #===================================
  94. # FreeType
  95. if(CMAKE_MAJOR_VERSION LESS 3)
  96. # Freetype changed the layout of its header files, we need to use
  97. # the FindFreetype module from cmake v3 at least, included here
  98. find_package(Freetype-v2fix REQUIRED)
  99. else()
  100. find_package(Freetype REQUIRED)
  101. endif()
  102. if(FREETYPE_FOUND)
  103. include_directories(${FREETYPE_INCLUDE_DIRS})
  104. link_directories(${FREETYPE_LINK_DIRS})
  105. list(APPEND CORE_LINK_LIBS ${FREETYPE_LIBRARY})
  106. endif()
  107. mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARY FREETYPE_LINK_DIRECTORIES)
  108. # Boost and Python
  109. if(BUILD_PYTHON_BINDINGS)
  110. find_package(PythonInterp 2 REQUIRED)
  111. find_package(PythonLibs 2 REQUIRED)
  112. execute_process(
  113. COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(1,0,prefix=''))"
  114. OUTPUT_VARIABLE PYTHON_INSTDIR
  115. OUTPUT_STRIP_TRAILING_WHITESPACE
  116. )
  117. if(PYTHONLIBS_FOUND)
  118. include_directories(${PYTHON_INCLUDE_DIR})
  119. endif()
  120. #set(Boost_USE_STATIC_LIBS OFF)
  121. #set(Boost_USE_MULTITHREADED ON)
  122. find_package(Boost 1.40.0 COMPONENTS python REQUIRED)
  123. if(Boost_FOUND)
  124. include_directories(${Boost_INCLUDE_DIR})
  125. list(APPEND PY_BINDINGS_LINK_LIBS ${Boost_LIBRARIES})
  126. endif()
  127. endif()
  128. #Lua
  129. if(BUILD_LUA_BINDINGS)
  130. if(CMAKE_MAJOR_VERSION LESS 3)
  131. find_package(Lua-v2fix)
  132. else()
  133. find_package(Lua)
  134. endif()
  135. if(LUA_FOUND)
  136. include_directories(${LUA_INCLUDE_DIR})
  137. list(APPEND LUA_BINDINGS_LINK_LIBS ${LUA_LIBRARIES})
  138. endif()
  139. endif()
  140. #===================================
  141. # Setup paths ======================
  142. #===================================
  143. set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/..)
  144. include_directories(
  145. ${PROJECT_SOURCE_DIR}/Include
  146. )
  147. # Include list of source files
  148. include(FileList)
  149. #===================================
  150. # Build libraries ==================
  151. #===================================
  152. set(LIBRARIES Core Controls Debugger)
  153. foreach(library ${LIBRARIES})
  154. set(NAME Rocket${library})
  155. add_library(${NAME} ${${library}_SRC_FILES}
  156. ${${library}_HDR_FILES}
  157. ${${library}_PUB_HDR_FILES}
  158. ${MASTER_${library}_PUB_HDR_FILES}
  159. )
  160. set_target_properties(${NAME} PROPERTIES
  161. VERSION ${PROJECT_VERSION}
  162. SOVERSION ${LIBROCKET_VERSION_MAJOR}
  163. )
  164. if(APPLE)
  165. if(NOT IOS)
  166. set_target_properties(${NAME} PROPERTIES
  167. OSX_ARCHITECTURES "i386;x86_64;"
  168. )
  169. endif(NOT IOS)
  170. endif(APPLE)
  171. install(TARGETS ${NAME}
  172. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  173. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  174. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  175. )
  176. endforeach(library)
  177. # Build python bindings
  178. if(BUILD_PYTHON_BINDINGS)
  179. set(LIBRARIES core controls)
  180. foreach(library ${LIBRARIES})
  181. set(NAME _rocket${library})
  182. add_library(${NAME} MODULE ${Py${library}_SRC_FILES}
  183. ${Py${library}_HDR_FILES}
  184. ${Py${library}_PUB_HDR_FILES}
  185. )
  186. set_target_properties(${NAME} PROPERTIES PREFIX "")
  187. install(TARGETS ${NAME}
  188. LIBRARY DESTINATION ${PYTHON_INSTDIR}
  189. )
  190. endforeach(library)
  191. endif()
  192. # Build Lua bindings
  193. if(BUILD_LUA_BINDINGS)
  194. set(LIBRARIES Core Controls)
  195. foreach(library ${LIBRARIES})
  196. set(NAME Rocket${library}Lua)
  197. add_library(${NAME} ${Lua${library}_SRC_FILES}
  198. ${Lua${library}_HDR_FILES}
  199. ${Lua${library}_PUB_HDR_FILES}
  200. )
  201. set_target_properties(${NAME} PROPERTIES
  202. VERSION ${PROJECT_VERSION}
  203. SOVERSION ${LIBROCKET_VERSION_MAJOR}
  204. )
  205. if(APPLE)
  206. if(NOT IOS)
  207. set_target_properties(${NAME} PROPERTIES
  208. OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)"
  209. )
  210. endif(NOT IOS)
  211. endif(APPLE)
  212. install(TARGETS ${NAME}
  213. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  214. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  215. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  216. )
  217. endforeach(library)
  218. endif()
  219. #===================================
  220. # Link libraries ===================
  221. #===================================
  222. target_link_libraries(RocketCore ${CORE_LINK_LIBS})
  223. target_link_libraries(RocketControls RocketCore)
  224. target_link_libraries(RocketDebugger RocketCore)
  225. if(BUILD_PYTHON_BINDINGS)
  226. target_link_libraries(_rocketcore RocketCore ${PY_BINDINGS_LINK_LIBS})
  227. target_link_libraries(_rocketcontrols RocketControls ${PY_BINDINGS_LINK_LIBS})
  228. endif()
  229. if(BUILD_LUA_BINDINGS)
  230. target_link_libraries(RocketCoreLua RocketCore ${LUA_BINDINGS_LINK_LIBS})
  231. target_link_libraries(RocketControlsLua RocketControls RocketCoreLua ${LUA_BINDINGS_LINK_LIBS})
  232. endif()
  233. #===================================
  234. # Build samples ====================
  235. #===================================
  236. # Build and link the samples
  237. macro(bl_sample NAME)
  238. if (WIN32)
  239. add_executable(${NAME} WIN32 ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
  240. elseif(APPLE)
  241. add_executable(${NAME} MACOSX_BUNDLE ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
  242. else()
  243. add_executable(${NAME} ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
  244. endif()
  245. if (APPLE)
  246. # We only support i386 for the samples as it still uses Carbon
  247. set_target_properties(${NAME} PROPERTIES OSX_ARCHITECTURES "i386;" )
  248. endif()
  249. target_link_libraries(${NAME} ${ARGN})
  250. endmacro()
  251. if(BUILD_SAMPLES)
  252. include(SampleFileList)
  253. set(samples treeview customlog drag loaddocument)
  254. set(tutorials template datagrid datagrid_tree tutorial_drag)
  255. set(sample_LIBRARIES
  256. shell
  257. RocketCore
  258. RocketControls
  259. RocketDebugger
  260. )
  261. # Find OpenGL
  262. find_package(OpenGL REQUIRED)
  263. if(OPENGL_FOUND)
  264. include_directories(${OPENGL_INCLUDE_DIR})
  265. list(APPEND sample_LIBRARIES ${OPENGL_LIBRARIES})
  266. endif()
  267. # Set up required system libraries
  268. if(WIN32)
  269. if(SKIP_DIRECTX_SAMPLES)
  270. message("-- Skipping all DirectX samples")
  271. else()
  272. message("-- Determing if DirectX samples can be built")
  273. include(FindDirectX)
  274. find_package(DirectX)
  275. if(DirectX_FOUND)
  276. set(DIRECTX_SAMPLE_LIST)
  277. set(DIRECTX_SKIPPED_SAMPLE_LIST)
  278. # We should be able to build DirectX 9 sample
  279. message("-- Determing if DirectX samples can be built - Yes")
  280. if(SKIP_DIRECTX9_SAMPLE)
  281. message("-- Skipping build of DirectX 9 sample: User disabled")
  282. list(APPEND DIRECTX_SKIPPED_SAMPLE_LIST "DirectX9 ")
  283. else()
  284. if(DirectX_LIBRARY)
  285. if(DirectX_D3DX9_LIBRARY)
  286. list(APPEND DIRECTX_SAMPLE_LIST "DirectX9 ")
  287. else()
  288. set(SKIP_DIRECTX9_SAMPLE ON)
  289. message("-- Skipping build of DirectX 9 sample: DirectX_D3DX9_LIBRARY not found")
  290. list(APPEND DIRECTX_SKIPPED_SAMPLE_LIST "DirectX9 ")
  291. endif()
  292. else()
  293. set(SKIP_DIRECTX9_SAMPLE ON)
  294. message("-- Skipping build of DirectX 9 sample: DirectX_LIBRARY not found")
  295. list(APPEND DIRECTX_SKIPPED_SAMPLE_LIST "DirectX9 ")
  296. endif()
  297. endif()
  298. if(SKIP_DIRECTX10_SAMPLE)
  299. message("-- Skipping build of DirectX 10 sample: User disabled")
  300. list(APPEND DIRECTX_SKIPPED_SAMPLE_LIST "DirectX10 ")
  301. else()
  302. if(DirectX_D3D10_FOUND)
  303. list(APPEND DIRECTX_SAMPLE_LIST "DirectX10 ")
  304. else()
  305. set(SKIP_DIRECTX10_SAMPLE ON)
  306. message("-- Skipping build of DirectX 10 sample: Missing DirectX_D3D10_INCLUDE_DIR, DirectX_D3D10_LIBRARY or DirectX_D3DX10_LIBRARY")
  307. list(APPEND DIRECTX_SKIPPED_SAMPLE_LIST "DirectX10 ")
  308. endif()
  309. endif()
  310. if(DIRECTX_SAMPLE_LIST)
  311. message("-- Enabled DirectX samples: " ${DIRECTX_SAMPLE_LIST})
  312. endif()
  313. if(DIRECTX_SKIPPED_SAMPLE_LIST)
  314. message("-- Disabled DirectX samples: " ${DIRECTX_SKIPPED_SAMPLE_LIST})
  315. endif()
  316. else()
  317. message("-- Determing if DirectX samples can be built - No")
  318. set(SKIP_DIRECTX_SAMPLES ON)
  319. set(SKIP_DIRECTX9_SAMPLE ON)
  320. endif()
  321. endif()
  322. elseif(APPLE)
  323. include(FindCarbon)
  324. find_package(Carbon REQUIRED)
  325. if (Carbon_FOUND)
  326. include_directories(${Carbon_INCLUDE_DIR})
  327. list(APPEND sample_LIBRARIES ${Carbon_LIBRARIES})
  328. endif()
  329. else()
  330. find_package(X11 REQUIRED)
  331. if (X11_FOUND)
  332. list(APPEND sample_LIBRARIES ${X11_LIBRARIES})
  333. # shell/src/x11/InputX11.cpp:InitialiseX11Keymap uses Xkb if
  334. # possible instead of XGetKeyboardMapping for performance
  335. if(X11_Xkb_FOUND)
  336. FIND_PACKAGE_MESSAGE(X11 "Found X11 KBlib: ${X11_X11_LIB}" "[${X11_X11_LIB}][${X11_XkbINCLUDE_DIR}]")
  337. add_definitions(-DHAS_X11XKBLIB)
  338. endif()
  339. endif()
  340. endif()
  341. set(SAMPLES_DIR opt/Rocket/Samples CACHE PATH "path to samples dir")
  342. # The samples and tutorials use the shell library
  343. include_directories(${PROJECT_SOURCE_DIR}/Samples/shell/include)
  344. # Build and install sample shell library
  345. add_library(shell STATIC ${shell_SRC_FILES} ${shell_HDR_FILES})
  346. if (APPLE)
  347. # We only support i386 for the samples as it still uses Carbon
  348. set_target_properties(shell PROPERTIES OSX_ARCHITECTURES "i386;")
  349. endif()
  350. # Build and install the basic samples
  351. foreach(sample ${samples})
  352. bl_sample(${sample} ${sample_LIBRARIES})
  353. # The samples always set this as their current working directory
  354. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/${sample})
  355. install(TARGETS ${sample}
  356. RUNTIME DESTINATION ${SAMPLES_DIR}/${sample}
  357. BUNDLE DESTINATION ${SAMPLES_DIR})
  358. endforeach()
  359. if(WIN32)
  360. if(NOT SKIP_DIRECTX9_SAMPLE)
  361. include_directories(${DirectX_INCLUDE_DIR})
  362. bl_sample(directx ${sample_LIBRARIES} ${DirectX_LIBRARY} ${DirectX_D3DX9_LIBRARY})
  363. # The samples always set this as their current working directory
  364. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/directx)
  365. install(TARGETS directx
  366. RUNTIME DESTINATION ${SAMPLES_DIR}/directx
  367. BUNDLE DESTINATION ${SAMPLES_DIR})
  368. endif()
  369. if(NOT SKIP_DIRECTX10_SAMPLE)
  370. include_directories(${DirectX_INCLUDE_DIR} ${DirectX_D3D10_INCLUDE_DIRS})
  371. bl_sample(directx10 ${sample_LIBRARIES} ${DirectX_D3D10_LIBRARIES})
  372. # The samples always set this as their current working directory
  373. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/directx10)
  374. install(TARGETS directx10
  375. RUNTIME DESTINATION ${SAMPLES_DIR}/directx10
  376. BUNDLE DESTINATION ${SAMPLES_DIR})
  377. endif()
  378. endif()
  379. # Build and install the tutorials
  380. foreach(tutorial ${tutorials})
  381. bl_sample(${tutorial} ${sample_LIBRARIES})
  382. # The tutorials always set this as their current working directory
  383. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/tutorial/${tutorial})
  384. install(TARGETS ${tutorial}
  385. RUNTIME DESTINATION ${SAMPLES_DIR}/${tutorial}
  386. BUNDLE DESTINATION ${SAMPLES_DIR})
  387. endforeach()
  388. # Build and install invaders sample
  389. bl_sample(invaders ${sample_LIBRARIES})
  390. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/invaders)
  391. install(TARGETS invaders
  392. RUNTIME DESTINATION ${SAMPLES_DIR}/invaders
  393. BUNDLE DESTINATION ${SAMPLES_DIR})
  394. if(BUILD_PYTHON_BINDINGS)
  395. # Build and install pyinvaders sample
  396. bl_sample(pyinvaders ${sample_LIBRARIES} ${PYTHON_LIBRARIES} ${PY_BINDINGS_LINK_LIBS})
  397. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/pyinvaders)
  398. install(TARGETS pyinvaders
  399. RUNTIME DESTINATION ${SAMPLES_DIR}/pyinvaders
  400. BUNDLE DESTINATION ${SAMPLES_DIR})
  401. endif()
  402. if(BUILD_LUA_BINDINGS)
  403. bl_sample(luainvaders RocketCoreLua RocketControlsLua ${sample_LIBRARIES} ${LUA_BINDINGS_LINK_LIBS})
  404. install(DIRECTORY DESTINATION ${SAMPLES_DIR}/luainvaders)
  405. install(TARGETS luainvaders
  406. RUNTIME DESTINATION ${SAMPLES_DIR}/luainvaders
  407. BUNDLE DESTINATION ${SAMPLES_DIR})
  408. endif()
  409. endif()
  410. #===================================
  411. # Installation =====================
  412. #===================================
  413. if(BUILD_LUA_BINDINGS AND BUILD_PYTHON_BINDINGS)
  414. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
  415. DESTINATION include
  416. )
  417. else()
  418. if(NOT BUILD_LUA_BINDINGS AND NOT BUILD_PYTHON_BINDINGS)
  419. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
  420. DESTINATION include
  421. PATTERN "Python" EXCLUDE
  422. PATTERN "Lua" EXCLUDE
  423. )
  424. else()
  425. if(BUILD_PYTHON_BINDINGS)
  426. install(FILES ${PROJECT_SOURCE_DIR}/bin/rocket.py
  427. DESTINATION ${PYTHON_INSTDIR}
  428. )
  429. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
  430. DESTINATION include
  431. PATTERN "Lua" EXCLUDE
  432. )
  433. else()
  434. if(BUILD_LUA_BINDINGS)
  435. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
  436. DESTINATION include
  437. PATTERN "Python" EXCLUDE
  438. )
  439. else()
  440. message(FATAL_ERROR "ASSERT: Unexpected option combination, this is a logical impossibility.")
  441. endif()
  442. endif()
  443. endif()
  444. endif()
  445. if(BUILD_SAMPLES)
  446. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/assets
  447. DESTINATION ${SAMPLES_DIR}
  448. )
  449. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/template/data
  450. DESTINATION ${SAMPLES_DIR}/tutorial/template
  451. )
  452. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/data
  453. DESTINATION ${SAMPLES_DIR}/tutorial/datagrid
  454. )
  455. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/data
  456. DESTINATION ${SAMPLES_DIR}/tutorial/datagrid_tree
  457. )
  458. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/tutorial_drag/data
  459. DESTINATION ${SAMPLES_DIR}/tutorial/tutorial_drag
  460. )
  461. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/data
  462. DESTINATION ${SAMPLES_DIR}/basic/treeview
  463. )
  464. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/drag/data
  465. DESTINATION ${SAMPLES_DIR}/basic/drag
  466. )
  467. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/invaders/data
  468. DESTINATION ${SAMPLES_DIR}/invaders
  469. )
  470. if(BUILD_PYTHON_BINDINGS)
  471. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/data
  472. DESTINATION ${SAMPLES_DIR}/pyinvaders
  473. )
  474. endif()
  475. if(BUILD_LUA_BINDINGS)
  476. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/luainvaders/data
  477. DESTINATION ${SAMPLES_DIR}/luainvaders
  478. )
  479. install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/luainvaders/lua
  480. DESTINATION ${SAMPLES_DIR}/luainvaders
  481. )
  482. endif()
  483. endif()