CMakeLists.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. set_source_files_properties(${libobs-opengl_PLATFORM_SOURCES}
  15. PROPERTIES
  16. LANGUAGE C)
  17. find_library(COCOA Cocoa)
  18. include_directories(${COCOA})
  19. mark_as_advanced(COCOA)
  20. find_library(IOSURF IOSurface)
  21. include_directories(${IOSURF})
  22. mark_as_advanced(${IOSURF})
  23. set(libobs-opengl_PLATFORM_DEPS
  24. ${COCOA}
  25. ${IOSURF}
  26. ${OPENGL_gl_LIBRARY})
  27. else() #This needs to change to be more specific to get ready for Wayland
  28. find_package(XCB COMPONENTS XCB REQUIRED)
  29. find_package(X11_XCB REQUIRED)
  30. include_directories(
  31. ${XCB_INCLUDE_DIRS}
  32. ${X11_XCB_INCLUDE_DIRS})
  33. add_definitions(
  34. ${XCB_DEFINITIONS}
  35. ${X11_XCB_DEFINITIONS})
  36. set(libobs-opengl_PLATFORM_DEPS
  37. ${XCB_LIBRARIES}
  38. ${X11_XCB_LIBRARIES})
  39. set(libobs-opengl_PLATFORM_SOURCES
  40. gl-x11.c)
  41. endif()
  42. set(libobs-opengl_SOURCES
  43. ${libobs-opengl_PLATFORM_SOURCES}
  44. gl-helpers.c
  45. gl-indexbuffer.c
  46. gl-shader.c
  47. gl-shaderparser.c
  48. gl-stagesurf.c
  49. gl-subsystem.c
  50. gl-texture2d.c
  51. gl-texture3d.c
  52. gl-texturecube.c
  53. gl-vertexbuffer.c
  54. gl-zstencil.c)
  55. set(libobs-opengl_HEADERS
  56. gl-helpers.h
  57. gl-shaderparser.h
  58. gl-subsystem.h)
  59. if(WIN32 OR APPLE)
  60. add_library(libobs-opengl MODULE
  61. ${libobs-opengl_SOURCES}
  62. ${libobs-opengl_HEADERS})
  63. else()
  64. add_library(libobs-opengl SHARED
  65. ${libobs-opengl_SOURCES}
  66. ${libobs-opengl_HEADERS})
  67. endif()
  68. if(WIN32 OR APPLE)
  69. set_target_properties(libobs-opengl
  70. PROPERTIES
  71. FOLDER "core"
  72. OUTPUT_NAME libobs-opengl
  73. PREFIX "")
  74. else()
  75. set_target_properties(libobs-opengl
  76. PROPERTIES
  77. FOLDER "core"
  78. OUTPUT_NAME obs-opengl
  79. VERSION 0.0
  80. SOVERSION 0
  81. )
  82. endif()
  83. target_link_libraries(libobs-opengl
  84. libobs
  85. glad
  86. ${libobs-opengl_PLATFORM_DEPS})
  87. install_obs_core(libobs-opengl)