CMakeLists.txt 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. add_library(libobs-metal SHARED)
  3. add_library(OBS::libobs-metal ALIAS libobs-metal)
  4. target_sources(
  5. libobs-metal
  6. PRIVATE
  7. CVPixelFormat+Extensions.swift
  8. MTLCullMode+Extensions.swift
  9. MTLOrigin+Extensions.swift
  10. MTLPixelFormat+Extensions.swift
  11. MTLRegion+Extensions.swift
  12. MTLSize+Extensions.swift
  13. MTLTexture+Extensions.swift
  14. MTLTextureDescriptor+Extensions.swift
  15. MTLTextureType+Extensions.swift
  16. MTLViewport+Extensions.swift
  17. MetalBuffer.swift
  18. MetalDevice.swift
  19. MetalError.swift
  20. MetalRenderState.swift
  21. MetalShader+Extensions.swift
  22. MetalShader.swift
  23. MetalStageBuffer.swift
  24. MetalTexture.swift
  25. OBSShader.swift
  26. OBSSwapChain.swift
  27. Sequence+Hashable.swift
  28. libobs+Extensions.swift
  29. libobs+SignalHandlers.swift
  30. libobs-metal-Bridging-Header.h
  31. metal-indexbuffer.swift
  32. metal-samplerstate.swift
  33. metal-shader.swift
  34. metal-stagesurf.swift
  35. metal-subsystem.swift
  36. metal-swapchain.swift
  37. metal-texture2d.swift
  38. metal-texture3d.swift
  39. metal-unimplemented.swift
  40. metal-vertexbuffer.swift
  41. metal-zstencilbuffer.swift
  42. )
  43. target_link_libraries(libobs-metal PRIVATE OBS::libobs)
  44. target_enable_feature(libobs "Metal renderer")
  45. set_property(SOURCE OBSMetalRenderer.swift APPEND PROPERTY COMPILE_FLAGS -emit-objc-header)
  46. set_target_properties_obs(
  47. libobs-metal
  48. PROPERTIES FOLDER core
  49. VERSION 0
  50. PREFIX ""
  51. )
  52. set_target_xcode_properties(
  53. libobs-metal
  54. PROPERTIES SWIFT_VERSION 6.0
  55. CLANG_ENABLE_OBJC_ARC YES
  56. CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
  57. GCC_WARN_SHADOW YES
  58. CLANG_ENABLE_MODULES YES
  59. CLANG_MODULES_AUTOLINK YES
  60. GCC_STRICT_ALIASING YES
  61. DEFINES_MODULE YES
  62. SWIFT_OBJC_BRIDGING_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/libobs-metal-Bridging-Header.h"
  63. )