{"id":412,"date":"2023-12-26T14:53:43","date_gmt":"2023-12-26T05:53:43","guid":{"rendered":"https:\/\/elosove.com\/?p=412"},"modified":"2023-12-26T14:53:43","modified_gmt":"2023-12-26T05:53:43","slug":"obs-studio-%e3%82%b3%e3%83%bc%e3%83%89%e3%83%aa%e3%83%bc%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%97%a5%e8%a8%98-4-cmake","status":"publish","type":"post","link":"https:\/\/elosove.com\/?p=412","title":{"rendered":"OBS Studio \u30b3\u30fc\u30c9\u30ea\u30fc\u30c6\u30a3\u30f3\u30b0\u65e5\u8a18 #4 ; CMake"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306fOBS Studio\u306eCMake\u306e\u5b9f\u884c\u30eb\u30fc\u30c8\u3092\u8ffd\u3063\u3066\u307f\u307e\u3059\u3002[OBS ver30, Windows\u30eb\u30fc\u30c8]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_subdirectory\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u884c\u3055\u308c\u308b\u30d7\u30ed\u30bb\u30b9\u304c\u3042\u308b\u306e\u3067\u3001\u53b3\u5bc6\u306a\u5b9f\u884c\u30eb\u30fc\u30c8\u3067\u306f\u306a\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u53c2\u8003\u306b\u3069\u3046\u305e\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_71 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/elosove.com\/?p=412\/#1cmake%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80\" title=\"1.cmake\u30d5\u30a9\u30eb\u30c0\">1.cmake\u30d5\u30a9\u30eb\u30c0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/elosove.com\/?p=412\/#2libobs%E3%83%BBtest%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80\" title=\"2.libobs\u30fbtest\u30d5\u30a9\u30eb\u30c0\">2.libobs\u30fbtest\u30d5\u30a9\u30eb\u30c0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/elosove.com\/?p=412\/#3UI%E3%83%BBModules%E3%83%BBdeps%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80\" title=\"3.UI\u30fbModules\u30fbdeps\u30d5\u30a9\u30eb\u30c0\">3.UI\u30fbModules\u30fbdeps\u30d5\u30a9\u30eb\u30c0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/elosove.com\/?p=412\/#4UI%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%86%85%E3%81%AECMake%E5%AE%9F%E8%A1%8C%E3%83%AB%E3%83%BC%E3%83%88\" title=\"4.UI\u30d5\u30a9\u30eb\u30c0\u5185\u306eCMake\u5b9f\u884c\u30eb\u30fc\u30c8\">4.UI\u30d5\u30a9\u30eb\u30c0\u5185\u306eCMake\u5b9f\u884c\u30eb\u30fc\u30c8<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1cmake%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80\"><\/span>1.cmake\u30d5\u30a9\u30eb\u30c0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">root(obs-studio)\u30d5\u30a9\u30eb\u30c0\u306eCMakeList.txt\u304b\u3089bootstrap-&gt;compilierconfig-&gt;defaults-&gt;helpers\u306e\u9806\u306binclude\u3055\u308c\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"987\" src=\"https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root1-1024x987.png\" alt=\"\" class=\"wp-image-413\" style=\"width:840px;height:auto\" srcset=\"https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root1-1024x987.png 1024w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root1-300x289.png 300w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root1-768x740.png 768w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root1.png 1323w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u53c2\u7167\u3055\u308c\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306a\u968e\u5c64\u5185\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2514\u2500obs-studio\n   \u251c\u2500CMakeLists.txt\n   \u251c\u2500CMakePresets.json\n   \u251c\u2500cmake\n   \u2502    \u251c\u2500common\n   \u2502    \u2502    \u251c\u2500versionconfig.cmake\n   \u2502    \u2502    \u251c\u2500bootstrap.cmake\n   \u2502    \u2502    \u251c\u2500buildnumber.cmake\n   \u2502    \u2502    \u251c\u2500buildspec_common.cmake\n   \u2502    \u2502    \u251c\u2500ccache.cmake\n   \u2502    \u2502    \u251c\u2500compiler_common.cmake\n   \u2502    \u2502    \u251c\u2500cpackconfig_common.cmake\n   \u2502    \u2502    \u251c\u2500helpers_common.cmake\n   \u2502    \u2502    \u2514\u2500osconfig.cmake\n   \u2502    \u2502 \n   \u2502    \u251c\u2500windows\n   \u2502    \u2502    \u251c\u2500buildspec.cmake \n   \u2502    \u2502    \u251c\u2500compilerconfig.cmake \n   \u2502    \u2502    \u251c\u2500cpackconfig.cmake \n   \u2502    \u2502    \u251c\u2500defaults.cmake \n   \u2502    \u2502    \u251c\u2500helpers.cmake \n   \u2026    \u2026    \u2026<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2libobs%E3%83%BBtest%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80\"><\/span>2.libobs\u30fbtest\u30d5\u30a9\u30eb\u30c0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">helpers.cmake\u30d5\u30a1\u30a4\u30eb\u304c\u5b9f\u884c\u3055\u308c\u305f\u5f8c\u3001libobs,libobs-d3d11,libobs-winrt,libobs-opengl\u304c\u9806\u756a\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">libobs\u7cfb\u304c\u7d42\u308f\u3063\u305f\u5f8c\u306bplugins\u3068test\u30d5\u30a9\u30eb\u30c0\u5185\u306eCMakeLists.txt\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"898\" src=\"https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root2-1024x898.png\" alt=\"\" class=\"wp-image-415\" style=\"width:840px;height:auto\" srcset=\"https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root2-1024x898.png 1024w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root2-300x263.png 300w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root2-768x673.png 768w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root2.png 1267w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u53c2\u7167\u3055\u308c\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306a\u968e\u5c64\u5185\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2514\u2500obs-studio\n   \u251c\u2500CMakeLists.txt\n   \u251c\u2500CMakePresets.json\n   \u251c\u2500cmake\n   \u2502    \u251c\u2500libobs\n   \u2502    \u2502   \u251c\u2500cmake\n   \u2502    \u2502   \u2502   \u251c\u2500os-windows.cmake   \n   \u2502    \u2502   \u2026   \u2026\n   \u2502    \u2502   \u2514\u2500CMakeList.txt\n   \u2502    \u251c\u2500libobs-d3d11\n   \u2502    \u2502   \u251c\u2500cmake\n   \u2502    \u2502   \u2502   \u2026   \n   \u2502    \u2502   \u2502   \u2514\u2500windows\n   \u2502    \u2502   \u2026      \u2514\u2500obs-module.rc.in\n   \u2502    \u2502   \u2514\u2500CMakeList.txt\n   \u2502    \u251c\u2500libobs-winrt\n   \u2502    \u2502   \u2026 \n   \u2502    \u2502   \u2514\u2500CMakeList.txt\n   \u2502    \u251c\u2500libobs-opengl\n   \u2502    \u2502   \u2026 \n   \u2502    \u2502   \u2514\u2500CMakeList.txt\n   \u2502    \u251c\u2500test\n   \u2502    \u2502   \u251c\u2500test-input  \n   \u2502    \u2502   \u2502   \u2026 \n   \u2502    \u2502   \u2502   \u2514\u2500CMakeList.txt\n   \u2502    \u2502   \u251c\u2500win\n   \u2502    \u2502   \u2502   \u2026\n   \u2502    \u2502   \u2502   \u2514\u2500CMakeList.txt\n   \u2026    \u2026    \u2026<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3UI%E3%83%BBModules%E3%83%BBdeps%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80\"><\/span>3.UI\u30fbModules\u30fbdeps\u30d5\u30a9\u30eb\u30c0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">test\u30d5\u30a9\u30eb\u30c0\u5185\u306eCMakeLists.txt\u5b9f\u884c\u5f8c\u306bUI\u30d5\u30a9\u30eb\u30c0\u3068Modules\u30d5\u30a9\u30eb\u30c0\u3092\u9806\u306b\u5b9f\u884c\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(\u203bUI\u30d5\u30a9\u30eb\u30c0\u5185\u306e\u547c\u3073\u51fa\u3057\u306f\u6570\u304c\u591a\u3044\u306e\u3067\u5f8c\u8ff0)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"733\" src=\"https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root3-1024x733.png\" alt=\"\" class=\"wp-image-422\" srcset=\"https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root3-1024x733.png 1024w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root3-300x215.png 300w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root3-768x549.png 768w, https:\/\/elosove.com\/wp-content\/uploads\/2023\/12\/cmake_root3.png 1286w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">deps\u30d5\u30a9\u30eb\u30c0\u5185\u3067\u306f\u4e0b\u8a18\u306e\u9806\u3067\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>w32-pthreads\nipc-util\nblake2\nglad\nmedia-playback\nfile-updater\nobs-scripting\nopts-parser\nlibcaption\nuthash\nhappy-eyeballs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u53c2\u7167\u3055\u308c\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306a\u968e\u5c64\u5185\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>   \u2514\u2500obs-studio\n   \u251c\u2500CMakeLists.txt\n   \u251c\u2500CMakePresets.json\n   \u251c\u2500cmake\n   \u2502    \u251c\u2500Modules\n   \u2502       \u2026\n   \u2502       \u251c\u2500VersionConfig.cmake\n   \u2502       \u251c\u2500DeprecationHelpers.cmake\n   \u2502       \u251c\u2500ObsHelpers.cmake\n   \u2502       \u251c\u2500ObsDefaults_Windows.cmake\n   \u2502       \u251c\u2500ObsHelpers_Windows.cmake\n   \u2502       \u251c\u2500CopyMSVCBins.cmake\n   \u2502       \u2514\u2500CMakeList.txt\n   \u251c\u2500UI\n   \u251c\u2500deps\n   \u2026<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4UI%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%86%85%E3%81%AECMake%E5%AE%9F%E8%A1%8C%E3%83%AB%E3%83%BC%E3%83%88\"><\/span>4.UI\u30d5\u30a9\u30eb\u30c0\u5185\u306eCMake\u5b9f\u884c\u30eb\u30fc\u30c8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UI\u30d5\u30a9\u30eb\u30c0\u5185\u306eCMake\u5b9f\u884c\u9806\u306f\u4e0b\u8a18\u306e\u901a\u308a\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>UI\/obs-frontend-api\/CMakeLists.txt\nUI\/cmake\/ui-qt.cmake\nUI\/cmake\/ui-elements.cmake\nUI\/cmake\/ui-windows.cmake\nUI\/cmake\/feature-importers.cmake\nUI\/cmake\/feature-browserpanels.cmake\nUI\/cmake\/feature-twitch.cmake\nUI\/cmake\/feature-restream.cmake\nUI\/cmake\/feature-youtube.cmake\nUI\/cmake\/feature-sparkle.cmake\nUI\/cmake\/feature-whatsnew.cmake\nUI\/frontend-plugins\/CMakeLists.txt\/CMakeLists.txt\n    UI\/frontend-plugins\/aja-output-ui\/CMakeLists.txt\n    UI\/frontend-plugins\/decklink-captions\/CMakeLists.txt\n    UI\/frontend-plugins\/decklink-output-ui\/CMakeLists.txt\n    UI\/frontend-plugins\/frontend-tools\/CMakeLists.txt\nUI\/cmake\/os-windows.cmake\n    UI\/cmake\/windows\/obs.rc.in\n    UI\/win-update\/updater\/CMakeLists.txt<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u56de\u306fOBS Studio\u306eCMake\u306e\u5b9f\u884c\u30eb\u30fc\u30c8\u3092\u8ffd\u3063\u3066\u307f\u307e\u3059\u3002[OBS ver30, Windows\u30eb\u30fc\u30c8] add_subdirectory\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u884c\u3055\u308c\u308b\u30d7\u30ed\u30bb\u30b9\u304c\u3042\u308b\u306e\u3067\u3001\u53b3\u5bc6\u306a\u5b9f\u884c\u30eb\u30fc\u30c8\u3067\u306f\u306a\u3044\u304b\u3082\u3057\u308c\u307e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":350,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[18],"class_list":["post-412","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-obs_studio"],"_links":{"self":[{"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/posts\/412","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elosove.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=412"}],"version-history":[{"count":10,"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/posts\/412\/revisions"}],"predecessor-version":[{"id":426,"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/posts\/412\/revisions\/426"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elosove.com\/index.php?rest_route=\/wp\/v2\/media\/350"}],"wp:attachment":[{"href":"https:\/\/elosove.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elosove.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elosove.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}