CMakeLists.txt 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. cmake_minimum_required(VERSION 2.6)
  2. project(QGears)
  3. set (CMAKE_PACKAGE_ICON q-gears.png)
  4. #set( CMAKE_VERBOSE_MAKEFILE on )
  5. # The version number.
  6. set(QGears_VERSION_MAJOR 0)
  7. set(QGears_VERSION_MINOR 22)
  8. set(QGears_VERSION_PATCH 0)
  9. # Enable Visual Studio solution "folders"
  10. SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
  11. #if (APPLE)
  12. #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
  13. #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
  14. #set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32")
  15. #endif()
  16. set(CMAKE_FRAMEWORK_PATH
  17. ${CMAKE_FRAMEWORK_PATH}
  18. ${CMAKE_CURRENT_SOURCE_DIR}/OgreSDK/lib/macosx/Release
  19. ${CMAKE_CURRENT_SOURCE_DIR}/OgreSDK/lib/macosx/Debug
  20. )
  21. set(OGRE_FRAMEWORK_INCLUDES
  22. ${CMAKE_CURRENT_SOURCE_DIR}/OgreSDK/include
  23. )
  24. option(QGears_BUILD_PLUGINS "Build the plugins" TRUE)
  25. option(QGears_BUILD_UTILITIES "Build the utilities" TRUE)
  26. option(QGears_BUILD_TESTS "Build the unit tests" TRUE)
  27. option(QGears_MULTITHREADING "Enable multithreading" FALSE)
  28. option(QGears_SOUND "Enable Sound" FALSE)
  29. find_path(OGRE_CMAKE_MODULE_PATH FindOGRE.cmake
  30. HINTS
  31. "$ENV{OGRE_HOME}/CMake/"
  32. "/usr/local/lib/OGRE/cmake"
  33. "/usr/lib/OGRE/cmake"
  34. "/usr/share/OGRE/cmake/modules"
  35. "${CMAKE_CURRENT_SOURCE_DIR}/OgreSDK/CMake"
  36. )
  37. if(OGRE_CMAKE_MODULE_PATH-NOTFOUND)
  38. message(SEND_ERROR "Failed to find OGRE module path.")
  39. else()
  40. set(CMAKE_MODULE_PATH "${OGRE_CMAKE_MODULE_PATH};${CMAKE_MODULE_PATH}")
  41. endif()
  42. set(CMAKE_MODULE_PATH "${OGRE_CMAKE_MODULE_PATH};${CMAKE_MODULE_PATH}")
  43. set(CMAKE_MODULE_PATH
  44. "${CMAKE_MODULE_PATH}"
  45. "${QGears_SOURCE_DIR}/CMake"
  46. )
  47. if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
  48. # CMake defaults to leaving CMAKE_BUILD_TYPE empty. This screws up
  49. # differentiation between debug and release builds.
  50. set(CMAKE_BUILD_TYPE "release" CACHE STRING "Choose the type of build, options are: None (CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
  51. message("RELEASE set")
  52. endif ()
  53. set(CMAKE_DEBUG_POSTFIX "_d")
  54. if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  55. set(CMAKE_INSTALL_PREFIX
  56. "${QGears_SOURCE_DIR}/output" CACHE PATH "Q-Gears install prefix" FORCE
  57. )
  58. endif()
  59. find_package(Qt4 REQUIRED)
  60. find_package(ZLIB REQUIRED)
  61. find_package(OGRE REQUIRED)
  62. find_package(OIS REQUIRED)
  63. if(NOT OIS_FOUND)
  64. message(SEND_ERROR "Failed to find OIS.")
  65. endif()
  66. # Find Boost
  67. if (NOT OGRE_BUILD_PLATFORM_IPHONE)
  68. if (WIN32)
  69. set(Boost_USE_STATIC_LIBS TRUE)
  70. else ()
  71. # Statically linking boost to a dynamic Ogre build doesn't work on Linux 64bit
  72. set(Boost_USE_STATIC_LIBS ${OGRE_STATIC})
  73. endif ()
  74. if (MINGW)
  75. # this is probably a bug in CMake: the boost find module tries to look for
  76. # boost libraries with name libboost_*, but CMake already prefixes library
  77. # search names with "lib". This is the workaround.
  78. set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} "")
  79. endif ()
  80. set(Boost_ADDITIONAL_VERSIONS "1.55" "1.55.0" "1.53" "1.53.0" "1.52" "1.52.0" "1.51" "1.51.0" "1.50" "1.50.0" "1.49" "1.49.0" "1.48" "1.48.0" "1.47" "1.47.0" "1.46" "1.46.0" "1.45" "1.45.0" "1.44" "1.44.0" "1.42" "1.42.0" "1.41.0" "1.41" "1.40.0" "1.40")
  81. # Components that need linking (NB does not include header-only components like bind)
  82. set(OGRE_BOOST_COMPONENTS thread date_time)
  83. find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} QUIET)
  84. if (NOT Boost_FOUND)
  85. set(Boost_USE_STATIC_LIBS NOT ${Boost_USE_STATIC_LIBS})
  86. find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} QUIET)
  87. endif()
  88. if(Boost_FOUND AND Boost_VERSION GREATER 104900)
  89. set(OGRE_BOOST_COMPONENTS thread date_time system chrono)
  90. find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} QUIET)
  91. endif()
  92. # Set up referencing of Boost
  93. include_directories(${Boost_INCLUDE_DIR})
  94. if (NOT APPLE)
  95. add_definitions(-DBOOST_ALL_NO_LIB)
  96. endif()
  97. set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
  98. find_package(Boost COMPONENTS program_options filesystem QUIET)
  99. set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
  100. set(QGears_LIBRARIES ${OGRE_LIBRARIES})
  101. if(QGears_SOUND)
  102. find_package(OpenAL REQUIRED)
  103. find_package(OggVorbis REQUIRED)
  104. add_definitions(-DQGears_SOUND)
  105. set(QGears_LIBRARIES
  106. ${QGears_LIBRARIES}
  107. ${OPENAL_LIBRARY}
  108. ${OGGVORBIS_LIBRARIES}
  109. )
  110. endif()
  111. if(QGears_MULTITHREADING)
  112. # Find Threads
  113. find_package (Threads REQUIRED)
  114. set(QGears_LIBRARIES
  115. ${QGears_LIBRARIES}
  116. ${CMAKE_THREAD_LIBS_INIT}
  117. )
  118. endif()
  119. if(QGears_BUILD_TESTS)
  120. message(STATUS "Looking for boost unit test..")
  121. find_package(Boost COMPONENTS unit_test_framework REQUIRED)
  122. set(QGears_TEST_LIBRARIES
  123. ${OGRE_LIBRARIES}
  124. ${Boost_LIBRARIES}
  125. )
  126. message(STATUS "Test libs = ${QGears_TEST_LIBRARIES}")
  127. # enable CTest
  128. enable_testing()
  129. endif()
  130. endif()
  131. set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_Overlay_LIBRARIES})
  132. find_package(Boost COMPONENTS unit_test_framework REQUIRED)
  133. if (Boost_LIBRARIES STREQUAL "")
  134. message(SEND_ERROR "Boost_LIBRARIES is not set")
  135. endif()
  136. set(QGears_INCLUDE_DIRS
  137. ${OIS_INCLUDE_DIRS}
  138. ${OGRE_INCLUDE_DIRS}
  139. ${OGRE_Overlay_INCLUDE_DIRS}
  140. ${OGRE_SAMPLES_INCLUDEPATH}
  141. ${CMAKE_CURRENT_SOURCE_DIR}/dependencies
  142. ${CMAKE_CURRENT_BINARY_DIR}/dependencies/luajit
  143. ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luajit/src
  144. ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind
  145. ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind/luabind/detail
  146. ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/tinyxml
  147. )
  148. if (MSVC)
  149. # Build cpp files on all cores
  150. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
  151. else()
  152. # Enable C++11, you may need to use -std=c++0x if using an older gcc compiler
  153. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC")
  154. endif()
  155. add_definitions(-DTIXML_USE_STL)
  156. add_subdirectory(dependencies)
  157. add_subdirectory(QGearsMain)
  158. add_subdirectory(SupportedGames)
  159. if(QGears_BUILD_PLUGINS)
  160. add_subdirectory(PlugIns)
  161. endif()
  162. if(QGears_BUILD_UTILITIES)
  163. add_subdirectory(utilities)
  164. endif()
  165. if(QGears_BUILD_TESTS)
  166. add_subdirectory(Tests)
  167. endif()
  168. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output)
  169. # Set generic CPack properties
  170. # DO NOT include on win32 - causes CRT dlls to be included
  171. #INCLUDE(InstallRequiredSystemLibraries)
  172. set(CPACK_PACKAGE_NAME "q-gears")
  173. SET(CPACK_PACKAGE_VERSION ${QGears_VERSION_MAJOR}.${QGears_VERSION_MINOR}.${QGears_VERSION_PATCH})
  174. SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A Free Final Fantasy VII Engine")
  175. # TODO: Need to set these up properly, installing build instructions is a bit strange :)
  176. SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING.txt")
  177. #SET(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/readme.md")
  178. MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
  179. MESSAGE( STATUS "BOOST_ROOT: " ${BOOST_ROOT} )
  180. #OS SPECIFIC
  181. if(WIN32)
  182. # On Windows generate MSI packages
  183. SET(CPACK_GENERATOR "WIX")
  184. set(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/wix.template.in")
  185. SET(CPACK_WIX_UPGRADE_GUID 8fbb893f-5622-4f6d-a7f6-c221f7be5d52)
  186. # TODO: Set MSI banner image, copyright info etc, also include startmenu/desktop shortcuts
  187. #set the name of the installer default formating is name-version-os
  188. # If empty assume release
  189. if ("${CMAKE_BUILD_TYPE}" STREQUAL "" OR "${CMAKE_BUILD_TYPE}" STREQUAL "release")
  190. message("RELEASE installer build")
  191. install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
  192. install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
  193. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OgreMain.dll DESTINATION ./)
  194. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/RenderSystem_GL.dll DESTINATION ./)
  195. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OGREOVERLAY.DLL DESTINATION ./)
  196. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
  197. install(FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION ./)
  198. install(FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION ./)
  199. else()
  200. message("DEBUG installer build")
  201. install(FILES ${PROJECT_SOURCE_DIR}/output/resources_d.cfg DESTINATION ./)
  202. install(FILES ${PROJECT_SOURCE_DIR}/output/plugins_d.cfg DESTINATION ./)
  203. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OgreMain_d.dll DESTINATION ./)
  204. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/RenderSystem_GL_d.dll DESTINATION ./)
  205. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OGREOVERLAY_D.DLL DESTINATION ./)
  206. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OIS_D.DLL DESTINATION ./)
  207. install(FILES ${QT_PLUGINS_DIR}/../bin/QtCored4.dll DESTINATION ./)
  208. install(FILES ${QT_PLUGINS_DIR}/../bin/QtGuid4.dll DESTINATION ./)
  209. endif()
  210. elseif(APPLE)
  211. # APPLE is also UNIX, so must check for APPLE before UNIX
  212. SET(CPACK_GENERATOR "DragNDrop")
  213. install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
  214. install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
  215. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/Ogre.framework/Ogre DESTINATION ./)
  216. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/RenderSystem_GL.framework/Versions/1.9.0/RenderSystem_GL DESTINATION ./)
  217. install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/OgreOverlay.framework/Versions/1.9.0/OgreOverlay DESTINATION ./)
  218. # TODO: Fix up other files and use "otool" to fix dynlib + framework paths
  219. #install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
  220. #install(FILES "${BOOST_ROOT}/stage/lib/BOOST_SYSTEM-VC120-MT-1_55.DLL" DESTINATION ./)
  221. elseif(UNIX)
  222. <<<<<<< HEAD
  223. # On Linux generate TAR.GZ,DEB and RPM packages
  224. #Find out what architecture are we running on and set the package architecture
  225. # set the generic files needing to be installed
  226. install( FILES ${PROJECT_SOURCE_DIR}/q-gears.png DESTINATION ./share/pixmaps/ )
  227. install( FILES ${PROJECT_SOURCE_DIR}/q-gears.desktop DESTINATION ./share/applications/ )
  228. install( FILES ${PROJECT_SOURCE_DIR}/debian/menu DESTINATION share/menu/ RENAME q-gears )
  229. install( FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg_linux DESTINATION share/q-gears/ RENAME plugins.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
  230. install( FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg_linux DESTINATION share/q-gears/ RENAME resources.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
  231. install( FILES ${PROJECT_SOURCE_DIR}/output/q-gears.cfg_linux DESTINATION share/q-gears/ RENAME q-gears.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
  232. #attempt to install a simlink to gl rendersystem from ogre
  233. if(EXISTS "/usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so")
  234. EXECUTE_PROCESS( COMMAND ln -s /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so ${PROJECT_SOURCE_DIR}/output/RenderSystem_GL.so.1.9.0 )
  235. elseif(EXISTS "/usr/lib/i386-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so")
  236. EXECUTE_PROCESS( COMMAND ln -s /usr/lib/i386-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so ${PROJECT_SOURCE_DIR}/output/RenderSystem_GL.so.1.9.0 )
  237. endif()
  238. install( FILES ${PROJECT_SOURCE_DIR}/output/RenderSystem_GL.so.1.9.0 DESTINATION share/q-gears/plugins/ )
  239. SET(CPACK_SOURCE_GENERATOR "TGZ;TZ")
  240. SET(CPACK_GENERATOR "TGZ")
  241. #detect Distro Family DEB , RPM
  242. if(EXISTS "/etc/lsb-release")
  243. set(DistroType DEB)
  244. elseif(EXISTS "/etc/debian_release")
  245. set(DistroType DEB)
  246. elseif(EXISTS "/etc/fedora-release")
  247. set(DistroType RPM)
  248. endif()
  249. message(STATUS "Distro Detected: ${DistroType} ")
  250. if(DistroType MATCHES "DEB")
  251. # Setup DEB package properties
  252. MESSAGE(STATUS "DEB ADDED TO GENERATION LIST")
  253. SET(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
  254. endif()
  255. if(EXISTS "/usr/bin/rpmbuild")
  256. MESSAGE(STATUS "RPM ADDED TO GENERATION LIST (RPM IS DISABLED IN CMAKELISTS)")
  257. # Uncomment to allow for rpm files to be built.
  258. # SET(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
  259. endif()
  260. # Setup DEB package properties
  261. SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Chris Rizzitello <sithlord48@gmail.com>")
  262. #Set DEBIAN INFO
  263. SET(CPACK_DEBIAN_PACKAGE_SECTION games)
  264. SET(CPACK_DEBIAN_PACKAGE_PRIORITY extra)
  265. #SET(CPACK_PACKAGE_EXECUTABLE )
  266. EXECUTE_PROCESS(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
  267. MESSAGE (STATUS "Architecture: ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
  268. #we should need no longer need postinst since we have added extra install steps to what it would.
  269. #SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_SOURCE_DIR}/debian/postinst )
  270. #set the name to be debian package like.
  271. SET(CPACK_PACKAGE_FILE_NAME "q-gears_${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
  272. #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9, libois,libboost-program-options,libboost-filesystem,libvorbis,libopenal,libboost-test,zlib1g")
  273. SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9.0, libois-1.3.0,libboost-program-options1.54.0,libboost-filesystem1.54.0,libvorbis0a,libvorbisfile3,libvorbisenc2,libopenal1,libboost-test1.54.0,zlib1g,liblua5.1-0")
  274. #Set RPM info
  275. SET(CPACK_RPM_PACKAGE_SUMMARY CPACK_PACKAGE_DESCRIPTION_SUMMARY)
  276. SET(CPACK_RPM_PACKAGE_NAME CPACK_PACKAGE_NAME)
  277. SET(CPACK_RPM_PACKAGE_VERSION CPACK_PACKAGE_VERSION)
  278. SET(CPACK_RPM_PACKAGE_RELEASE 1)
  279. SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3+")
  280. SET(CPACK_RPM_PACKAGE_GROUP games)
  281. SET(CPACK_RPM_PACKAGE_VENDOR)
  282. SET(CPACK_RPM_PACKAGE_DESCRIPTION)
  283. #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
  284. #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
  285. =======
  286. # On Linux generate TAR.GZ,DEB and RPM packages
  287. #Find out what architecture are we running on and set the package architecture
  288. # set the generic files needing to be installed
  289. install( FILES ${PROJECT_SOURCE_DIR}/q-gears.png DESTINATION ./share/pixmaps/ )
  290. install( FILES ${PROJECT_SOURCE_DIR}/q-gears.desktop DESTINATION ./share/applications/ )
  291. install( FILES ${PROJECT_SOURCE_DIR}/debian/menu DESTINATION share/menu/ RENAME q-gears )
  292. install( FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg_linux DESTINATION share/q-gears/ RENAME plugins.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
  293. install( FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg_linux DESTINATION share/q-gears/ RENAME resources.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
  294. install( FILES ${PROJECT_SOURCE_DIR}/output/q-gears.cfg_linux DESTINATION share/q-gears/ RENAME q-gears.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
  295. if(EXISTS "/usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so")
  296. install( FILES /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so DESTINATION share/q-gears/plugins/ RENAME RenderSystem_GL.so.1.9.0 )
  297. endif()
  298. SET(CPACK_SOURCE_GENERATOR "TGZ;TZ")
  299. SET(CPACK_GENERATOR "TGZ")
  300. #detect Distro Family DEB , RPM
  301. if(EXISTS "/etc/lsb-release")
  302. set(DistroType DEB)
  303. elseif(EXISTS "/etc/debian_release")
  304. set(DistroType DEB)
  305. elseif(EXISTS "/etc/fedora-release")
  306. set(DistroType RPM)
  307. endif()
  308. message(STATUS "Distro Detected: ${DistroType} ")
  309. if(DistroType MATCHES "DEB")
  310. # Setup DEB package properties
  311. MESSAGE(STATUS "DEB ADDED TO GENERATION LIST")
  312. SET(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
  313. endif()
  314. if(EXISTS "/usr/bin/rpmbuild")
  315. MESSAGE(STATUS "RPM ADDED TO GENERATION LIST (RPM IS DISABLED IN CMAKELISTS)")
  316. # Uncomment to allow for rpm files to be built.
  317. # SET(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
  318. endif()
  319. # Setup DEB package properties
  320. SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Chris Rizzitello <sithlord48@gmail.com>")
  321. #Set DEBIAN INFO
  322. SET(CPACK_DEBIAN_PACKAGE_SECTION games)
  323. SET(CPACK_DEBIAN_PACKAGE_PRIORITY extra)
  324. #SET(CPACK_PACKAGE_EXECUTABLE )
  325. EXECUTE_PROCESS(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
  326. MESSAGE (STATUS "Architecture: ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
  327. #we should need no longer need postinst since we have added extra install steps to what it would.
  328. #SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_SOURCE_DIR}/debian/postinst )
  329. #set the name to be debian package like.
  330. SET(CPACK_PACKAGE_FILE_NAME "q-gears_${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
  331. #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9, libois,libboost-program-options,libboost-filesystem,libvorbis,libopenal,libboost-test,zlib1g")
  332. SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9.0, libois-1.3.0,libboost-program-options1.54.0,libboost-filesystem1.54.0,libvorbis0a,libvorbisfile3,libvorbisenc2,libopenal1,libboost-test1.54.0,zlib1g,liblua5.1-0")
  333. #Set RPM info
  334. SET(CPACK_RPM_PACKAGE_SUMMARY CPACK_PACKAGE_DESCRIPTION_SUMMARY)
  335. SET(CPACK_RPM_PACKAGE_NAME CPACK_PACKAGE_NAME)
  336. SET(CPACK_RPM_PACKAGE_VERSION CPACK_PACKAGE_VERSION)
  337. SET(CPACK_RPM_PACKAGE_RELEASE 1)
  338. SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3+")
  339. SET(CPACK_RPM_PACKAGE_GROUP games)
  340. SET(CPACK_RPM_PACKAGE_VENDOR)
  341. SET(CPACK_RPM_PACKAGE_DESCRIPTION)
  342. #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
  343. #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
  344. >>>>>>> e41cccaa5f4ea95e769138c569a01b867c7f6486
  345. endif()
  346. SET_PROPERTY(TARGET liblua PROPERTY FOLDER "3rdparty")
  347. SET_PROPERTY(TARGET buildvm PROPERTY FOLDER "3rdparty")
  348. SET_PROPERTY(TARGET LuaBind PROPERTY FOLDER "3rdparty")
  349. SET_PROPERTY(TARGET luajit PROPERTY FOLDER "3rdparty")
  350. SET_PROPERTY(TARGET minilua PROPERTY FOLDER "3rdparty")
  351. SET_PROPERTY(TARGET TinyXml PROPERTY FOLDER "3rdparty")
  352. INCLUDE(CPack)
  353. #End of install instructions