CMakeLists.txt 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. project(libobs-opengl)
  2. find_package(OpenGL REQUIRED)
  3. include_directories(${OPENGL_INCLUDE_DIR})
  4. add_definitions(-DLIBOBS_EXPORTS)
  5. if(WIN32)
  6. set(MODULE_DESCRIPTION "OBS Library OpenGL wrapper")
  7. configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in libobs-opengl.rc)
  8. set(libobs-opengl_PLATFORM_SOURCES
  9. gl-windows.c
  10. libobs-opengl.rc)
  11. elseif(APPLE)
  12. set(libobs-opengl_PLATFORM_SOURCES
  13. gl-cocoa.m)
  14. find_library(COCOA Cocoa)
  15. include_directories(${COCOA})
  16. mark_as_advanced(COCOA)
  17. find_library(IOSURF IOSurface)
  18. include_directories(${IOSURF})
  19. mark_as_advanced(${IOSURF})
  20. set(libobs-opengl_PLATFORM_DEPS
  21. ${COCOA}
  22. ${IOSURF}
  23. ${OPENGL_gl_LIBRARY})
  24. else()
  25. find_package(XCB COMPONENTS XCB REQUIRED)
  26. find_package(X11_XCB REQUIRED)
  27. include_directories(
  28. ${XCB_INCLUDE_DIRS}
  29. ${X11_XCB_INCLUDE_DIRS})
  30. add_definitions(
  31. ${XCB_DEFINITIONS}
  32. ${X11_XCB_DEFINITIONS})
  33. set(libobs-opengl_PLATFORM_DEPS
  34. ${XCB_LIBRARIES}
  35. ${X11_XCB_LIBRARIES})
  36. set(libobs-opengl_PLATFORM_SOURCES
  37. gl-egl-common.c
  38. gl-nix.c
  39. gl-x11-egl.c
  40. gl-x11-glx.c)
  41. if(ENABLE_WAYLAND)
  42. find_package(EGL REQUIRED)
  43. find_package(Wayland REQUIRED)
  44. include_directories(
  45. ${WAYLAND_CLIENT_INCLUDE_DIRS}
  46. ${WAYLAND_EGL_INCLUDE_DIRS}
  47. ${EGL_INCLUDE_DIRS})
  48. add_definitions(
  49. ${WAYLAND_DEFINITIONS})
  50. set(libobs-opengl_PLATFORM_DEPS
  51. ${libobs-opengl_PLATFORM_DEPS}
  52. ${WAYLAND_CLIENT_LIBRARIES}
  53. ${WAYLAND_EGL_LIBRARIES}
  54. ${EGL_LIBRARIES})
  55. set(libobs-opengl_PLATFORM_SOURCES
  56. ${libobs-opengl_PLATFORM_SOURCES}
  57. gl-wayland-egl.c)
  58. endif()
  59. endif()
  60. set(libobs-opengl_SOURCES
  61. ${libobs-opengl_PLATFORM_SOURCES}
  62. gl-helpers.c
  63. gl-indexbuffer.c
  64. gl-shader.c
  65. gl-shaderparser.c
  66. gl-stagesurf.c
  67. gl-subsystem.c
  68. gl-texture2d.c
  69. gl-texture3d.c
  70. gl-texturecube.c
  71. gl-vertexbuffer.c
  72. gl-zstencil.c)
  73. set(libobs-opengl_HEADERS
  74. gl-helpers.h
  75. gl-shaderparser.h
  76. gl-subsystem.h)
  77. if(WIN32 OR APPLE)
  78. add_library(libobs-opengl MODULE
  79. ${libobs-opengl_SOURCES}
  80. ${libobs-opengl_HEADERS})
  81. else()
  82. add_library(libobs-opengl SHARED
  83. ${libobs-opengl_SOURCES}
  84. ${libobs-opengl_HEADERS})
  85. endif()
  86. if(WIN32 OR APPLE)
  87. set_target_properties(libobs-opengl
  88. PROPERTIES
  89. FOLDER "core"
  90. OUTPUT_NAME libobs-opengl
  91. PREFIX "")
  92. else()
  93. set_target_properties(libobs-opengl
  94. PROPERTIES
  95. FOLDER "core"
  96. OUTPUT_NAME obs-opengl
  97. VERSION 0.0
  98. SOVERSION 0
  99. )
  100. endif()
  101. target_link_libraries(libobs-opengl
  102. libobs
  103. glad
  104. ${libobs-opengl_PLATFORM_DEPS})
  105. install_obs_core(libobs-opengl)