CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. cmake_minimum_required(VERSION 2.8.7)
  2. project(citra)
  3. SET(CXX_COMPILE_FLAGS "-std=c++11")
  4. # silence some spam
  5. add_definitions(-Wno-attributes)
  6. add_definitions(-DSINGLETHREADED)
  7. add_definitions(${CXX_COMPILE_FLAGS})
  8. find_package(PNG)
  9. if (PNG_FOUND)
  10. add_definitions(-DHAVE_PNG)
  11. endif ()
  12. # dependency checking
  13. list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules/")
  14. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests)
  15. include(FindX11 REQUIRED)
  16. find_package(PkgConfig REQUIRED)
  17. find_package(GLEW REQUIRED)
  18. find_package(OpenGL REQUIRED)
  19. pkg_search_module(GLFW REQUIRED glfw3)
  20. # corefoundation is required only on OSX
  21. IF (APPLE)
  22. FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation)
  23. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
  24. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
  25. ENDIF (APPLE)
  26. #external includes
  27. include_directories(${GLFW_INCLUDE_DIRS})
  28. include_directories(${OPENGL_INCLUDE_DIR})
  29. include_directories(${GLEW_INCLUDE_PATH})
  30. # workaround for GLFW linking on OSX
  31. link_directories(${GLFW_LIBRARY_DIRS})
  32. option(DISABLE_QT "Disable Qt GUI" OFF)
  33. option(USE_QT5 "Use Qt5 when available" ON)
  34. if (NOT DISABLE_QT)
  35. if(USE_QT5)
  36. find_package(Qt5Gui)
  37. find_package(Qt5Widgets)
  38. find_package(Qt5OpenGL)
  39. if(NOT Qt5Gui_FOUND OR NOT Qt5Widgets_FOUND OR NOT Qt5OpenGL_FOUND)
  40. message("Qt5 libraries not found! Using Qt4 instead.")
  41. set(USE_QT5 OFF)
  42. endif()
  43. endif()
  44. if(NOT USE_QT5)
  45. include(FindQt4)
  46. find_package(Qt4 COMPONENTS QtCore QtGui QtOpenGL)
  47. if(QT4_FOUND AND QT_QTCORE_FOUND AND QT_QTGUI_FOUND AND QT_QTOPENGL_FOUND)
  48. include(${QT_USE_FILE})
  49. include_directories(${QT_INCLUDES})
  50. else()
  51. message("Qt4 libraries not found! Disabling Qt GUI")
  52. set(DISABLE_QT ON)
  53. endif()
  54. endif()
  55. endif()
  56. # generate git revision information
  57. include(GetGitRevisionDescription)
  58. get_git_head_revision(GIT_REF_SPEC GIT_REV)
  59. git_describe(GIT_DESC --always --long --dirty)
  60. git_branch_name(GIT_BRANCH)
  61. # internal includes
  62. include_directories(src)
  63. # process subdirectories
  64. if(NOT DISABLE_QT)
  65. include_directories(externals/qhexedit)
  66. add_subdirectory(externals/qhexedit)
  67. endif()
  68. add_subdirectory(src)