ãããžã§ã¯ãã1ã€ãããŸãã 圌ã¯CMakeã䜿çšããŠãã«ããããŸãã HunterãšåŒã°ããC ++ããã±ãŒãžãããŒãžã£ãŒã䜿çšããŠãCMakeãšããŸãçµ±åããŠããŸãã ãã®ãããžã§ã¯ãã¯ãããã€ãã®ãã©ãããã©ãŒã çšã«çµã¿ç«ãŠãå¿ èŠããããŸãããã®ãã¡ã®1ã€ã¯Androidã§ãã Hunterã¯Androidã®äŸåé¢ä¿ãåé¡ãªãåéããŸãããCMake> = 3.7ã®ããŒãžã§ã³ãå¿ èŠã§ãã3.7ã§ãã®ãã©ãããã©ãŒã ã®ãµããŒããè¿œå ãããããã§ãã ããã¯éåžžã«éèŠãªè©³çŽ°ã§ãã
CMakeã¯ã NVIDIA Nsight Tegraãã©ã°ã€ã³ã䜿çšããŠãWindows / Visual Studioçšã®Androidãããžã§ã¯ãã®çæããµããŒãããŸãã æ®å¿µãªããããã®ãã©ã°ã€ã³ã¯Visual Studio 2017ã«ã€ã³ã¹ããŒã«ãããŠãããã1ã€ã®ãããžã§ã¯ãã®ããã«2015ãã€ã³ã¹ããŒã«ããããããŸããã§ããã äžæ¹ãVS2017ã«ã¯Androidã®ãã«ããµããŒãããããŸãããCMakeãããã®ãããªãããžã§ã¯ããçæãããããšã¯ãããŸããã ããæ£ç¢ºã«ã¯ååšããŸãã ã Microsoftã®CMakeã®èªäœããŒãžã§ã³ãå¿ èŠã§ããããã®éçºã¯ããŒãžã§ã³3.4ã®é åã§æŸæ£ãããŸãããã€ãŸããç§ã«ã¯åããŸããã
ããŠãVisual Studioã§ã¯ãªãå Žåã¯ãAndroid Studioã§ãïŒ CMakeã¯ãã¡ãããµããŒãããŠããŸãããããã§ã«ããŒãžã§ã³2.xãããµããŒãããŠããŸãã build.gradleã§CMakeLists.txtãžã®ãã¹ãæå®ããåæãéå§ãããšããã¹ãŠãæ©èœããã¯ãã§ãã ãã ããæ©èœããŸãããããCMakeãã€ã³ã¹ããŒã«ãããŠããŸããããšè¡šç€ºãããŸãã çç±-ããããAndroidãªããžããªããããŠã³ããŒãããå¿ èŠããããããŒãžã§ã³3.6ã§ããªãŒãºããç¬èªã®ãã©ãŒã¯CMakeã§ãåäœããããã§ãã
è¡ãæ¢ãŸãã®ããã§ãã ãã ããå®éã«ã¯ããã§ã¯ãããŸãããããŒãžã§ã³3.0以éãAndroid Studio 㯠ããAndroidãµããŒãã®æ¹åãã«ããã3.6ããå€ãCMakeã®å€éšããŒãžã§ã³ã§åäœã§ããããã«ãªããŸããã local.propertiesã«cmake.dirãã£ãŒã«ããèšè¿°ããã ãã§ååã§ããã¹ãŠãæ©èœããã¯ãã§ãã ããããããã¯æ©èœããŸããããèšã...ããŒããæ£çŽèšã£ãŠãç§ã¯åœŒãããã«èšã£ãããšããã§ã«å¿ããŠããŸãããããã€ã³ãã¯Googleã§æ¡ç¹ããããšã©ãŒããã¹ãããã°ãã©ãã«ãŒã®äŒè©±ã«ã€ãªãã£ããšããããšã§ãAndroid Studioã䜿çšãã3.8 CMakeã¯äœããã®æ¹æ³ã§èª€ã£ãŠéä¿¡ããããããããã¯ãã¹ãŠããŒãžã§ã³3.9ã§ä¿®æ£ããå¿ èŠããããŸãã
ãããŠãç§ã¯CMake 3.8ãæã£ãŠããŸãã ããŠãããã¯åé¡ã§ã¯ãããŸããããµã€ãã«ã¢ã¯ã»ã¹ããŠãããŒãžã§ã³3.10ã®ææ°ã®CMakeãããŠã³ããŒãããŸãïŒå®éã3.10ã¯3.9ãããè¯ãã®ã§ããããããããšãå°ãªããšãæªããããŸãããïŒïŒã ã€ã³ã¹ããŒã«ãããšããã¹ãŠãæ©èœããã¯ãã§ãã ãã ããæ©èœããŸãããããCMake Serverãšã®éä¿¡ãšã©ãŒ-ãã°ãåç §ããŠãã ããããšè¡šç€ºãããŸãã ãã°ã¯ç°¡æœã«å®£èšããŸãïŒ
CMAKE SERVER: [== "CMake Server" ==[ CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} CMAKE SERVER: ]== "CMake Server" ==]
ã芧ã®ãšãããééãã¯ãããŸããã ãšããã§ãã¯ãããããCMake Serverã¯ã©ãã§ããïŒ åããŠèããã ããã¥ã¡ã³ãã«ã¢ã¯ã»ã¹ããŠãããã¯å€éšããã°ã©ã ãCMakeãããžã§ã¯ãã«é¢ããæ å ±ãæ©æ¢°å¯èªåœ¢åŒã§åä¿¡ã§ããããã«ããæ°ããCMakeæäœã¢ãŒãã§ãããããŸããŸãªIDEããã³è¿œå ããŒã«ãšã®çµ±åãç°¡çŽ åããããšãèªã¿ãŸãã
ãããæ¢åµã®å§ãŸãã§ãã æåã®èšŒæ ã¯ããµãŒããŒå¿çã®ãã¡ãžã£ãŒãããã³ããã€ããŒããã£ãŒã«ãã§ãã ãããã³ã«ããŒãžã§ã³ãããããã誰ããããããã§ãã¯ã§ãããééã£ããããŒãžã§ã³ã§ã¯åäœããŸããã ä»®å®ã¯éåžžã«å¯èœæ§ãé«ãããä»®å®ã®ã¿-確èªãååŸããã®ãè¯ãã§ãããã
å®éããã®æç¹ã§ç§ã¯äžæåæ¢
ããããèªè ã®äžã«ã¯ãAndroid Open Source Projectã§ç©æ¥µçã«äœæ¥ããŠãã人ããŸãã¯å°ãªããšããã®ããã€ã¹ã«ç²ŸéããŠãã人ãããŸãã ç§ã®ãããªãåéºã圌ãã«ç¬ãããŠãã ããã
CMleãšã®çµ±åãæ åœããGradleã®Androidãã©ã°ã€ã³ã®ãœãŒã¹ãèŠã€ããå¿ èŠããããŸããã æ®éã®ãŸãšããªåžæ°ãšããŠãGoogleã§ãAndroid gradle plugin sourceããšãããã¬ãŒãºãæ¡ç¹ããããã«å¿ããŠãªããžããªããŒãžãååŸããŸããã ãã ããWebã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠç°¡åã«æ€çŽ¢ãããšãmasterã§ã®æåŸã®ã³ãããã¯2幎åã§ããããšãããããŸããã ãããŠãæ°é®®ãªçš®é¡ã¯ã©ãã§ããïŒ ã¯ã£ããããªãïŒ
åãæ€çŽ¢ã®2çªç®ã®ãªã³ã¯ããã ãAOSPãœãŒã¹ã³ãŒããããŠã³ããŒãããæ¹æ³ããšããæ瀺ããããŸããã ãããè¡ãã«ã¯ãç°¡åã§ã¯ãªãããšèšããããåŸãŸãããGoogleã¯ããã€ãã®ããã«ã人ã®ããã§ã¯ãªããGitããç¹å®ã®ãããžã§ã¯ããããŠã³ããŒãããããšã¯ã§ããŸããã ãªããžããªãšåŒã°ããç¬èªã®ããŒã«ã䜿çšããŠäœ¿çšããå¿ èŠããããŸãã
ç·šéïŒã³ã¡ã³ãã§ã¯ãå¯èœã ãšç€ºåãããŠããããããžã§ã¯ãã¯ãŸã ããããå¥ã®Gitã«ãããŸããããŒãžã®äžéšã«ãClone this repoïŒããšãã倧ããªç¢æã¯ãããŸããã§ããã èª€å ±ããaã³ããŸãïŒ
ãªããžããªãååŸãããããéåžžã®Pythonã¹ã¯ãªããã§ããããšã確èªããŠå®è¡ãããšã©ãŒãååŸããŸã-fcntlã€ã³ããŒããèŠã€ãããŸããã§ããã ã¯ãããã®ã¹ã¯ãªããã¯Windowsã§ã¯æ©èœããŸããã ã»ããæããŠããã°ãŒã°ã«ã 誀ã£ãŠä»®æ³ãã·ã³ãUbuntuã®é ã«æšªããã£ãŠèµ·åããããã«ãªããžããªãããŠã³ããŒãããŠå®è¡ããäœããèµ·ãã£ãŠããã®ãèŠãŠãæŒé£ã«åºçºããŸãã
æ»ããšããããã€ã¹ã«ç©ºã容éããããŸããããšãããšã©ãŒã衚瀺ãããŸããã ãããã¯ããããã«ã¯5GbããããŸããããå¿ èŠãªãããžã§ã¯ãã¯ããã¹ãŠã®äŸåé¢ä¿ããã£ãŠãããã»ã©éãã¯ãªããŸããïŒ ãã ããç°¡åãªèª¿æ»ã®çµæãã¬ãã¯AOSPãªããžããªå šäœãŸãã¯ã»ãŒå šäœãåçž®ãããå¥ã®ãããžã§ã¯ããäŒããæ¹æ³ã¯ãŸã£ãããããŸããã§ããã éšåçã«ã¯ãç§ãç解ããŠããããã«ãããã¯Gitã®ããã§ãããGoogleãããã䜿çšããæ¹æ³ã§ãã åãããžã§ã¯ããç¬èªã®ãªããžããªã«æŒã蟌ãã®ã§ã¯ãªãããã¹ãŠã1ã€ã«æŒã蟌ã¿ãŸããã ãŸããGitã¯SVNãšã¯ç°ãªãããå®å šã«ããšããèšèãããªããžããªã®ãµããã£ã¬ã¯ããªãæœåºããããšã¯ã§ããŸããã
ãããããç§ã¯ããèŠãªããã°ãªããªã1ã€ãŸãã¯2ã€ã®ãã¡ã€ã«ã®ããã«ããµãŒã«ã¹ãšéŠ¬ã䜿ã£ãŠAndroidå šäœãéãåºãããšã決ããŸãããç§ã¯æãã§ããŸãããã
çŽèŠ³ã¯ãç§ãå¿ èŠãšãããã©ã°ã€ã³ã®ããŒãžã§ã³ã®ãœãŒã¹ã³ãŒãããŸã ã©ããã«ããã¹ãã ãšç€ºåããŸããã ããããå¿ã¯è¡ãè©°ãŸã£ãŠããŸãã ããã§ç§ã¯ãAndroidéçºè åãã®å ¬åŒãªãœãŒã¹ã«é¢ãããã«ããæ¢ãããšã«ããŸããã Google+ã®ã°ã«ãŒãã¯ããã«æåŠããŸã-ããã¯æ·±å»ãªäŒè©±ã®ãã©ãããã©ãŒã ã§ã¯ãããŸããã ãã ããGoogleã°ã«ãŒãã®å€ãè¯ãã¡ãŒãªã³ã°ãªã¹ããå¿ èŠã§ãã ãããã®2ã€ããããŸã-ãã¡ããã©AndroidïŒã¢ã³ããã€ãéçºè ïŒããšãNDKïŒã¢ã³ããã€ã-ndkïŒãæã£ãŠãã人ã®ããã«ãã NDKã§ã®ç§ã®åé¡ã¯ãã»ãšãã©ãªãããã§ãã®ã§ãæåã®ãªã³ã¯ãéããŸã...ãããŠãããã®ã°ã«ãŒãã¯ãã«ãŠã§ã¢ãéä¿¡ããã®ã§ãéããŸããã 眲åãGoogleããã
æããªé©ãã®ã·ãŒã³ã
ããŠãNDKéçºè åãã«2çªç®ã®ã°ã«ãŒããéããŸãã 圌女ã¯åŽåè ã§ãã ç§ãã¡ã¯CMakeãšããèšèãæ€çŽ¢ã«åãå ¥ããé¢çœããã®ãèŠã€ããŠèŠã€ããããšæã£ãŠããŸãïŒ ãããã¯ã®ã¿ã€ãã«ã¯ãAndroid Studioã«å€éšCMakeãäŒããã«ã¯ã©ãããã°ããã§ããïŒã 圌女ã®ç°¡åãªã¬ãã¥ãŒã«ãããšãããããŸãã«å€æŽãè°è«ãããå Žæã§ããããã©ã°ã€ã³ã«ããŒãžã§ã³3.0.0ãç»å Žããããšã瀺ããŠããŸãã ãã®æ©äŒã ãã©ã°ã€ã³ã§äœããç解ããŠãã人ããããã¯ã«åŒã°ããŸããã 圌ã¯ããããã¯ã®äœæè ã«ãªããžããªãžã®ãªã³ã¯ãæäŸããŸããïŒãªããžããªã䜿çšããããã«æžãããŠããã®ãšåã圹ã«ç«ããªããã®ã§ãïŒã
ããã§ååã§ããã Googleæ€çŽ¢ã§ååãä»ããŠãããã«ãªããžããªã§ååãèŠã€ããŸãã ã 確ãã«ãããã¯studio-2.2-preview3ãã©ã³ãã®ãã¡ã€ã«ã§ãããã€ãŸããCMakeã®å€éšããŒãžã§ã³ãšã®çµ±åããªãã£ã以åã®ãã¡ã€ã«ã§ãã
ãããããã¯ããã«æ©ãæ¥ãã¯ãã ã£ãããšãããããŸãã-2幎åããã©ã°ã€ã³éçºè ã¯ãã¹ã¿ãŒãžã®ã³ããããåæ¢ãããã©ã³ãã§ãã¹ãŠã®éçºãéå§ããçµæãã¡ã€ã³ã«ã¢ããããŒãããŸããã§ããã ç§ãæ£åœåããã®ã¯ããã®ã¹ã¿ã€ã«ã§Gitã䜿çšããããšããªããšããããšã§ããäžè¬çã«ãèŠããã¹ãŠã®ãããžã§ã¯ãã¯ãéåžžãæçµçã«masterã®å€æŽãããŒãžããŸããã ãã ãããã©ã³ãã®ãªã¹ãã詳ãã調ã¹ãå¿ èŠãããããšãç¥ã£ãŠãããšããŠããæ£ãããã©ã³ããèŠã€ããã®ã¯äºå®ã§ã¯ãããŸãããäœçŸãã®ãã©ã³ãããããäœææ¥ã衚瀺ãããªããããååãããããŸããã§ããã
ãã©ã³ãåãçŽæ¥studio-3.0ã®URLã«å€æŽãã...ãèŠã€ããŸããããå®å šã§ã¯ãããŸããããã®ãã¡ã€ã«ã«ã¯ãCMake Serverãããã³ã«ã®ããŒãžã§ã³ãžã®åç §ããããŸããã ããããããã¯ããæããã®ã§ã¯ãããŸãããWebã€ã³ã¿ãŒãã§ãŒã¹ã®ãããã§ãã¬ããšã¯ç°ãªããtgzã§å¥ã®ãªããžããªãã©ã«ããŒãããŠã³ããŒãããŠãããããæ€çŽ¢ã§ããŸãã
ã³ãŒããèŠããšããããæ¬åœã«ãããã³ã«ããŒãžã§ã³ã§ããããšãããããŸããã ãã©ã°ã€ã³ã¯ãããæ確ãªéä¿¡1.0ïŒgetSupportedVersioné¢æ°å ïŒãšæ¯èŒããæ°ããCMakeã¯1.1ã䜿çšããŸããïŒãšããã§ã次ã®ããŒãžã§ã³ã§ã¯ããã§ã«1.2ã«ãªããŸãïŒã CMakeã³ãŒãã調æ»ãããšãããããŒãžã§ã³1.1ã§æ ¹æ¬çã«ç Žå£ããããã®ã¯äœãè¿œå ãããªãããšãããã£ãããããã®æããªãã§ãã¯ä»¥å€ã«Android Studioãåäœããã®ã«é害ã¯ãããŸããã§ããã ãããã£ãŠããã£ã¹ã¯äžã«gradle-core-3.0.0.jarãã¡ã€ã«ãèŠã€ãããã®ã¯ã©ã¹ãåé€ããJava Bytecode Editorã䜿çšããŠããã¹ãŠãæ©èœããããã«ãã§ãã¯ãå€æŽããŸããïŒ å 責äºé ïŒèªå® ã§ç¹°ãè¿ããªãã§ãã ããïŒè·å ŽïŒ;ããªãã¯ã¯å¿ æ»ã§éåžžã«æã£ãŠããããã°ã©ããŒã«ãã£ãŠè¡ãããŸãã ïŒã
ãããŠããã¯åããã
PSå®éã«ã¯ãããã§ã¯ãããŸãããäœããã®çç±ã§ãAndroidã§ãã«ãããå ŽåãCMakeã¯ãœãŒã¹ãã¡ã€ã«ãžã®èª€ã£ãçžå¯Ÿãã¹ã䜿çšããŸãããœãŒã¹ãã¡ã€ã«ã¯ãªããžã§ã¯ããã¡ã€ã«ã«ç§»åãããã®çµæãã©ã€ãã©ãªå ã®ãããã°æ å ±ã«ç§»åããŸãã ãããŠãã©ã€ãã©ãªãŒããŸã£ãããªãããããããã¬ãŒã¯ãããã®ãã¹ã§äœãèŠã€ããããšãã§ããŸããã ããããããã¯å¥ã®ãã¯ããã«çã話ã§ãã