浏览代码

libobs-opengl: Update CMake formatting with manual format choices

PatTheMav 2 年之前
父节点
当前提交
f7d6593a25
共有 1 个文件被更改,包括 40 次插入36 次删除
  1. 40 36
      libobs-opengl/CMakeLists.txt

+ 40 - 36
libobs-opengl/CMakeLists.txt

@@ -9,9 +9,31 @@ if(NOT TARGET OBS::glad)
   add_subdirectory("${CMAKE_SOURCE_DIR}/deps/glad" "${CMAKE_BINARY_DIR}/deps/glad")
 endif()
 
+if(OS_LINUX
+   OR OS_FREEBSD
+   OR OS_OPENBSD)
+  find_package(X11 REQUIRED)
+  # cmake-format: off
+  find_package(xcb REQUIRED xcb)
+  # cmake-format: on
+  find_package(x11-xcb REQUIRED)
+
+  if(ENABLE_WAYLAND)
+    find_package(OpenGL REQUIRED EGL)
+    find_package(Wayland REQUIRED)
+  endif()
+endif()
+
 target_sources(
   libobs-opengl
-  PRIVATE gl-helpers.c
+  PRIVATE # cmake-format: sortable
+          $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:gl-wayland-egl.c>
+          $<$<PLATFORM_ID:Darwin>:gl-cocoa.m>
+          $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:gl-egl-common.c>
+          $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:gl-nix.c>
+          $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:gl-x11-egl.c>
+          $<$<PLATFORM_ID:Windows>:gl-windows.c>
+          gl-helpers.c
           gl-helpers.h
           gl-indexbuffer.c
           gl-shader.c
@@ -26,51 +48,33 @@ target_sources(
           gl-vertexbuffer.c
           gl-zstencil.c)
 
-target_link_libraries(libobs-opengl PRIVATE OBS::libobs OBS::glad)
-
-if(OS_WINDOWS)
-  configure_file(cmake/windows/obs-module.rc.in libobs-opengl.rc)
-
-  target_sources(libobs-opengl PRIVATE gl-windows.c libobs-opengl.rc)
-elseif(OS_MACOS)
-  find_library(COCOA Cocoa)
-  find_library(IOSURF IOSurface)
+target_compile_options(libobs-opengl PRIVATE $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-strict-prototypes>)
 
-  target_sources(libobs-opengl PRIVATE gl-cocoa.m)
-  target_compile_definitions(libobs-opengl PRIVATE GL_SILENCE_DEPRECATION)
-  target_compile_options(libobs-opengl PRIVATE -Wno-strict-prototypes)
+target_compile_definitions(libobs-opengl PRIVATE $<$<PLATFORM_ID:Darwin>:GL_SILENCE_DEPRECATION>)
 
-  target_link_libraries(libobs-opengl PRIVATE ${COCOA} ${IOSURF})
-elseif(OS_LINUX OR OS_FREEBSD)
-  find_package(X11 REQUIRED)
-  find_package(
-    xcb
-    COMPONENTS xcb
-    REQUIRED)
-  find_package(x11-xcb REQUIRED)
-
-  target_sources(libobs-opengl PRIVATE gl-egl-common.c gl-nix.c gl-x11-egl.c)
-  target_link_libraries(libobs-opengl PRIVATE xcb::xcb X11::x11-xcb)
-
-  if(ENABLE_WAYLAND)
-    find_package(
-      OpenGL
-      COMPONENTS EGL
-      REQUIRED)
-
-    find_package(Wayland REQUIRED)
-
-    target_sources(libobs-opengl PRIVATE gl-wayland-egl.c)
-    target_link_libraries(libobs-opengl PRIVATE OpenGL::EGL Wayland::EGL)
-  endif()
+target_link_libraries(
+  libobs-opengl
+  PRIVATE OBS::libobs
+          OBS::glad
+          "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>>"
+          "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>>"
+          $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:xcb::xcb>
+          $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::x11-xcb>
+          $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:OpenGL::EGL>
+          $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:Wayland::EGL>)
 
+if(OS_WINDOWS)
+  configure_file(cmake/windows/obs-module.rc.in libobs-opengl.rc)
+  target_sources(libobs-opengl PRIVATE libobs-opengl.rc)
 endif()
 
 target_enable_feature(libobs "OpenGL renderer")
 
+# cmake-format: off
 set_target_properties_obs(
   libobs-opengl
   PROPERTIES FOLDER core
              VERSION 0
              PREFIX ""
              SOVERSION "${OBS_VERSION_MAJOR}")
+# cmake-format: on