{"id":2912,"date":"2024-05-05T18:01:51","date_gmt":"2024-05-05T18:01:51","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=2912"},"modified":"2024-05-05T18:01:51","modified_gmt":"2024-05-05T18:01:51","slug":"uengine-4-son-guncellemeler","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/","title":{"rendered":"uEngine 4 Son G\u00fcncellemeler"},"content":{"rendered":"<p>Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m,<\/p>\n<p>Daha \u00f6nce de bahsetti\u011fim gibi uzun bir s\u00fcredir uEngine4 reposunun hem Windows hem Linux i\u00e7in kullan\u0131labilir hale getirmeye y\u00f6nelik planlar\u0131m mevcuttu. Ayr\u0131ca, bir ka\u00e7 yaz\u0131mda CMake betikleri ile ilgili de bir ka\u00e7 g\u00fcncelleme yapmay\u0131 planl\u0131yordum. Nihayet bu g\u00fcncellemeleri tamamlad\u0131m ve art\u0131k uEngine4&#8217;\u00fc hem Windows hem de Linux i\u00e7in kullanabileceksiniz. Bu ba\u011flamda yap\u0131lan g\u00fcncellemeleri &#8220;pre-update&#8221; branchi i\u00e7erisinden takip edebilirsiniz. \u0130lgili repoya a\u015fa\u011f\u0131daki adresten ula\u015fabilirsiniz:<\/p>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/github.com\/yazilimperver\/uEngine4\">https:\/\/github.com\/yazilimperver\/uEngine4<\/a><\/strong><\/span><\/p>\n<p>Gelelim bu ba\u011flamda yap\u0131lan g\u00fcncellemelere.<\/p>\n<h2><strong><span style=\"color: #0000ff;\">Dizin Yap\u0131s\u0131n\u0131n Basitle\u015ftirilmesi<\/span><\/strong><\/h2>\n<p>Daha \u00f6nce her bir dizin i\u00e7in olu\u015fturulan projeler yerine temel kabiliyetleri i\u00e7erecek <strong>daha az say\u0131da projeler<\/strong> olu\u015fturmak ve <strong>dizin yap\u0131s\u0131n\u0131n basitle\u015ftirilmesi<\/strong>.<\/p>\n<ul>\n<li>Bu ba\u011flamda <strong><em>basic_engine<\/em><\/strong>, <strong><em>infra<\/em><\/strong>, <strong><em>gis<\/em> <\/strong>ve <strong><em>gl<\/em> <\/strong>alt\u0131ndaki projeleri ortadan kald\u0131rarak, ilgili projeler: &#8220;<strong><em>basic_engine<\/em><\/strong>&#8220;, &#8220;<strong><em>infra<\/em><\/strong>&#8220;, &#8220;<strong><em>gis<\/em><\/strong>&#8221; ve &#8220;<strong><em>gl<\/em><\/strong>&#8221; projeleri alt\u0131nda toplanm\u0131\u015ft\u0131r ve di\u011fer CMake dosyalar\u0131 da silinmi\u015ftir,<\/li>\n<li><strong>\/binary, \/code\/src<\/strong>\u00a0 dizinleri silinmi\u015f, kaynak kodlar<strong> \/code<\/strong> dizini alt\u0131na al\u0131nm\u0131\u015ft\u0131r,<\/li>\n<li><strong>Visual Studio 2022<\/strong> proje dosyalar\u0131n\u0131n silinmesi (<strong>\/code\/project<\/strong>),<\/li>\n<li><strong>apps<\/strong> dizini alt\u0131nda \u00f6rnek projeler tutulmaya devam edilmi\u015ftir.<\/li>\n<\/ul>\n<p>Sonu\u00e7 olarak a\u015fa\u011f\u0131daki gibi bir dizin yap\u0131m\u0131z oldu:<\/p>\n<pre class=\"lang:sh decode:true\">\u251c\u2500\u2500 assets\r\n\u2502 \u251c\u2500\u2500 characters\r\n\u2502 \u251c\u2500\u2500 falling_letters_assets\r\n\u2502 \u251c\u2500\u2500 freedinosprite\r\n\u2502 \u251c\u2500\u2500 gl_example_assets\r\n\u2502 \u251c\u2500\u2500 sdl_example_assets\r\n\u2502 \u2514\u2500\u2500 tilemap\r\n\u251c\u2500\u2500 code\r\n\u2502 \u251c\u2500\u2500 apps\r\n\u2502 \u251c\u2500\u2500 basic_engine\r\n\u2502 \u251c\u2500\u2500 cmake\r\n\u2502 \u251c\u2500\u2500 ext\r\n\u2502 \u251c\u2500\u2500 gis\r\n\u2502 \u251c\u2500\u2500 gl\r\n\u2502 \u251c\u2500\u2500 infra\r\n\u2502 \u251c\u2500\u2500 lib\r\n\u2502 \u251c\u2500\u2500 scripts\r\n\u2502 \u251c\u2500\u2500 src\r\n\u2502 \u2514\u2500\u2500 test\r\n\u251c\u2500\u2500 doc\r\n\u2514\u2500\u2500 records<\/pre>\n<h2><span style=\"color: #0000ff;\"><strong>CMake Betik G\u00fcncellemeleri<\/strong><\/span><\/h2>\n<p>CMake betiklerini sadele\u015ftirmek ve di\u011fer g\u00fcncellemeler:<\/p>\n<ul>\n<li>CMake minimum s\u00fcr\u00fcm\u00fc <strong>3.23<\/strong>&#8216;e y\u00fckseltildi. Bunun temel sebebi, preset ve di\u011fer bir tak\u0131m g\u00fcncel kabiliyetleri kullanabilmek,<\/li>\n<li>Daha \u00f6nce <strong><a href=\"https:\/\/www.yazilimperver.com\/index.php\/2024\/02\/11\/c-cmake-sablon-repositorysi\/\">CMake \u015fablonuna ili\u015fkin yaz\u0131mda<\/a><\/strong> sizler ile payla\u015ft\u0131\u011f\u0131m, CMake \u015fablonunu, uEngine4 i\u00e7in de kullan\u0131l\u0131r hale getirilmi\u015ftir ve bu ba\u011flamda da preset&#8217;ler kullan\u0131labilir. <strong>Presetlere<\/strong> ili\u015fkin detayl\u0131 bilgilere ilgili yaz\u0131mdan ula\u015fabilirsiniz,<\/li>\n<li>Yapt\u0131\u011f\u0131m \u00f6nemli de\u011fi\u015fikliklerden birisi, projeler (<strong>target<\/strong>)&#8217;lar i\u00e7in kullan\u0131lacak olan dosyalar\u0131 direk <strong>CMakeLists.txt<\/strong> i\u00e7erisine de\u011fil de ilgili <strong>.cmake<\/strong> dosyalar\u0131 i\u00e7erisine ekledim (\u00d6r. <strong>\/code\/infra\/cmake\/&#8230;_files.cmake<\/strong>). A\u00e7\u0131k\u00e7as\u0131 bu buna, cmake betik dosyas\u0131n\u0131 sadele\u015ftirmesi a\u00e7\u0131s\u0131ndan daha kullan\u0131\u015fl\u0131 geldi,<\/li>\n<li>\u0130lgili <strong>k\u00fct\u00fcphanelere \u00f6zg\u00fc ba\u011f\u0131ml\u0131l\u0131klar<\/strong>\u0131n PRIVATE ile, bunun yan\u0131nda bu k\u00fct\u00fcphaneleri kullanacak projelerin de ihtiya\u00e7 duyaca\u011f\u0131 k\u00fct\u00fcphaneler PUBLIC olarak eklenmi\u015ftir,<\/li>\n<li><strong>Gereksiz<\/strong> ya da <strong>tekrarl\u0131<\/strong> sat\u0131rlar \u00e7\u0131kar\u0131lm\u0131\u015ft\u0131r,<\/li>\n<li><strong>\u00dc\u00e7\u00fcnc\u00fc parti k\u00fct\u00fcphaneler<\/strong> m\u00fcmk\u00fcn oldu\u011funca, <strong>FindPackage<\/strong> ve target&#8217;lar \u00fczerinden kullan\u0131l\u0131r hale getirilmi\u015ftir,<\/li>\n<li>Eskiden proje\/dizin i\u00e7erisinde bulunan kaynak kodlar &#8220;<strong>source_group<\/strong>&#8221; olarak eklenmi\u015ftir,<\/li>\n<li>Tepe CMakeLists.txt i\u00e7erisi de elden ge\u00e7irildi. Bu ba\u011flamda cmake mod\u00fcl ve 3. parti k\u00fct\u00fcphane dizinleri betik i\u00e7erisine eklenmi\u015ftir. Bu dosyalar da &#8220;<strong>code\/cmake<\/strong>&#8221; alt\u0131nda toplanm\u0131\u015ft\u0131r. Buradaki dosyalara ilerleyen sat\u0131rlarda ayr\u0131 bir parantez a\u00e7\u0131yor olaca\u011f\u0131m.<\/li>\n<\/ul>\n<p>CMake betiklerinin kullan\u0131ma al\u0131nmas\u0131,<\/p>\n<ul>\n<li>Projeniz b\u00fcy\u00fck\u00e7e ve target say\u0131n\u0131z artt\u0131k\u00e7a, CMake betiklerinde de ortaklama ihtiyac\u0131n\u0131 hissediyorsunuz. Bunun i\u00e7in de asl\u0131nda kullan\u0131labilecek yegane y\u00f6ntemlerden birisi de .cmake uzant\u0131l\u0131 betiklerin kullan\u0131lmas\u0131. Ben de bu ba\u011flamda a\u015fa\u011f\u0131daki dosyalar\u0131 olu\u015fturdum, sizler de ihtiyaca g\u00f6re benzerlerini olu\u015fturabilirsiniz:\n<ul>\n<li><strong>TargetOSSetup.cmake<\/strong>: \u0130\u015fletim sistemine ve build tipine g\u00f6re olu\u015fturulacak olan target&#8217;lar\u0131n isimlendirilmesi ve i\u015fletime sistemine y\u00f6nelik ayarlar,<\/li>\n<li><strong>OpenGLOptions.cmake<\/strong>: \u0130\u015fletim sistemine g\u00f6re ortak OpenGL k\u00fct\u00fcphanelerine y\u00f6nelik bir tak\u0131m de\u011fi\u015fkenlerin ayarlanmas\u0131,<\/li>\n<li><strong>InsourceGuard.cmake<\/strong>: CMake ile ilgili olu\u015fturma dosyalar\u0131n\u0131n ayn\u0131 dizinde olu\u015fturulmas\u0131na kar\u015f\u0131n \u00f6nlem i\u00e7eren dosya,<\/li>\n<li><strong>FolderOptions.cmake<\/strong>: Projede kullan\u0131lan ortak dizinlerin belirlendi\u011fi dosya,<\/li>\n<li><strong>CompilerOptions.cmake<\/strong>: \u0130\u015fletim sistemine ve araca g\u00f6re derleme ve benzeri parametreleri verebilece\u011finiz dosya,<\/li>\n<li><strong>StandardOptions.cmake<\/strong>: Yaz\u0131l\u0131m\u0131 olu\u015ftururken sunulan opsiyonlar (bunlar ayr\u0131ca CMake UI&#8217;\u0131nda da g\u00f6r\u00fclebilir),<\/li>\n<li><strong>CommonFunctions.cmake:<\/strong> Ba\u011f\u0131ml\u0131l\u0131klar\u0131n kopyalanmas\u0131na y\u00f6nelik fonksiyonlar\u0131 i\u00e7eren dosyad\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li>Yukar\u0131dakiler yan\u0131nda daha \u00f6nce de bahsetti\u011fim gibi, proje kaynak dosyalar\u0131n\u0131 da direk CMake betikleri i\u00e7erisine eklemek yerine, ayr\u0131 dosyalarda tutmaya ba\u015flad\u0131m.<\/li>\n<\/ul>\n<p>Uygulamalara ili\u015fkin ba\u011f\u0131ml\u0131l\u0131klar\u0131n, \u00f6rnek uygulamalar\u0131n yan\u0131na otomatik ta\u015f\u0131nmas\u0131 da yine CMake betikleri arac\u0131l\u0131\u011f\u0131 ile yap\u0131lan g\u00fcncellemelerden birisi. \u015e\u00f6yle ki:<\/p>\n<ul>\n<li>\u00d6rnek uygulamalarda kullan\u0131lan sd_application_configuration.json konfig\u00fcrasyon dosyas\u0131n\u0131n kopyalanmas\u0131,<\/li>\n<li>Ayr\u0131ca, Windows taraf\u0131nda ba\u015f a\u011fr\u0131s\u0131na sebep olan .dll&#8217;lerin el ile kopyalanmas\u0131na y\u00f6nelik de bir g\u00fcncelleme yapt\u0131m. \u00d6rnek uygulamalar i\u00e7in, ortak olarak kullan\u0131lacak olan .dll&#8217;ler konfig\u00fcrasyon zaman\u0131nda, ilgili dizinlere art\u0131k otomatik olarak kopyalan\u0131yor,<\/li>\n<li>Asset&#8217;ler i\u00e7in \u00f6zel bir \u015fey yapmad\u0131m, zaten assetleri kullanan \u00f6rnek uygulamalara bakt\u0131\u011f\u0131n\u0131zda CMake&#8217;in de yard\u0131m\u0131yla ayr\u0131 bir ba\u015fl\u0131k dosyas\u0131 olu\u015fturarak, asset dizin yollar\u0131 yine konfig\u00fcrasyon zaman\u0131nda olu\u015fturulmakta.<\/li>\n<\/ul>\n<h2><span style=\"color: #0000ff;\"><strong>\u00dc\u00e7\u00fcnc\u00fc Parti Bile\u015fenlerin Kullan\u0131m\u0131<\/strong><\/span><\/h2>\n<p>3. parti k\u00fct\u00fcphanelerin kullan\u0131lmas\u0131na y\u00f6nelik de yeni y\u00f6ntemleri proje dahil ettim. \u015eimdilik hepsi duruyor ama ileride muhtemelen se\u00e7ilen y\u00f6ntemlerle ilerliyor olaca\u011f\u0131m:<\/p>\n<ul>\n<li>Daha \u00f6nce \u00fc\u00e7\u00fcnc\u00fc parti k\u00fct\u00fcphaneleri eklerken komut sat\u0131r\u0131ndan verilen dizin ve ana CMakeLists.txt i\u00e7erisindeki dizinler \u00fczerinden yap\u0131yorduk. Art\u0131k bunlar daha \u00e7ok cmake mod\u00fcl ve paketi olarak eklenmekte,<\/li>\n<li>Zaten indirilmi\u015f \u00fc\u00e7\u00fcnc\u00fc parti k\u00fct\u00fcphaneler yan\u0131nda, di\u011fer kullan\u0131mlara \u00f6rnekler eklenmi\u015ftir. Bunlar\u0131 \u015f\u00f6yle s\u0131ralayabiliriz:\n<ul>\n<li>\n<div>\n<div><strong>add_subdirectory<\/strong> ile direk ekleyerek olu\u015fturma. google-test buna \u00f6rnek. Asl\u0131nda \u00fc\u00e7\u00fcnc\u00fc parti bir bile\u015fenden ziyade yaz\u0131l\u0131m\u0131n bir par\u00e7as\u0131 haline gelir. \u00c7ok de\u011fi\u015ftirilmeyecek bile\u015fenler i\u00e7in bu y\u00f6ntem izlenebilir,<\/div>\n<\/div>\n<\/li>\n<li><strong>CMake submodule<\/strong> ile ilgili reponun eklenmesi. glm k\u00fct\u00fcphanesini bu \u015fekilde ekledik. \u00dc\u00e7\u00fcnc\u00fc parti k\u00fct\u00fcphanelerin g\u00fcncel hallerini s\u00fcrekli kullanmay\u0131 istemeniz durumunda bu se\u00e7ene\u011fi kullanabilirsiniz fakat ilgili submodule yaz\u0131mda da bahsetti\u011fim gibi dikkat etmeniz gereken noktalar var (g\u00fcncelleme ve ilk olarak dosyalar\u0131 alma),<\/li>\n<li><strong>FetchContent<\/strong> kullan\u0131m\u0131, son zamanlarda yayg\u0131n olarak kullan\u0131lan y\u00f6ntemlerden birisi, ana CMake beti\u011fi i\u00e7erisinde yorumlu olarak b\u0131rakt\u0131m. Spdlog bu \u015fekilde indirilebilir. Temelde internetten ilgili reponun indirilerek, projelerde target olarak kullan\u0131lmas\u0131na olanak sa\u011flamakta. Detayl\u0131 malumatlar betik i\u00e7erisinde mevcut,<\/li>\n<li>Son olarak da <strong>ExternalProject<\/strong> kullan\u0131m\u0131. Bu y\u00f6ntem de FetchContent&#8217;te benzese de, aralar\u0131nda temel bir fark bulunmakta. FetchContent, ilgili ba\u011f\u0131ml\u0131l\u0131klar\u0131 konfig\u00fcrasyon zaman\u0131nda indirir ve kullan\u0131ma sunar. ExternalProject ise bunu olu\u015fturma zaman\u0131nda yapar. A\u00e7\u0131k\u00e7as\u0131 normal \u015fartlarda, FetchContent tercih edilebilir. Kaynaklara buna y\u00f6nelik bir iki sayfa ekliyorum.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><span style=\"color: #0000ff;\"><strong>Sonu\u00e7<\/strong><\/span><\/h2>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi olduk\u00e7a kapsaml\u0131 bir g\u00fcncelleme oldu. Bundan sonra da in\u015fallah uEngine4&#8217;\u00fc yaz\u0131lar\u0131mda daha \u00e7ok kullan\u0131yor olaca\u011f\u0131m, \u00f6rnekler i\u00e7in daha \u00e7ok ba\u015fvuruyor olaca\u011f\u0131z. Sizler de gerek windows gerekse linux i\u00e7in g\u00f6rsel uygulamalar\u0131n\u0131zda, uEngine4&#8217;\u00fc rahatl\u0131kla kullanabilirsiniz.<\/p>\n<p>Sizler ile payla\u015faca\u011f\u0131m ara\u00e7lar\u0131 da ilk olarak uEngine4 \u00fczerinde deniyor olaca\u011f\u0131m \ud83d\ude42 Bunlardan ilki de CCache olacak. Asl\u0131nda bakarsan\u0131z buna y\u00f6nelik betikleri eklemi\u015f bulunuyorum ama detaylar\u0131 sonraki yaz\u0131mda de\u011finiyor olaca\u011f\u0131m. \u0130lgili yaz\u0131 ile birlikte, yaz\u0131l\u0131m olu\u015fturma s\u00fcrelerinizi k\u0131saltacak ara\u00e7lara y\u00f6nelik bir yaz\u0131 dizisine ba\u015fl\u0131yor olaca\u011f\u0131z. Bu yaz\u0131ma kadar kendinize \u00e7ok iyi bak\u0131n, bol kodlu g\u00fcnler.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Kaynaklar<\/strong><\/span><\/h2>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.scivision.dev\/cmake-fetchcontent-vs-external-project\/\">https:\/\/www.scivision.dev\/cmake-fetchcontent-vs-external-project\/<\/a><\/strong><\/span><\/p>\n<p><a href=\"https:\/\/medium.com\/analytics-vidhya\/c-dependency-management-with-cmakes-fetchcontent-4ceca4693a5d\"><span style=\"color: #008000;\"><strong>https:\/\/medium.com\/analytics-vidhya\/c-dependency-management-with-cmakes-fetchcontent-4ceca4693a5d<\/strong><\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, Daha \u00f6nce de bahsetti\u011fim gibi uzun bir s\u00fcredir uEngine4 reposunun hem Windows hem Linux i\u00e7in kullan\u0131labilir hale getirmeye y\u00f6nelik planlar\u0131m mevcuttu. Ayr\u0131ca, bir ka\u00e7 yaz\u0131mda CMake betikleri ile ilgili de bir ka\u00e7 g\u00fcncelleme yapmay\u0131 planl\u0131yordum. Nihayet bu g\u00fcncellemeleri tamamlad\u0131m ve art\u0131k uEngine4&#8217;\u00fc hem Windows hem de Linux i\u00e7in kullanabileceksiniz. Bu ba\u011flamda&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[188],"tags":[155,1133,1132,1131,1041],"class_list":["post-2912","post","type-post","status-publish","format-standard","hentry","category-yazilim-muhendisligi","tag-cmake","tag-external-project","tag-fetch-content","tag-refactor","tag-uengine4"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>uEngine 4 Son G\u00fcncellemeler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"uEngine 4 Son G\u00fcncellemeler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, Daha \u00f6nce de bahsetti\u011fim gibi uzun bir s\u00fcredir uEngine4 reposunun hem Windows hem Linux i\u00e7in kullan\u0131labilir hale getirmeye y\u00f6nelik planlar\u0131m mevcuttu. Ayr\u0131ca, bir ka\u00e7 yaz\u0131mda CMake betikleri ile ilgili de bir ka\u00e7 g\u00fcncelleme yapmay\u0131 planl\u0131yordum. Nihayet bu g\u00fcncellemeleri tamamlad\u0131m ve art\u0131k uEngine4&#8217;\u00fc hem Windows hem de Linux i\u00e7in kullanabileceksiniz. Bu ba\u011flamda... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-05T18:01:51+00:00\" \/>\n<meta name=\"author\" content=\"yaz\u0131l\u0131mperver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"yaz\u0131l\u0131mperver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"uEngine 4 Son G\u00fcncellemeler\",\"datePublished\":\"2024-05-05T18:01:51+00:00\",\"dateModified\":\"2024-05-05T18:01:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\"},\"wordCount\":1263,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"CMAKE\",\"external project\",\"fetch content\",\"refactor\",\"uengine4\"],\"articleSection\":[\"Yaz\u0131l\u0131m M\u00fchendisli\u011fi\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\",\"name\":\"uEngine 4 Son G\u00fcncellemeler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2024-05-05T18:01:51+00:00\",\"dateModified\":\"2024-05-05T18:01:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"uEngine 4 Son G\u00fcncellemeler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.yazilimperver.com\/#website\",\"url\":\"https:\/\/www.yazilimperver.com\/\",\"name\":\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"description\":\"Payla\u015fmak g\u00fczeldir.\",\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.yazilimperver.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\",\"name\":\"yaz\u0131l\u0131mperver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"contentUrl\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"caption\":\"yaz\u0131l\u0131mperver\"},\"logo\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"uEngine 4 Son G\u00fcncellemeler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/","og_locale":"tr_TR","og_type":"article","og_title":"uEngine 4 Son G\u00fcncellemeler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, Daha \u00f6nce de bahsetti\u011fim gibi uzun bir s\u00fcredir uEngine4 reposunun hem Windows hem Linux i\u00e7in kullan\u0131labilir hale getirmeye y\u00f6nelik planlar\u0131m mevcuttu. Ayr\u0131ca, bir ka\u00e7 yaz\u0131mda CMake betikleri ile ilgili de bir ka\u00e7 g\u00fcncelleme yapmay\u0131 planl\u0131yordum. Nihayet bu g\u00fcncellemeleri tamamlad\u0131m ve art\u0131k uEngine4&#8217;\u00fc hem Windows hem de Linux i\u00e7in kullanabileceksiniz. Bu ba\u011flamda... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2024-05-05T18:01:51+00:00","author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"uEngine 4 Son G\u00fcncellemeler","datePublished":"2024-05-05T18:01:51+00:00","dateModified":"2024-05-05T18:01:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/"},"wordCount":1263,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["CMAKE","external project","fetch content","refactor","uengine4"],"articleSection":["Yaz\u0131l\u0131m M\u00fchendisli\u011fi"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/","name":"uEngine 4 Son G\u00fcncellemeler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2024-05-05T18:01:51+00:00","dateModified":"2024-05-05T18:01:51+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2024\/05\/05\/uengine-4-son-guncellemeler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"uEngine 4 Son G\u00fcncellemeler"}]},{"@type":"WebSite","@id":"https:\/\/www.yazilimperver.com\/#website","url":"https:\/\/www.yazilimperver.com\/","name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","description":"Payla\u015fmak g\u00fczeldir.","publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yazilimperver.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb","name":"yaz\u0131l\u0131mperver","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/","url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","contentUrl":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","caption":"yaz\u0131l\u0131mperver"},"logo":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/comments?post=2912"}],"version-history":[{"count":9,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2912\/revisions"}],"predecessor-version":[{"id":2921,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2912\/revisions\/2921"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=2912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=2912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=2912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}