
éèŠãªæŽæ°ã èšäºãèªãåã«èªã
ç§ã®ããã§ããããã®åºçç©ã«é¢ããŠæ··ä¹±ãçããŸããã ããã§ããã®èŠåãè¿œå ããããšã«ããŸããã
ãã®äžé£ã®èšäºã§ã¯ãç¹å®ã®cpprtã«é¢ä¿ãªããç¹å®ã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã®éçºã®æŽå²ããã匷調ãããã£ãã®ã§ãã ã¹ããŒãªãŒã¯ããœãŒã¹ã³ãŒãã®äœæïŒã©ã€ãã©ãªèªäœã«é¢ä¿ãªãã人ã ãèªãããšã«èå³ãæã€ããã€ãã®èå³æ·±ããã®ã«éç¹ã眮ããŠïŒããããªããžããªã®äœæïŒCMakeã¬ãã¹ã³ã§ïŒããã³ã©ã€ãã©ãªã®ããã¢ãŒã·ã§ã³ïŒããã¢ãŒã·ã§ã³ã®äžéšã«ãã®ã·ãªãŒãºã®èšäºã®çºè¡ãå«ãŸããïŒã«ãããŸãã ãªãŒãã³ãœãŒã¹ãæçš¿ããããšãèããŠããããæããŠããããæ¹æ³ãç¥ããªãã£ã人ã ã®ããã®ãã®ãããªãã¬ãŒãã³ã°ãã¢ãããžã§ã¯ãã
ãã¡ãããå³æžé€šãã©ãããããã掻æ°ã¥ãããã©ããã¯æ°ã«ããŸããããèšäºã®äžã«ã¯æå°éã®å³æžé€šåºåãããããŸããïŒãã¿ãã¬ã®äžã«é ãããšããŸããïŒã ããããããã§ãããã®ãµã€ã¯ã«ã®ç®çã¯ããªãæè²çã§ãããç§ãæãã§ããããã«ãäžè¬çã«ã¯å³æžé€šãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãªãã«é©çšã§ãããšèããŸããã
äžé£ã®èšäºãèªããšãã«ãããèæ ®ããŠãã ããã
ãã®äžé£ã®èšäºã§ã¯ãç¹å®ã®cpprtã«é¢ä¿ãªããç¹å®ã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã®éçºã®æŽå²ããã匷調ãããã£ãã®ã§ãã ã¹ããŒãªãŒã¯ããœãŒã¹ã³ãŒãã®äœæïŒã©ã€ãã©ãªèªäœã«é¢ä¿ãªãã人ã ãèªãããšã«èå³ãæã€ããã€ãã®èå³æ·±ããã®ã«éç¹ã眮ããŠïŒããããªããžããªã®äœæïŒCMakeã¬ãã¹ã³ã§ïŒããã³ã©ã€ãã©ãªã®ããã¢ãŒã·ã§ã³ïŒããã¢ãŒã·ã§ã³ã®äžéšã«ãã®ã·ãªãŒãºã®èšäºã®çºè¡ãå«ãŸããïŒã«ãããŸãã ãªãŒãã³ãœãŒã¹ãæçš¿ããããšãèããŠããããæããŠããããæ¹æ³ãç¥ããªãã£ã人ã ã®ããã®ãã®ãããªãã¬ãŒãã³ã°ãã¢ãããžã§ã¯ãã
ãã¡ãããå³æžé€šãã©ãããããã掻æ°ã¥ãããã©ããã¯æ°ã«ããŸããããèšäºã®äžã«ã¯æå°éã®å³æžé€šåºåãããããŸããïŒãã¿ãã¬ã®äžã«é ãããšããŸããïŒã ããããããã§ãããã®ãµã€ã¯ã«ã®ç®çã¯ããªãæè²çã§ãããç§ãæãã§ããããã«ãäžè¬çã«ã¯å³æžé€šãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãªãã«é©çšã§ãããšèããŸããã
äžé£ã®èšäºãèªããšãã«ãããèæ ®ããŠãã ããã
ãã®èšäºã¯ãC ++ã¯ã©ã¹ã«é¢ããæå°éã®ã¡ã¿æ å ±ãè¿œå ããŠäœ¿çšããããã«èšèšãããcpprtã©ã€ãã©ãªã«é¢ããã·ãªãŒãºã®ç¬¬2åã§ãã
æåã®èšäºãšã¯ç°ãªããcpprtã©ã€ãã©ãªèªäœã«ã€ããŠã¯ã»ãšãã©äœããããŸããã GitHubã§ææåãããåºçç©ã®ã©ã€ãã©ãªã®èšèšã®æŽå²ã説æããããã«ãã©ã€ãã©ãªããå¯èœãªéã詳现ã«æœè±¡åããããšãè©Šã¿ãŸããã
ãã®èšäºã§ã¯ãã©ã€ã»ã³ã¹ã®åé¡ããããžã§ã¯ãæ§é ãããã³CMakeã«å€ãã®æ³šæãæãããŠããŸãã
ãµã€ã¯ã«å
ã®ãã¹ãŠã®èšäºãžã®ãªã³ã¯
0.ã¯ããã«
å°å ¥çãªèšèãèšãå¿ èŠæ§ãé ãããããã«ããã®åºçç©ã®æ§é ã玹ä»ããŸãã
ã»ã¯ã·ã§ã³çªå·0 ã ãã®ã»ã¯ã·ã§ã³ã åºçç©ã®æ§é ãšå°å ¥èªã®èª¬æã
ã»ã¯ã·ã§ã³1 ã ã©ã€ã»ã³ã¹ã«ã€ããŠå°ãã
ã»ã¯ã·ã§ã³2 ã ã¡ã€ã³ãããžã§ã¯ãã®gitãªããžããªãšã¯å¥ã®ãµããããžã§ã¯ãã®gitãªããžããªãäœæããæ¹æ³ã«ã€ããŠå°ã説æããŸãã
ã»ã¯ã·ã§ã³3 ã äžè¬çãªãããžã§ã¯ãã®æ§é ã«é¢ããèããšãããã€ãã®æ¢åã®ãªããžããªã®æ§é ãåæããããšããŠããŸãã
ã»ã¯ã·ã§ã³4 ã cpprtãããžã§ã¯ãã®cmakeæ§æéçºèšé²ã«åºã¥ããCMakeã¬ãã¹ã³ã
ã»ã¯ã·ã§ã³5 ã ããã¥ã¡ã³ãã«é¢ããããã€ãã®èšèãšå€ãã®ãªã³ã¯ã
ã»ã¯ã·ã§ã³6 ã å³æžé€šã®ä¿é²ã«é¢ããèããèšããçãã»ã¯ã·ã§ã³ã
ã»ã¯ã·ã§ã³7 ã çµè«ãšã¯ã¬ãžããã
ã ãã æ§é ãããããŸã ã©ããã§éå§ããå¿ èŠããããŸã...ããŠãããããã£ãŠã¿ãŸãããã
èšäºã®ç®çïŒ GitHubã§å ¬éããããã«ã©ã€ãã©ãªãæºåããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ç§ã¯èšäºã«åãçµã¿ãªãããåæã«ãªãŒãã³ãœãããŠã§ã¢ã®äžçã®ããã€ãã®åŽé¢ã調æ»ããŸããã ç§ã®æèŠã§ã¯ããã®ããããã®èšäºã¯æ è¡ã®æåã®æ®µéã«ãã人ã«ãšã£ãŠè²Žéãªãã®ã«ãªããŸããçŽ æãæ¢ããŠãããã¯ãŒã¯å šäœãç»ãå¿ èŠã¯ãããŸããããªããžããªãåéããããã«è¡ããªããã°ãªããªãã£ããµã€ããžã®ãªã³ã¯ãæ倧éã«ç¶æããããšããŸããã
ãã®èšäºã®ããã«ããªããžããªãçæ³ãšã¯ã»ã©é ãããšãããç¥ã£ãŠããŸãã å人ã§æžããŠãã³ã¡ã³ããæžããŠãå³æžé€šãèŠãŠãå³æžé€šã«ã³ãããããŠãã ãã-ç§ã¯èšäºã®ã¯ã¬ãžããã§ãªãããææ¡ã®èè ã«èšåããããšãå¿ããªãã§ãããã ããªãã®ç·šéã®ããããã¯ãããªãã®è¶³è·¡ã§ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®äžçã«å ¥ã人ã ãå©ããŸãïŒ
ããããã®åãã¿ãèŠããŸãã...ããŠãä»å°ãæŽââå²ã ã·ãªãŒãºã®æåã®èšäºã§ãcpprtã©ã€ãã©ãªã¯ã©ã¹ãšãã¯ããç§ã®å€§èŠæš¡ãããžã§ã¯ãã®äžéšãšããŠäœ¿çšãããããšã«èšåããŸããã ãããã¯åå¥ã«å²ãåœãŠããããåã«ãœãŒã¹ã³ãŒãã®äžéšãšããŠååšããŠããŸããã ããããããæç¹ã§ããããã®ã¯ã©ã¹ã¯ã¡ã€ã³ãããžã§ã¯ãã«ã»ãšãã©äŸåããããã®æ©èœã¯èªçµŠèªè¶³ã§ãããããã€ãã®å žåçãªã¿ã¹ã¯ã«é©çšã§ããããšã«æ°ä»ããŸããã
ãããŠããããžã§ã¯ãã®äžéšãå¥ã®ãµããããžã§ã¯ãã«åããé·å¹Žã®å€¢ã§ãããªãŒãã³ãœãŒã¹ã©ã€ãã©ãªãå ¬éããããšãå®çŸããããšã«ããŸããã
ããã«èªãåã«ããããã次ã®èããèªãããšã«èå³ãããã§ãããïŒæåã®èšäºãèªãã§ããªãå ŽåïŒïŒãããã®åºçç©ã®æ¬åœã®é°æ¹¿ãªåæ©ã®èªèïŒ ãªã³ã¯ ïŒã
ãããŠãèªè ãžã®ããã«2ã€ã®èŠåïŒ
æ ã«é¢ããå
責äºé
ãã®èšäºã«ã¯å®è³ªçã«ç§ã®èããå«ãŸããŠããŸããã ããã¯ãããŸããŸãªãœãŒã¹ã®ã³ã³ãã€ã«ã§ãã åé¡ã¯ããµã€ã¯ã«ã®æåã®èšäºãéçºïŒåµé ããã»ã¹ïŒã«çŽæ¥é¢ä¿ããå Žåãæ確ã«èŠå¶ãããã¹ãã§ãããã§ããã°ã§ããã ãã€ãã·ã¢ãããæããªããåãå
¥ããããæšæºãšæ¹æ³ã«ã€ããŠè¿°ã¹ãŠããããšã§ãã ãããã£ãŠãå°æ°ã®èªåã®èããšè±å¯ãªãªã³ã¯ã
çšèªã®ã«ãªã¹ã«é¢ããã¡ã¢
ãŸãããã®èšäºã§æ¯é
çãªçšèªã®æ··ãããã«èªèããããšæããŸãã ã解決æžã¿ãããããããŒã®æ€çŽ¢æ¹æ³ãããã¢ã»ã³ããªã®ç®æšããªã©...ãããã®ãã¹ãŠã®æŠå¿µããã·ã¢èªã§åœåããã®ãæ
£äŸã§ããããç解ããããšããŸããããåãå
¥ããããåœåã·ã¹ãã ãèŠã€ãããŸããã§ããã äžè¬çãªçšèªãæããŠãããã°ãçšèªãæ確ã§ãªãå Žåãååãå€æŽããå Žåã¯ãå人çã«ããŸãã¯ã³ã¡ã³ãã«æžããŠèª¬æããŸãã
ããã§ããã®äœåãèªãããšãæããšã©ãŸãããããšãã§ããªãã£ãããè¡ããŸãããïŒ
1.ã©ã€ã»ã³ã¹ã®éžæ

ããããšã
-ãã®ã»ã¯ã·ã§ã³ã¯ããŠãŒã¶ãŒCheaterã® ã³ã¡ã³ãã«é¢é£ããŠå€å°ä¿®æ£ãããè£è¶³ãããŠããŸãã ããã€ãã®äžæ£ç¢ºããšãã¥ã¢ã³ã¹ãææããŠããã圌ã«æè¬ããŸãã
-Gorthauer87ã«æè¬ããŸããGorthauer87㯠ããã®ã©ã€ã»ã³ã¹ã«é¢ããã³ã¡ã³ãã§äžæ£ç¢ºãªç¹ãããã€ãææããŸããã
-Gorthauer87ã«æè¬ããŸããGorthauer87㯠ããã®ã©ã€ã»ã³ã¹ã«é¢ããã³ã¡ã³ãã§äžæ£ç¢ºãªç¹ãããã€ãææããŸããã
ã³ãŒãã®å質ã«é¢ä¿ãªããç§ã®ç®ã«ã¯ãœãŒã¹ã³ãŒããããéããªããŸãã äžéšã®äººã«ãšã£ãŠã¯ã°ãããŠããããã«æãããããããŸããããç§ã«ãšã£ãŠã¯ã©ã€ã»ã³ã¹ã®ããåžœåã§ãã ããã«ç§ã¯èŠãŸãïŒåžœåããããŸã-ããã¯ãããžã§ã¯ããæ¬åœã«é²ãã§ããããšãæå³ããŸãã åžœåã¯ãããŸãã-ããã»ã©ã¯ãŒã«ã§ã¯ãããŸããã ããã¯äœããã®åœ¢ã§æœåšæèã«èªåçã«äœçšããŸãã
ãããã£ãŠãã©ã€ãã©ãªãå ¬éããããšã決ãããšããæåã«è§Šããã®ã¯ããœãŒã¹ã«ã©ã€ã»ã³ã¹æ å ±ãå«ããããšã§ããã ãããŠããã®ããã«ãã©ã€ã»ã³ã¹ãéžæããå¿ èŠããããŸããã
ç§ã¯ã©ã€ã»ã³ã¹ã®åé¡ãæ éã«ç 究ãå§ããŸããã ç§ã¯ãã€ããã®ãããã¯ãæããŠããŸããã ç§ã¯èããŸããïŒééã£ãã©ã€ã»ã³ã¹ãéžæããŸã-ãããŠä»ãç§ã¯æ祚暩ãå«ããããªãæš©å©ãæããã«ãç§ã®çµãããŸã§ç¡æã§ã³ãŒãããµããŒããã矩åããããŸãã
å®éã«ã¯ããã¹ãŠãããã»ã©æããªãããšãå€æããŸãã-ãããã«ããããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®ã©ã€ã»ã³ã¹ã«ã€ããŠè©±ãå ŽåïŒç§ã¯ãŸã ç¬èªã®ã©ã€ã»ã³ã¹ãèŠã€ããŠããŸããïŒã éžæããéã«èŠããŠãããªããã°ãªããªãå¯äžã®ããšã¯ããã®ãããªã©ã€ã»ã³ã¹ã2ã€ã®ã°ã«ãŒãã«åããããšãã§ãããšããããšã§ãïŒ ãªãŒãã³ãœãŒã¹ãšããªãŒãœãããŠã§ã¢ ã 䌌ãŠããããã«èãããŸããããªãããµã§èšãããã«ã2ã€ã®å€§ããªéãããããŸãã ããèŠãŠã¿ãŸãããïŒ
ãªãŒãã³ãœãŒã¹ 泚æããªãŒãã³ãœãŒã¹ã®ããªãŒãã³ãã¯å¶ç¶ã§ã¯ãããŸããïŒ ãªãŒãã³ãœãŒã¹ã¯ãããã䜿çšãããã¹ãŠã®ã³ãŒãããªãŒãã³ãœãŒã¹ã«ããŸããåæã«ããªãŒãã³ãœãŒã¹ã³ãŒãã®ãœãŒã¹ã¯èŠæ±ã«å¿ããŠãªãŒãã³ããå¿ èŠããããŸãã
ããšãã°ããªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã®äžã§ãããžã§ã¯ãã§ã©ã€ãã©ãªã䜿çšããŸãã 1幎ã䜿ãã2幎ã䜿ããŸã...ãããŠçªç¶ã ãã¹ãŠã®ã³ãŒãã衚瀺ããããã«æ±ããããŸãã ãããŠãããªãã«ã¯æåŠããæš©å©ã¯ãããŸããïŒ åŒ·å¶ITå ±ç£äž»çŸ©ã ããœãŒã¹ããšã®ããããããããœãŒã¹ããšã®ãããããžãã ãã®èŠèŸŒã¿å®¢ãããªããæããããŠããå Žå-æ¥ç¶ããŠãããããžã§ã¯ãã®ã©ã€ã»ã³ã¹ã«æ³šæããŠãã ããã
ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ãã¡ããªå ã®ã³ãŒãã®ãªãŒãã³æ§ãä¿èšŒããäžé£ã®ã¡ãœããã«ã¯ã ç¬èªã®ååcopyleftããããŸãã ã³ããŒã¬ãããå«ãã¡ã€ã³ã©ã€ã»ã³ã¹ã¯ãGPL ïŒGeneral Public LicenseïŒãšãã®é¢é£ã©ã€ã»ã³ã¹ã§ãïŒã³ããŒã¬ããã®GPL 3ã©ã€ã»ã³ã¹ããåŒçšïŒ ãGNU General Public Licenseã¯ããœãããŠã§ã¢ããã³ãã®ä»ã®çš®é¡ã®äœåã®ç¡æã®ã³ããŒã¬ããã©ã€ã»ã³ã¹ã§ã ïŒïŒ ã
ã©ã€ã»ã³ã¹èªäœããã®åŒçšãšãšãã«ãGPLã®è©³çŽ°ãã芧ãã ãã
GPL 3.0ã®ã©ã€ã»ã³ã¹ãç解ãã ãã®ç¿»èš³ãèªãã§ããããŸããªç¬éã«ãªãªãžãã«ãåç
§ããŸããã
ã©ã€ã»ã³ã¹ã®ãŠã€ã«ã¹æ§ã®çãã¯ãæ¡é 5ã䜿çšããŠå®è£ ãããŸãããã®æ¡é ã§ã¯ãGPLã©ã€ã»ã³ã¹ã«åºã¥ããŠé åžããã補åã®ä¿®æ£ããŒãžã§ã³ãGPLã©ã€ã»ã³ã¹ã«æºæ ããå¿ èŠããããŸããããã¯ããã®è£œåãå ã®è£œåã®ãä¿®æ£ãããã³å€æŽã®æ£ç¢ºãªæ¥ä»ã§ããããšã瀺ããŠããŸãã
å®çŸ©ïŒã©ã€ã»ã³ã¹ã®ãã€ã³ã0ïŒãèªãã å ŽåããœãŒã¹ã³ãŒãã®å€æŽãšããæŠå¿µã§ã¯ãå ã®ã³ãŒãã®å€æŽãšã³ãŒãã§ã®äœ¿çšã®äž¡æ¹ãæå³ããŸãã åŒçšïŒ
äœåïŒã©ã€ã»ã³ã¹è£œåã¯ã©ã€ã»ã³ã¹è£œåïŒããä¿®æ£ããããšã¯ãæ£ç¢ºãªã³ããŒãäœæãã以å€ã«ãèäœæš©ã®èš±å¯ãå¿ èŠãšããæ¹æ³ã§äœåã®å šéšãŸãã¯äžéšãã³ããŒãŸãã¯æ¹å€ããããšãæå³ããŸãã çµæã®äœåã¯ã以åã®äœåã®ãä¿®æ£çã ãŸãã¯ã以åã®äœåã« ã åºã¥ãããäœåããšåŒã°ããŸãã
ãããã£ãŠãGPLã©ã€ã»ã³ã¹ã®äžã§ã©ã€ãã©ãªé¢æ°ãåŒã³åºããããã¡ã€ã«ã¯ã©ã€ãã©ãªã®ä¿®æ£ã§ãããGPLã®äžã§é åžãããããã«ãªããŸãã åãããšããããã䜿çšãããã¹ãŠã®ãã¡ã€ã«ã§çºçããååãšããŠããã¹ãŠã®ã³ãŒãã¯é¢æ°åŒã³åºãã®ããªãŒã®æå³ã§äžè²«ããŠããããããã¹ãŠã®ã³ãŒãã¯GPLã«ãªããŸãã
GPLã®ã€ããªãã®ãŒ ãã€ãŸããããŒãºã«åãããŠããã°ã©ã ãèªç±ã«ä¿®æ£ããããšããæ¡é ãèæ ®ãããšãGPLã©ã€ã»ã³ã¹ãããã€ã©ã«ãã§ããçç±ã¯æããã§ãã ã©ã€ã»ã³ã¹ããã©ã€ãã©ãªAPIãšçŽæ¥å¯Ÿè©±ããã³ãŒãããªãŒãã³ã¢ã¯ã»ã¹ã®ã¿ã§ã¬ã€ã¢ãŠãããèŠä»¶ã課ãå Žåãã©ã€ãã©ãªé¢æ°ãããèªäœããåŒã³åºããèŠæ±ã«å¿ããŠãããšãã°ã³ãŒãã®ã¿ãçŽæ¥éããªã©ãé¢æ°ã®ã¬ã€ã€ãŒãäœæããããšã§ç°¡åã«ãã€ãã¹ããããšãã§ããŸãã©ã€ãã©ãªã³ãŒãã䜿çšãããšããŠãŒã¶ãŒã¯ç¬ç«ããå€ãæããªãé¢æ°ã®ãã®ã¬ã€ã€ãŒã®ã¿ãéããŸãã
ã³ã³ãã€ã«ãããããã°ã©ã ã®é ä¿¡æã«ãœãŒã¹ã³ãŒããéãèŠä»¶ã¯ãã©ã€ã»ã³ã¹ã®æ¡é 6ã«ãã£ãŠä¿èšŒãããŠããŸããããã«ããã®æ¡é ã§ã¯ãä¿®æ£ã®äœæè ããœãŒã¹ã³ãŒãã®ã¢ã»ã³ããªãã»ããã¢ãããããã®ããã®ãã«ãã·ã¹ãã ã®ã¹ã¯ãªãããŸãã¯ãã®ä»ã®ãã¡ã€ã«ãæäŸããã®ãæ¯æŽããå¿ èŠããããŸãã
æ€çŽ¢äžã«èŠã€ãã£ãèå³æ·±ããã®ïŒ
1.ãè²æž¡ããã³ããŒããšã«äŸ¡æ Œãèšå®ããå Žåãšããªãå ŽåãããããµããŒããæäŸããããæéãä¿èšŒããããšãã§ããŸããã ããã«ã€ããŠã¯ãgnu.org FAQã®äžéšãšããŠã®åçããããŸã ã ã€ãŸããééã®ã³ãŒããµããŒãã販売ããããééã®ã³ãŒãã販売ãããããããšãã§ããŸãããåæã«ããã°ã©ã ã®ã³ããŒãåãåã£ã人ã¯ãèªåã«é©ããæ¹æ³ã§ãããé åžããããšãã§ããŸãããã®ããŒãã«é¢ããgnu.org FAQãªã³ã¯ïŒã
2. GPLã®äžã§ã®ã補åãã®æŠå¿µã®äžè¬åïŒ
TimesïŒ ãããã°ã©ã ããšã¯ããã®ã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããèäœæš©ã®ããäœåãæããŸã ''
2ïŒ äœåã®ããœãŒã¹ã³ãŒãããšã¯ãäœåã«ä¿®æ£ãå ããããã®äœåã®å¥œãŸãã圢æ ãæå³ããŸãã ããªããžã§ã¯ãã³ãŒãããšã¯ãéãœãŒã¹åœ¢åŒã®äœåãæå³ããŸãã
ãã®äžè¬åã«ãããã©ã€ã»ã³ã¹ã¯ãœãŒã¹ã³ãŒã以å€ã®è£œåã«é©çšã§ããŸãã
3.ãã©ã€ã»ã³ã¹äœåãä»ã®ç¬ç«ããäœåãšã³ã³ãã€ã«ããŸãããããã¯æ¬è³ªçã«ã©ã€ã»ã³ã¹äœåã®å»¶é·ã§ã¯ãªããèšæ¶åªäœäžã§å€§ããªããã°ã©ã ã圢æããããã«ã©ã€ã»ã³ã¹äœåãšæ¥ç¶ããŠããŸãããã³ã³ãã€ã«ãšãã®æçµèäœæš©ã䜿çšãããªãå Žåããªãªãžãã«ã®äœåã«é¢ããç·šéãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹ãŸãã¯æ³çæš©å©ãå¶éããããã ã©ã€ã»ã³ã¹ãããäœåãéçŽã«å«ããããšã¯ããã®ã©ã€ã»ã³ã¹ã®æå¹æ§ãéçŽã®ä»ã®éšåã«æ¡åŒµãããã®ã§ã¯ãããŸããã ã€ãŸããGPLã©ã€ã»ã³ã¹ã®äžã§ã³ãŒãåŒã³åºããšãŸã£ããæ¥ç¶ãããŠããªãããã°ã©ã å ã®ã³ãŒãã®å€ç«ããéšåãããå Žåãã³ãŒãã®ãã®éšåã®ãœãŒã¹ã³ãŒããéãå¿ èŠã¯ãããŸããïŒãã®ãããªç¶æ³ã¯ã»ãšãã©æ³åã§ããŸãããããã€ã³ãã¯ã§ãïŒã
ã©ã€ã»ã³ã¹ã®ãŠã€ã«ã¹æ§ã®çãã¯ãæ¡é 5ã䜿çšããŠå®è£ ãããŸãããã®æ¡é ã§ã¯ãGPLã©ã€ã»ã³ã¹ã«åºã¥ããŠé åžããã補åã®ä¿®æ£ããŒãžã§ã³ãGPLã©ã€ã»ã³ã¹ã«æºæ ããå¿ èŠããããŸããããã¯ããã®è£œåãå ã®è£œåã®ãä¿®æ£ãããã³å€æŽã®æ£ç¢ºãªæ¥ä»ã§ããããšã瀺ããŠããŸãã
å®çŸ©ïŒã©ã€ã»ã³ã¹ã®ãã€ã³ã0ïŒãèªãã å ŽåããœãŒã¹ã³ãŒãã®å€æŽãšããæŠå¿µã§ã¯ãå ã®ã³ãŒãã®å€æŽãšã³ãŒãã§ã®äœ¿çšã®äž¡æ¹ãæå³ããŸãã åŒçšïŒ
äœåïŒã©ã€ã»ã³ã¹è£œåã¯ã©ã€ã»ã³ã¹è£œåïŒããä¿®æ£ããããšã¯ãæ£ç¢ºãªã³ããŒãäœæãã以å€ã«ãèäœæš©ã®èš±å¯ãå¿ èŠãšããæ¹æ³ã§äœåã®å šéšãŸãã¯äžéšãã³ããŒãŸãã¯æ¹å€ããããšãæå³ããŸãã çµæã®äœåã¯ã以åã®äœåã®ãä¿®æ£çã ãŸãã¯ã以åã®äœåã« ã åºã¥ãããäœåããšåŒã°ããŸãã
ãããã£ãŠãGPLã©ã€ã»ã³ã¹ã®äžã§ã©ã€ãã©ãªé¢æ°ãåŒã³åºããããã¡ã€ã«ã¯ã©ã€ãã©ãªã®ä¿®æ£ã§ãããGPLã®äžã§é åžãããããã«ãªããŸãã åãããšããããã䜿çšãããã¹ãŠã®ãã¡ã€ã«ã§çºçããååãšããŠããã¹ãŠã®ã³ãŒãã¯é¢æ°åŒã³åºãã®ããªãŒã®æå³ã§äžè²«ããŠããããããã¹ãŠã®ã³ãŒãã¯GPLã«ãªããŸãã
GPLã®ã€ããªãã®ãŒ ãã€ãŸããããŒãºã«åãããŠããã°ã©ã ãèªç±ã«ä¿®æ£ããããšããæ¡é ãèæ ®ãããšãGPLã©ã€ã»ã³ã¹ãããã€ã©ã«ãã§ããçç±ã¯æããã§ãã ã©ã€ã»ã³ã¹ããã©ã€ãã©ãªAPIãšçŽæ¥å¯Ÿè©±ããã³ãŒãããªãŒãã³ã¢ã¯ã»ã¹ã®ã¿ã§ã¬ã€ã¢ãŠãããèŠä»¶ã課ãå Žåãã©ã€ãã©ãªé¢æ°ãããèªäœããåŒã³åºããèŠæ±ã«å¿ããŠãããšãã°ã³ãŒãã®ã¿ãçŽæ¥éããªã©ãé¢æ°ã®ã¬ã€ã€ãŒãäœæããããšã§ç°¡åã«ãã€ãã¹ããããšãã§ããŸãã©ã€ãã©ãªã³ãŒãã䜿çšãããšããŠãŒã¶ãŒã¯ç¬ç«ããå€ãæããªãé¢æ°ã®ãã®ã¬ã€ã€ãŒã®ã¿ãéããŸãã
ã³ã³ãã€ã«ãããããã°ã©ã ã®é ä¿¡æã«ãœãŒã¹ã³ãŒããéãèŠä»¶ã¯ãã©ã€ã»ã³ã¹ã®æ¡é 6ã«ãã£ãŠä¿èšŒãããŠããŸããããã«ããã®æ¡é ã§ã¯ãä¿®æ£ã®äœæè ããœãŒã¹ã³ãŒãã®ã¢ã»ã³ããªãã»ããã¢ãããããã®ããã®ãã«ãã·ã¹ãã ã®ã¹ã¯ãªãããŸãã¯ãã®ä»ã®ãã¡ã€ã«ãæäŸããã®ãæ¯æŽããå¿ èŠããããŸãã
æ€çŽ¢äžã«èŠã€ãã£ãèå³æ·±ããã®ïŒ
1.ãè²æž¡ããã³ããŒããšã«äŸ¡æ Œãèšå®ããå Žåãšããªãå ŽåãããããµããŒããæäŸããããæéãä¿èšŒããããšãã§ããŸããã ããã«ã€ããŠã¯ãgnu.org FAQã®äžéšãšããŠã®åçããããŸã ã ã€ãŸããééã®ã³ãŒããµããŒãã販売ããããééã®ã³ãŒãã販売ãããããããšãã§ããŸãããåæã«ããã°ã©ã ã®ã³ããŒãåãåã£ã人ã¯ãèªåã«é©ããæ¹æ³ã§ãããé åžããããšãã§ããŸãããã®ããŒãã«é¢ããgnu.org FAQãªã³ã¯ïŒã
2. GPLã®äžã§ã®ã補åãã®æŠå¿µã®äžè¬åïŒ
TimesïŒ ãããã°ã©ã ããšã¯ããã®ã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããèäœæš©ã®ããäœåãæããŸã ''
2ïŒ äœåã®ããœãŒã¹ã³ãŒãããšã¯ãäœåã«ä¿®æ£ãå ããããã®äœåã®å¥œãŸãã圢æ ãæå³ããŸãã ããªããžã§ã¯ãã³ãŒãããšã¯ãéãœãŒã¹åœ¢åŒã®äœåãæå³ããŸãã
ãã®äžè¬åã«ãããã©ã€ã»ã³ã¹ã¯ãœãŒã¹ã³ãŒã以å€ã®è£œåã«é©çšã§ããŸãã
3.ãã©ã€ã»ã³ã¹äœåãä»ã®ç¬ç«ããäœåãšã³ã³ãã€ã«ããŸãããããã¯æ¬è³ªçã«ã©ã€ã»ã³ã¹äœåã®å»¶é·ã§ã¯ãªããèšæ¶åªäœäžã§å€§ããªããã°ã©ã ã圢æããããã«ã©ã€ã»ã³ã¹äœåãšæ¥ç¶ããŠããŸãããã³ã³ãã€ã«ãšãã®æçµèäœæš©ã䜿çšãããªãå Žåããªãªãžãã«ã®äœåã«é¢ããç·šéãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹ãŸãã¯æ³çæš©å©ãå¶éããããã ã©ã€ã»ã³ã¹ãããäœåãéçŽã«å«ããããšã¯ããã®ã©ã€ã»ã³ã¹ã®æå¹æ§ãéçŽã®ä»ã®éšåã«æ¡åŒµãããã®ã§ã¯ãããŸããã ã€ãŸããGPLã©ã€ã»ã³ã¹ã®äžã§ã³ãŒãåŒã³åºããšãŸã£ããæ¥ç¶ãããŠããªãããã°ã©ã å ã®ã³ãŒãã®å€ç«ããéšåãããå Žåãã³ãŒãã®ãã®éšåã®ãœãŒã¹ã³ãŒããéãå¿ èŠã¯ãããŸããïŒãã®ãããªç¶æ³ã¯ã»ãšãã©æ³åã§ããŸãããããã€ã³ãã¯ã§ãïŒã
å©ç¹ïŒã³ãŒãã®å®å šãªãªãŒãã³æ§ã«ãããèªè ã®ç¯å²ãåºããããå質ãåäžããäœå®¶ã®ç¯å²ãåºããªãããéçºãå éãããŸãã ãããŠããã¡ãããããäžã€ã®å©ç¹-ããªãã¯äžçã«è¯ããã®ããããããšæããŠããŸãã æŠäºã§ã¯ãªããªãŒãã³ãœãŒã¹ãäœããŸãããïŒ
çæïŒç¬èªã®ã³ãŒãããã³/ãŸãã¯åçšç§å¯ãå«ãã³ãŒãã§GPLã©ã€ã»ã³ã¹ã®äžã§è£œåã䜿çšããèœåã¯å¶éãããŠããŸãã ãªã³ããã³ãã§ãããäŒããå¿ èŠãããå Žåãããã¯ã©ã®ãããªç§å¯ã§ããïŒ
ããªãŒãœãããŠã§ã¢ ã ããªãŒãœãããŠã§ã¢ã©ã€ã»ã³ã¹ã«ããããŠãŒã¶ãŒã¯å¶éãªãã§ã³ãŒãã䜿çšããŠäœã§ãã§ããŸããå Žåã«ãã£ãŠã¯ãçŽç²ã«æ¡ä»¶ä»ãã®èŠä»¶ããããŸãïŒããšãã°ãå ã®ã©ã€ãã©ãªã®äœæè ã瀺ã矩åããããŸãïŒã ãã®ãããªã©ã€ã»ã³ã¹ã®1ã€ã¯ãããšãã°MITã©ã€ã»ã³ã¹ã§ãã ããã«ã¯ã BSDã©ã€ã»ã³ã¹ãã¡ããªãå«ãŸããŸãã
å©ç¹ïŒå¯å€§ãªåæ¥äŒç€Ÿããã®è¿œå ã®å質ã³ãããã
çæïŒè²ªæ¬²ãªäŒæ¥ã¯ãã³ãã¥ããã£ãšå ±æããã«ãã³ãŒããèªåã§çã¿ãäŒæ¥ãªããžããªã«åå²ããèªåã ãã®ããã«éãã«éçºã§ããŸãã
å£çå ¬çã©ã€ã»ã³ã¹ ã
ãªãŒãã³ãœãŒã¹ã³ãŒãã®ã©ã€ã»ã³ã¹ã«ã¯ãLGPL ïŒLesser General Public LicenseïŒããã³é¢é£ã©ã€ã»ã³ã¹ãå«ãŸããŸãã ãã®ã¿ã€ãã®ã©ã€ã»ã³ã¹ã«ã¯ããªãŒãã³ãœãŒã¹ãšããªãŒãœãããŠã§ã¢ã®äž¡æ¹ã®æ©èœãå«ãŸããŠããŸãã
LGPLã¯ãå¶éãªããã³ãŒããéãå¿ èŠãªããåçšãããžã§ã¯ããå«ããã©ãã§ããã€ããªè¡šçŸïŒå®è¡å¯èœãã¡ã€ã«ãŸãã¯åçã©ã€ãã©ãªïŒã«ã³ã³ãã€ã«ãããã³ãŒããèªç±ã«äœ¿çšã§ããŸãã
ãã ããLGPLã©ã€ã»ã³ã¹ã®äžã§ãããžã§ã¯ããœãŒã¹ããããžã§ã¯ãã®ã³ãŒãã«éçã«ãªã³ã¯ããå Žåã¯ããªãŒãã³ãœãŒã¹ã®äžçã§ç¬èªã®ãœãŒã¹ãå¿ èŠã«ãªããŸãã 幞ããªããšã«ãã©ã€ã»ã³ã¹ã«ã¯ãœãŒã¹ã³ãŒãã®å ¬éã¯å¿ èŠãããŸããã æªãç¹ã¯ããããã®ãœãŒã¹ãåéããããªããžã§ã¯ããã¡ã€ã«ã®å ¬éãå¿ èŠãªãããä»ã®äººãããããåãªã³ã¯ããŠããªãŒãã³ãœãŒã¹ã®ã€ããªãã®ãŒã«ãã£ãŠæ瀺ããããœãããŠã§ã¢ãå€æŽããæš©å©ãéµå®ã§ããããšã§ãã
LGPLã䜿çšãããããžã§ã¯ãã®äŸã¯Qtã§ãã LGPLã©ã€ã»ã³ã¹ã«ããããã®ãã€ãããã¯ã©ã€ãã©ãªã¯ãå¶éãªãã«ç¬èªã®ãœãããŠã§ã¢ã§äœ¿çšã§ããŸãïŒå ¬åŒQtãã©ãŒã©ã ã§ã®ããã®è°è«ãšqtcentreãŠã§ããµã€ãã§ã®åæ§ã®è°è« ïŒã
ã©ã€ã»ã³ã¹èªäœããã®åŒçšãšãšãã«ãLGPLã®è©³çŽ°ãã芧ãã ãã
ãã®ã©ã€ã»ã³ã¹ã®ãã·ã¢èªãžã®ãããããã翻蚳ã¯èŠã€ãããŸããã§ããïŒãã®æ¡é
ãå
ã®æèšã«å¯Ÿå¿ããŠããªãGPLæ¡é
ã«çŽæ¥é¢ä¿ãã翻蚳ã®ã¿ãèŠã€ããŸããïŒã ããã¯ãgnu.orgã®å
ã®ã©ã€ã»ã³ã¹ãžã®ãªã³ã¯ã§ãã
ãã®ã©ã€ã»ã³ã¹ã¯GPLã«åºã¥ããŠããŸãããå€ãã®æ¡é ãæ確ã«ããå€ãã®æ°ããçšèªãå°å ¥ããŸããäž»ãªçšèªã¯ãã©ã€ãã©ãªãïŒã©ã€ãã©ãª-ããã¯ã©ã€ã»ã³ã¹ã®äžã«ãã補åã®ååãGPLãWorkãšåŒã¶ãã®ïŒããã³ãçµåãã§ãäœæ¥ãïŒæ°ããã³ãŒããšã©ã€ãã©ãªã䜿çšãŸãã¯ãªã³ã¯ãããšãçµåäœæ¥ãåŸãããŸãïŒïŒ
ãã©ã€ãã©ãªããšã¯ã以äžã§å®çŸ©ãããã¢ããªã±ãŒã·ã§ã³ãŸãã¯çµåèäœç©ä»¥å€ã®ãæ¬ã©ã€ã»ã³ã¹ãé©çšããã察象èäœç©ãæããŸã
ãAãçµåãããäœåãã¯ãã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã©ãªãšçµåãŸãã¯ãªã³ã¯ããããšã«ãã£ãŠäœæãããäœåã§ãã çµåäœæ¥ãè¡ãããã©ã€ãã©ãªã®ç¹å®ã®ããŒãžã§ã³ã¯ãããªã³ã¯ããŒãžã§ã³ããšãåŒã°ããŸã»
ã©ã€ã»ã³ã¹ã®æ¬è³ªã®å€§éšåã¯4çªç®ã®æ®µèœã«èšèŒãããŠãããã©ã€ãã©ãªã®ã©ã€ã»ã³ã¹ãä»é²ãšãšãã«é åžããããã®æšæºèŠä»¶ã«å ããŠãã¢ããªã±ãŒã·ã§ã³ã®äœæè ã¯ã©ã€ãã©ãªã«åçã«ãªã³ã¯ãããã誰ã§ãã³ãŒããåéã§ãããªããžã§ã¯ããã¡ã€ã«ãæäŸããå¿ èŠããããšè¿°ã¹ãŠããŸãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã«ãå€æŽããŠããªããžã§ã¯ããã¡ã€ã«ãäœæããŸãã
ããèå³æ·±ãããšïŒ
1.ãã®ã©ã€ã»ã³ã¹ã¯ãGPLã«å¯Ÿããè¿œå ã®è²æ©ã®ã»ãããšããŠGPLãšãšãã«èšåãããã¹ãã§ãããGPLãå¥åã®ãã¡ã€ã«ãšããŠäœ¿çšãããå ŽåãLGPLã¯æ確åãããè¿œå ãã¡ã€ã«ãšããŠèšè¿°ãããã¹ãã§ãã
2.ã©ã€ã»ã³ã¹ã®2çªç®ã®æ®µèœïŒ Conveying Modified Versions ïŒã¯ãLGPLã©ã€ã»ã³ã¹ã®äžã§ã©ã€ãã©ãªèªäœã®ãœãŒã¹ã³ãŒãã«å€æŽãå ããããå ŽåïŒãã®å Žåãã©ã€ãã©ãªé¢æ°ãžã®åŒæ°ã®åãæž¡ãã«å ããŠãããããå€æŽã§ããããšãæ確ã«ããŸãïŒãå ¬éãããå€æŽã¯ãå€æŽãããã©ã€ãã©ãªã®æ©èœãä¿èšŒããããLGPLãå é€ããããšãªãGPLã®ã©ã€ã»ã³ã¹ãå€æŽããå¿ èŠããããŸãã
3.ã©ã€ã»ã³ã¹ã®3çªç®ã®ãã€ã³ãã¯ãã©ã€ãã©ãªããããŒãã¡ã€ã«ããã©ã€ãã©ãªã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãã€ããªã³ãŒãã«ã³ã³ãã€ã«ããæ©èœã瀺ããŸãïŒã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒããå ¬éããèŠä»¶ã¯ãããŸããããLGPLã©ã€ã»ã³ã¹ã§ã¢ããªã±ãŒã·ã§ã³ãé åžããèŠä»¶ããããŸãïŒã
ãã®ã©ã€ã»ã³ã¹ã¯GPLã«åºã¥ããŠããŸãããå€ãã®æ¡é ãæ確ã«ããå€ãã®æ°ããçšèªãå°å ¥ããŸããäž»ãªçšèªã¯ãã©ã€ãã©ãªãïŒã©ã€ãã©ãª-ããã¯ã©ã€ã»ã³ã¹ã®äžã«ãã補åã®ååãGPLãWorkãšåŒã¶ãã®ïŒããã³ãçµåãã§ãäœæ¥ãïŒæ°ããã³ãŒããšã©ã€ãã©ãªã䜿çšãŸãã¯ãªã³ã¯ãããšãçµåäœæ¥ãåŸãããŸãïŒïŒ
ãã©ã€ãã©ãªããšã¯ã以äžã§å®çŸ©ãããã¢ããªã±ãŒã·ã§ã³ãŸãã¯çµåèäœç©ä»¥å€ã®ãæ¬ã©ã€ã»ã³ã¹ãé©çšããã察象èäœç©ãæããŸã
ãAãçµåãããäœåãã¯ãã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã©ãªãšçµåãŸãã¯ãªã³ã¯ããããšã«ãã£ãŠäœæãããäœåã§ãã çµåäœæ¥ãè¡ãããã©ã€ãã©ãªã®ç¹å®ã®ããŒãžã§ã³ã¯ãããªã³ã¯ããŒãžã§ã³ããšãåŒã°ããŸã»
ã©ã€ã»ã³ã¹ã®æ¬è³ªã®å€§éšåã¯4çªç®ã®æ®µèœã«èšèŒãããŠãããã©ã€ãã©ãªã®ã©ã€ã»ã³ã¹ãä»é²ãšãšãã«é åžããããã®æšæºèŠä»¶ã«å ããŠãã¢ããªã±ãŒã·ã§ã³ã®äœæè ã¯ã©ã€ãã©ãªã«åçã«ãªã³ã¯ãããã誰ã§ãã³ãŒããåéã§ãããªããžã§ã¯ããã¡ã€ã«ãæäŸããå¿ èŠããããšè¿°ã¹ãŠããŸãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã«ãå€æŽããŠããªããžã§ã¯ããã¡ã€ã«ãäœæããŸãã
ããèå³æ·±ãããšïŒ
1.ãã®ã©ã€ã»ã³ã¹ã¯ãGPLã«å¯Ÿããè¿œå ã®è²æ©ã®ã»ãããšããŠGPLãšãšãã«èšåãããã¹ãã§ãããGPLãå¥åã®ãã¡ã€ã«ãšããŠäœ¿çšãããå ŽåãLGPLã¯æ確åãããè¿œå ãã¡ã€ã«ãšããŠèšè¿°ãããã¹ãã§ãã
2.ã©ã€ã»ã³ã¹ã®2çªç®ã®æ®µèœïŒ Conveying Modified Versions ïŒã¯ãLGPLã©ã€ã»ã³ã¹ã®äžã§ã©ã€ãã©ãªèªäœã®ãœãŒã¹ã³ãŒãã«å€æŽãå ããããå ŽåïŒãã®å Žåãã©ã€ãã©ãªé¢æ°ãžã®åŒæ°ã®åãæž¡ãã«å ããŠãããããå€æŽã§ããããšãæ確ã«ããŸãïŒãå ¬éãããå€æŽã¯ãå€æŽãããã©ã€ãã©ãªã®æ©èœãä¿èšŒããããLGPLãå é€ããããšãªãGPLã®ã©ã€ã»ã³ã¹ãå€æŽããå¿ èŠããããŸãã
3.ã©ã€ã»ã³ã¹ã®3çªç®ã®ãã€ã³ãã¯ãã©ã€ãã©ãªããããŒãã¡ã€ã«ããã©ã€ãã©ãªã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãã€ããªã³ãŒãã«ã³ã³ãã€ã«ããæ©èœã瀺ããŸãïŒã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒããå ¬éããèŠä»¶ã¯ãããŸããããLGPLã©ã€ã»ã³ã¹ã§ã¢ããªã±ãŒã·ã§ã³ãé åžããèŠä»¶ããããŸãïŒã
å©ç¹ïŒåæ¥çµç¹ã®ã³ãŒãã®å質ã«å¯Ÿããéæ¥çãªé¢å¿ïŒåéãããã©ã€ãã©ãªã®ã³ãŒããããŸãæ©èœããããšãæãã§ããŸãïŒãšåæã«ãLGPLãããžã§ã¯ãã®éçºã®çŠæ¢ã¯ãç¡æã®ãœãããŠã§ã¢ã©ã€ã»ã³ã¹ã§å¯èœãªããµã€ã¬ã³ããã§ãã
çæïŒç¬èªã®ãœãããŠã§ã¢ã§LGPLã©ã€ã»ã³ã¹ã®äžã§ã©ã€ãã©ãªã䜿çšããã«ã¯ãdllïŒãŸãã¯.soïŒã§ã¢ã»ã³ãã«ãããã©ã€ãã©ãªãšè£œåã®ãªã³ã¯ãæŽçããå¿ èŠããããŸãã LGPLã䜿çšããã³ãŒããåéãããŠããŸãã
ä»ã®èå³æ·±ãã©ã€ã»ã³ã¹ã«ã€ããŠç¥ã£ãŠããå Žåã¯ãã³ã¡ã³ãã§ãããã«ã€ããŠæžãããšãã§ããŸãã 誰ã«ãšã£ãŠãé¢çœããšæããŸãã
æ¢åã®ã©ã€ã»ã³ã¹ãæ€èšããåŸãç§ã¯MITã©ã€ã»ã³ã¹ãæãèªç±ãªã©ã€ã»ã³ã¹ã®1ã€ãšããŠéžæããŸãã ã ä»ã®å©ç¹ã®äžã§ããMITã©ã€ã»ã³ã¹ã¯éåžžã«ç°¡æœã§ã-ç解å¯èœã§ããã掟ç補åã®ãªãŒãã³æ§ã«å¯Ÿããæš©å©ãä¿è·ããããã®è€éãªã«ãŒã«ãå«ããå¿ èŠã¯ãããŸããã
ãã®ã»ã¯ã·ã§ã³ã®æåŸã«ãããããã®ãªã³ã¯ã®äžã«ã¯ãMITã©ã€ã»ã³ã¹ã«é¢ãããã®ãããã€ããããŸãã ããã§åœŒå¥³ã¯ååã«ããèšããããç§ã¯æ¬è³ªãæªããªãããã«ãç§ã¯èšãçŽããããªãã
ã»ã¯ã·ã§ã³ã®æåŸã§ãã©ã€ã»ã³ã¹æ å ±ããããžã§ã¯ãã«è¿œå ããæ¹æ³ïŒèšèšãªãã·ã§ã³ã®1ã€ïŒã«ã€ããŠç°¡åã«èª¬æããŸãã
1.ãªããžããªã®ã«ãŒãã«ã ãã®ãµã€ãããã³ããŒããã©ã€ã»ã³ã¹ããã¹ããå«ãlicense.txtãã¡ã€ã«ïŒãŸãã¯LICENCE.txtïŒãé 眮ããŸãã
2.ãã¹ãŠã®ãœãŒã¹ã³ãŒããã¡ã€ã«ã«æ¬¡ã®ããããŒãè¿œå ããŸããã
ãµã³ãã«ã©ã€ã»ã³ã¹ããããŒ
//////////////////////////////////////////////////// ///////////////////////////////
//
// <ãã¡ã€ã«å>
//
// Copyright©<ã©ã€ã»ã³ã¹æå¹æé> <èè å>ïŒ<ãªãã·ã§ã³ãèè ã¡ãŒã«>ïŒ
//
// <ã©ã€ã»ã³ã¹å>ã§é åžïŒæ·»ä»ãã¡ã€ã«LICENSE.txtãåç §ãããã
// <ã©ã€ã»ã³ã¹ãµã€ããžã®ãã¹>ïŒ
//
泚ïŒãœãŒã¹ã³ãŒãã®ããããŒã«ã©ã€ã»ã³ã¹ã®å šæãè¿œå ãããããã€ãã®ãªããžããªã«åºäŒããŸããã ãããããããã³ãŒãããã確å®ã«ä¿è·ããæ¹æ³ã§ãããæ±ããã¡ã€ã«ããšã«ãã®é·ãã©ã€ã»ã³ã¹ãšã³ããªãããããŠãŒã¶ãŒãæ©ãŸãã§ãããã
//
// <ãã¡ã€ã«å>
//
// Copyright©<ã©ã€ã»ã³ã¹æå¹æé> <èè å>ïŒ<ãªãã·ã§ã³ãèè ã¡ãŒã«>ïŒ
//
// <ã©ã€ã»ã³ã¹å>ã§é åžïŒæ·»ä»ãã¡ã€ã«LICENSE.txtãåç §ãããã
// <ã©ã€ã»ã³ã¹ãµã€ããžã®ãã¹>ïŒ
//
泚ïŒãœãŒã¹ã³ãŒãã®ããããŒã«ã©ã€ã»ã³ã¹ã®å šæãè¿œå ãããããã€ãã®ãªããžããªã«åºäŒããŸããã ãããããããã³ãŒãããã確å®ã«ä¿è·ããæ¹æ³ã§ãããæ±ããã¡ã€ã«ããšã«ãã®é·ãã©ã€ã»ã³ã¹ãšã³ããªãããããŠãŒã¶ãŒãæ©ãŸãã§ãããã
ã©ã€ã»ã³ã¹ã«ã€ããŠã¯ãgnu.orgãèªãããšãã§ããŸãã 圌ãã¯GPLããã³é¢é£ãããã®ã䜿çšããŠãœãŒã¹ã³ãŒãã®ã©ã€ã»ã³ã¹ãååŸããååã«ã€ããŠåŸ¹åºçã«è©±ããŸãã 圌ããæäŸããæ¹æ³ã¯ã©ã®ã©ã€ã»ã³ã¹ã«ãé©çšã§ãããšæããŸãã
çŽæã©ãããèå³æ·±ãè³æãžã®è¿œå ãªã³ã¯ã®ãªã¹ãã§ã»ã¯ã·ã§ã³ãçµäºããŸãã
䟿å©ãªãªã³ã¯
1.ãããç§ãæåã«èªãã èšäºã§ãã 2002ãããããã®èšäºã¯ä¿¡ããããªãã»ã©å€ãã§ãããå€ããå°ãªããé¢é£æ§ããããèšäºèªäœã«ã¯ã6ã€ã®ç°ãªããªãŒãã³ãœãŒã¹ãšããªãŒãœãããŠã§ã¢ã©ã€ã»ã³ã¹ã®äŸ¿å©ãªæ¯èŒçããããŸãã ãã®ãããªã¿ãã¬ããã§ã¯äžååãªå Žåã¯ããŠã£ãããã£ã¢ã§ãã匷åãªã¿ãã¬ãããèŠãããšãã§ããŸãã
2. 1ã€ã®å³ã®ã¡ã€ã³ã®ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã«ã€ããŠã
3.ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã«ã€ããŠããå°ã ã
4.ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã®è©³çŽ° ã åãèšäºã«ããMITã©ã€ã»ã³ã¹ã«é¢ããæ å ± ã
5. MITã®ã©ã€ã»ã³ã¹ã«ã€ããŠã®è©³çŽ° ãæŽå²çãªé 足ã
6. MITã©ã€ã»ã³ã¹ã«é¢ãã詳现ãªèšäº ã ããã«ãäžè¬çãªãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã«é¢ããããã€ãã®èããèå³æ·±ããã®ã§ãã
7.ããªãŒãœãããŠã§ã¢ãšãªãŒãã³ãœãŒã¹ã®éãã«é¢ããGNUã³ãã¥ããã£ã®å²åŠãå«ãéåžžã«è©³çŽ°ãªèšäº ã
8.ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®äžçã§ã¯ããã»ã©åçŽã§ã¯ãªãèå³æ·±ãèšäº ã
9.倧èã§èå³æ·±ãã¢ã€ãã¢ãæã€èšäº ïŒãœãŒã¹ã³ãŒããéããã«ããã¹ããšãã¹ãçµæãå¿ èŠãšããã©ã€ã»ã³ã¹ãäœæããŸãã
10.ããŒã¹ã¿ãŒã§ç§ããã€ãŠå°ãã質å ïŒ2016幎3æã«ä»ãããèªã¿çŽãã®ã¯é¢çœãã£ãã§ãïŒã ãã®ä»¶ã§ã @ littlegugaãšããããã¯ããŒã ãæã€ãŠãŒã¶ãŒããæçµçã«äœ¿çšããMITã©ã€ã»ã³ã¹ã«ã€ããŠã¢ããã€ã¹ããŠãããŸããã
2. 1ã€ã®å³ã®ã¡ã€ã³ã®ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã«ã€ããŠã
3.ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã«ã€ããŠããå°ã ã
4.ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ã®è©³çŽ° ã åãèšäºã«ããMITã©ã€ã»ã³ã¹ã«é¢ããæ å ± ã
5. MITã®ã©ã€ã»ã³ã¹ã«ã€ããŠã®è©³çŽ° ãæŽå²çãªé 足ã
6. MITã©ã€ã»ã³ã¹ã«é¢ãã詳现ãªèšäº ã ããã«ãäžè¬çãªãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã«é¢ããããã€ãã®èããèå³æ·±ããã®ã§ãã
7.ããªãŒãœãããŠã§ã¢ãšãªãŒãã³ãœãŒã¹ã®éãã«é¢ããGNUã³ãã¥ããã£ã®å²åŠãå«ãéåžžã«è©³çŽ°ãªèšäº ã
8.ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®äžçã§ã¯ããã»ã©åçŽã§ã¯ãªãèå³æ·±ãèšäº ã
9.倧èã§èå³æ·±ãã¢ã€ãã¢ãæã€èšäº ïŒãœãŒã¹ã³ãŒããéããã«ããã¹ããšãã¹ãçµæãå¿ èŠãšããã©ã€ã»ã³ã¹ãäœæããŸãã
10.ããŒã¹ã¿ãŒã§ç§ããã€ãŠå°ãã質å ïŒ2016幎3æã«ä»ãããèªã¿çŽãã®ã¯é¢çœãã£ãã§ãïŒã ãã®ä»¶ã§ã @ littlegugaãšããããã¯ããŒã ãæã€ãŠãŒã¶ãŒããæçµçã«äœ¿çšããMITã©ã€ã»ã³ã¹ã«ã€ããŠã¢ããã€ã¹ããŠãããŸããã
2.ã¡ã€ã³ãããžã§ã¯ãããã³ãŒããåæãã

ãã®ãããã©ã€ãã©ãªã«ãããã³ãŒããå¥ã®ãªããžããªã«åé¢ãããªãããšããããŸãã 圌ã¯ãã¡ã€ã³ãªããžããªã®ãããã©ã«ããŒå ã®ãããžã§ã¯ãã®äœæ¥ã®æåããçããããšãã§ããŸãããããã®ãœãŒã¹ã®ç·šéã®å±¥æŽã¯ãã¡ã€ã³ãããžã§ã¯ãã®å±¥æŽãšå¯æ¥ã«é¢é£ããŠãããããã解é€ããæ©äŒã¯ãããŸããã
幞ããªããšã«ããã¹ãŠã¯ããã»ã©æ²ããããšã§ã¯ãããŸããã ãã®ãããªå ŽåãgitãµãããªãŒåå²ã¡ã«ããºã ã䜿çšã§ããŸãã ããã§ãã®ããªãã¯ãåŠã³ãŸãã ïŒãŸã ããã§èšåãããŠããŸãããå¥ã®æ¹æ³ã§ãããã£ã«ã¿ãŒåå²ã«ã€ããŠã®è©±ã§ãïŒã ããããããã°ããã®ç³ãã³ããŒã䜿ã£ãŠç§ãçµéšããåéºã«ã€ããŠãã¢ããªã·ãã¯ãªããžããªããµãã¢ãžã¥ãŒã«ã«åå²ãããµãã¢ãžã¥ãŒã«ã䜿çšããŠãããããããŸããŸãªãã®ãæ¥çããããšã«ã€ããŠãããã«è©³ãã説æã§ããŸãã ããã§ã¯ãã¡ã€ã³ãªããžããªã®ç¹å®ã®ãã©ã«ãã®ç·šéå±¥æŽãå¥ã®ãªããžããªã«è»¢éããæ¹æ³ãç°¡åã«èª¬æããŸãã
1. cd {main-repo-path}
æåã«ãã¡ã€ã³ãªããžããªïŒãã©ã«ããŒãã¢ã³ããã¯ãããªããžããªïŒã®ã«ãŒãã«ç§»åããå¿
èŠããããŸãã
2. git subtree split -P {ãµãã¢ãžã¥ãŒã«çžå¯Ÿãã¹} -b {ãµãã¢ãžã¥ãŒã«åå²}
{submodule-relative-path} -ãã©ã³ãã§åé¢ãããã©ã«ããŒãžã®ãªããžããªã®ã«ãŒãããã®çžå¯Ÿãã¹ã
{submodule-branch} -ãã¹{submodule-relative-path}ã«ãããã©ã«ããŒã®ãœãŒã¹ã®æäœå±¥æŽå šäœãã³ããŒããããã©ã³ãã
ãã®ã³ãã³ããåŒã³åºããåŸã{submodule-branch}ãã©ã³ããããŒã«ã«ãªããžããªã«è¿œå ããã{submodule-relative-path}ãã©ã«ããŒã®å€æŽã«é¢é£ä»ãããããã¹ãŠã®ã³ããããå«ãŸããŸãã ãã®ã³ãã³ããåŒã³åºããšãæ°ãããã©ã³ããäœæãããŠã³ããããã³ããŒãããã ãã§ããã以å€ã¯å€æŽãããŸããã
泚ïŒã³ããŒãããã³ãããã«é¢é£ä»ããããã³ãããã¡ãã»ãŒãžã¯å€æŽãããªããŸãŸã§ããããšã«æ³šæããŠãã ããã ãã©ã«ããŒã®ç·šéã®å±¥æŽã«äžå¿ èŠãªæ å ±ãä¿åã§ããŸãïŒãã©ã«ããŒå ãšãã©ã«ããŒå€ã®äž¡æ¹ã®ã³ãããã«å€æŽããã£ãå ŽåïŒã ç§ã¯ãããåé¿ããæ¹æ³ãç¥ããŸããããã©ãã«ãããŠãããåé¿ããããšã¯å šãå¯èœã ãšã¯æããŸããã
{submodule-branch} -ãã¹{submodule-relative-path}ã«ãããã©ã«ããŒã®ãœãŒã¹ã®æäœå±¥æŽå šäœãã³ããŒããããã©ã³ãã
ãã®ã³ãã³ããåŒã³åºããåŸã{submodule-branch}ãã©ã³ããããŒã«ã«ãªããžããªã«è¿œå ããã{submodule-relative-path}ãã©ã«ããŒã®å€æŽã«é¢é£ä»ãããããã¹ãŠã®ã³ããããå«ãŸããŸãã ãã®ã³ãã³ããåŒã³åºããšãæ°ãããã©ã³ããäœæãããŠã³ããããã³ããŒãããã ãã§ããã以å€ã¯å€æŽãããŸããã
泚ïŒã³ããŒãããã³ãããã«é¢é£ä»ããããã³ãããã¡ãã»ãŒãžã¯å€æŽãããªããŸãŸã§ããããšã«æ³šæããŠãã ããã ãã©ã«ããŒã®ç·šéã®å±¥æŽã«äžå¿ èŠãªæ å ±ãä¿åã§ããŸãïŒãã©ã«ããŒå ãšãã©ã«ããŒå€ã®äž¡æ¹ã®ã³ãããã«å€æŽããã£ãå ŽåïŒã ç§ã¯ãããåé¿ããæ¹æ³ãç¥ããŸããããã©ãã«ãããŠãããåé¿ããããšã¯å šãå¯èœã ãšã¯æããŸããã
3. git push {submodule-repo-URL} {submodule-branch}ïŒ{master}
æ°ãããã©ã³ããå¥ã®ãªããžããªã«ããã·ã¥ããŸãã
{submodule-repo-URL} -ãã©ã«ããŒã®å€æŽå±¥æŽãä¿åãããªã¢ãŒããªããžããªã®URLã
{master} -remootãªããžããª{submodule-repo-URL}ã®{submodule-branch}ãã©ã³ããåãåãååã ããããªããžããªã«è¿œå ãããæåã®ãã©ã³ãã§ããå Žåãgitã®ã¡ã€ã³ãã©ã³ãã«ååãä»ãããšããå€ä»£ã®äŒçµ±ã«åŸã£ãŠãããã¹ã¿ãŒããšåŒã¶ã®ãæåã§ãã
ãã®ã³ãã³ããåŒã³åºããåŸã{master}ãšããååã®æ°ãããã©ã³ããã{submodule-relative-path}ãã©ã«ããŒãžã®å€æŽã®å±¥æŽãå«ãURL {submodule-repo-URL}ã«ãããªããžããªã«è¿œå ãããŸãã
{submodule-repo-URL} -ãã©ã«ããŒã®å€æŽå±¥æŽãä¿åãããªã¢ãŒããªããžããªã®URLã
{master} -remootãªããžããª{submodule-repo-URL}ã®{submodule-branch}ãã©ã³ããåãåãååã ããããªããžããªã«è¿œå ãããæåã®ãã©ã³ãã§ããå Žåãgitã®ã¡ã€ã³ãã©ã³ãã«ååãä»ãããšããå€ä»£ã®äŒçµ±ã«åŸã£ãŠãããã¹ã¿ãŒããšåŒã¶ã®ãæåã§ãã
ãã®ã³ãã³ããåŒã³åºããåŸã{master}ãšããååã®æ°ãããã©ã³ããã{submodule-relative-path}ãã©ã«ããŒãžã®å€æŽã®å±¥æŽãå«ãURL {submodule-repo-URL}ã«ãããªããžããªã«è¿œå ãããŸãã
4. git branch -D {submodule-branch}
{submodule-relative-path}ãã©ã«ããŒã®ç·šéå±¥æŽãæã€ãã©ã³ããäžèŠã«ãªã£ãå Žåããã®ãã©ã³ããåé€ããå¿
èŠããããŸãã -D-bigã¯ããã©ã³ãã®åé€ã匷å¶ããããšãæå³ããŸãã -dã§ãã©ã³ããåé€ãããšãgitã¯èªããŸãïŒåé€ããåã«ãã®ãã©ã³ããããã·ã¥ããªãã£ããšèšã£ãŠããŸãïŒgitã¯å®éã«å¥ã®ãªããžããªã«ããã·ã¥ãããã®ãæã¡ãŸããïŒã
äžè¬ã«ãããã§ãã¹ãŠã§ãã ç§ã®ã¡ã€ã³ãããžã§ã¯ãã§èª¬æããæé ã«åŸã£ãŠãå°æ¥ã®cpprtã©ã€ãã©ãªã®ãœãŒã¹ã³ãŒããç·šéããå±¥æŽãåé¢ããéåžžã«å€§ãŸããªãªããžããªãååŸããŠããã¡ã€ã«ã®å€æŽå±¥æŽå šäœãä¿åããŸãïŒã³ãããã¡ãã»ãŒãžã«ãŽããå«ãŸããŠããå ŽåããããŸãïŒã
ãªããžããªã¯æºåãã§ããŠããŸãã...ããããããã¯ãŸã å ¬éã«ã¯ã»ã©é ããã®ã§ããã ãªããžããªãé©åãªåœ¢åŒã«ããããšãæ³å®ãããŠããŸããã ãã®ããããœãŒã¹ã³ãŒããšã©ã€ã»ã³ã¹ã§ã¯äžååã§ããããã¹ããäŸãçµã¿ç«ãŠå¯èœãªãã¹ãŠã®ã¢ã»ã³ããªã¡ã«ããºã ã®æ€èšãããããçš®é¡ã®read meãã¡ã€ã«ãããã¥ã¡ã³ããªã©ã®äœæãæ¯æŽããææã®æãäœæããå¿ èŠããããŸãããããããã¹ãŠã®ããã«ããªããžããªã®æ§é ãæ€èšããå¿ èŠããããŸãããã®èšäºã®æ¬¡ã®ã»ã¯ã·ã§ã³ã§ã¯ããããžã§ã¯ãã®æ§é ã«ã€ããŠèª¬æããŸãã
䟿å©ãªãªã³ã¯ïŒ
1. ãµãã¢ãžã¥ãŒã«ãšãµãããªãŒã®ã©ã¡ãããéžæããŠãç§ãäžåºŠå°ãã質åãããªãé·ãè°è«ãšå€ãã®ãªã³ã¯ããããŸãïŒãã®ãã¡ã®ããã€ãã¯æ¢ã«äžã§äœ¿çšããŸããïŒãããããããããžã§ã¯ãã®ã¢ãžã¥ãŒã«æ§æã®ãããã¯ã«èå³ããã人ã¯ããã£ã¹ã«ãã·ã§ã³ãèªãã§ãªã³ã¯ããã©ãããšãé¢çœããšæããããããŸããããšããã§ãç§ã¯ãã®æ©äŒã«ãAndy_Uã«ãã®åé¡ã«ã€ããŠæŽ»çºã«è°è«ããŠãããããšã«æè¬ããããšæããŸã-æçµçã«ãµãã¢ãžã¥ãŒã«ãéžæãããšããäºå®ã«ããããããã
2. ãµãããªãŒãæäœããããšãããšãã«ééããå°é£ã«ã€ããŠèª¬æããå¥ã®è³ªå ...ãšããã§ã誰ããç§ãééã£ãããšã説æã§ãããããããŸããã
3.ãªããžããªã®æ§é ã«é¢ããèå¯

ã ããããªããžããªã®æ§é ...ç§ã®æèŠã§ã¯ãããã¯ã¢ãŒããã¯ãã£ã®ã«ããŽãªããã®ãã®ã§ããã³ãŒãã®ã¢ãŒããã¯ãã£ã¯ããã®èŠçŽ ã®çžäºäœçšã®ååãèšå®ããŸããã¢ãŒããã¯ãã£-ããã¯æ§é ã§ããããŸã-ãããžã§ã¯ãã®ãªããžããªã¯ãä»ã®ãããžã§ã¯ããšã®çžäºäœçšã®ååãèšå®ããŸããããã§èšããä»ã®ãããžã§ã¯ãããšã¯ãã³ãŒãããŒã¹ãã¢ã»ã³ããªã·ã¹ãã ããŸãã¯ããžãã¹ããã»ã¹ã ãã§ã¯ãããŸãããç§ã¯ãŸããããªãã®ã³ãŒãã䜿çšãããããå€æŽãã人ã ãæå³ããŸãã
ç§ã®ç解ã®ããã«ãç§ã¯ãŠãŒã¶ãŒã®èŠ³ç¹ãšè²¢ç®è ã®èŠ³ç¹ãããããžã§ã¯ãã®èŠä»¶ãçå®ããããšããŸããã
ã©ã€ãã©ãªãŠãŒã¶ãŒã®äœçœ®ããã®çºã
ã©ã€ãã©ãªã«ç²ŸéããŠãããšãã«ãçºçé ã«èŠä»¶ããªã¹ãããŸã
ã1.èªåãäœãæ±ã£ãŠããããç解ããããããããããžã§ã¯ãã®ã«ãŒãã«ãããã®ã®ç°¡åãªèª¬æãšãGitHubã®ãããžã§ã¯ãããŒãžã«è¡šç€ºãããããã«ãããçš®ã®ReadmeããŸãããã¡ãããããã¥ã¡ã³ããã§ããã°åçä»ãã
2.ã³ãŒãã®äœ¿çšæ¹æ³ã確èªãããããã¹ããã³ãŒãã®äœ¿çšäŸããããŠãããã©ã®ããã«è¡ããããã¯æ確ã§ããã
3.ãããžã§ã¯ãèªäœã«ã€ããŠ...ã¢ã»ã³ããªãæ§æãçµ±åã«æå°éã®ç¥çµãšæéãè²»ãããããšæããŸããããããŒãšãã³ã³ãã€ã©ãŒãšãã©ãããã©ãŒã çšã®ã³ã³ãã€ã«æžã¿ã©ã€ãã©ãªãŒããããã©ã«ããŒãããã°ãããã¯çŽ æŽãããããšã§ããæ¥ç¶ããæ¬çªã«ãªã³ã¯ããŸãããã®ãã«ãã·ã¹ãã ãç解ããããããŸããã
泚ïŒããã§ãããã«C ++ã«åºæã®ããšã«ã€ããŠè©±ããŸããä»ã®èšèªã§ã¯ããã¹ãŠãããã·ã³ãã«ã«ãªããŸã...
4.ãã©ãããã©ãŒã ã«äŸåããªããããžã§ã¯ãããããŸãïŒèªåã§ãã«ãã·ã¹ãã ã«é©å¿ããå¿ èŠãªããèªåã§ã©ã€ãã©ãªããã«ãã§ããããã«ããããšèããŠããŸããèšãæãããšãCMakeãå¿ èŠã§ãïŒCMakeãæ確ã§ãªãå Žåã¯ã倧äžå€«ã§ããåŸã§èª¬æããŸãïŒã
è¿œå èŠä»¶ïŒ
5.ãããã£ãŠãã©ã€ãã©ãªã«ã¯å¯èœæ§ãå€ãããŸããé éäžã®ããŒã«ã¯ãããŸããïŒãããŠãããã«åéããããšããå§ãããŸãã
6.ç§ã¯ããªãã®ãããžã§ã¯ããé·ãé䜿çšããŠããŸãã圌ãæè¿æŽæ°ãããšèããŸãããïŒäœãå€ãã£ãã®ãç¥ãããã
æ瀺ãããèŠä»¶ãèæ ®ããŠã以äžã®æ§é ãåŸãããŸãïŒ
ãã¡ã€ã«ããªãŒè¡šèšæ³ã«ã€ããŠ
:
file_in_root
, . . file_in_root. /, , , .
/folder_in_root
, .
-file_in_folder
, . , , . . , - , , , .
-/folder_in_folder
, , .
file_in_root
, . . file_in_root. /, , , .
/folder_in_root
, .
-file_in_folder
, . , , . . , - , , , .
-/folder_in_folder
, , .
1.ã©ããªçš®é¡ã®å³æžé€šã§ããïŒ
README.txt-ãããžã§ã¯ãã®ç°¡åãªèª¬æã
/ doc-ãããžã§ã¯ããšãã®APIã詳现ã«èª¬æãããã¡ã€ã«ã§ãã
2.ãã¹ããšäŸã
/ tests-ã§ããã ãç°¡åã«å®è¡ã§ãããããžã§ã¯ãããã¹ãããŸãã
/ examples-ã§ããã ãã·ã³ãã«ã«å®è¡ããå¿ èŠããããµã³ãã«ã
3.ããã«æ¥ç¶ããŸã...
/ include-ã¢ã»ã³ãã«ãããã©ã€ãã©ãªã®APIã«ã¢ã¯ã»ã¹ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã
/ lib-ãœãŒã¹ã®éçã©ã€ãã©ãªãžã®ã¢ã»ã³ããªã
/ bin-åçã©ã€ãã©ãªãžã®ãœãŒã¹ã®ã¢ã»ã³ããªã
æ³šïŒ libããã³binãã©ã«ããŒã«ã¯ãã§ããã°ã¡ã€ã³ã®ã³ã³ãã€ã©ãŒãšãã©ãããã©ãŒã ã®ã¢ã»ã³ããªãŒãå«ããå¿ èŠããããŸãã
4.èªåã§çµã¿ç«ãŠããïŒ
/ src-ãããžã§ã¯ãã®ãœãŒã¹ã³ãŒãã
cmake_readme.txt -cmakeãã¡ã€ã«ã䜿çšããŠãããžã§ã¯ãæ§æãçæããæ¹æ³ã«é¢ãããªãã·ã§ã³æ å ±ã
CMakeLists.txt-ã¢ã»ã³ããªæ§æã®ãã¡ã€ã«ã
5.ããŒã«ïŒããã«è¡ããŸãããïŒ
/ tools-ã©ã€ãã©ãªã§ã®äœæ¥ãç°¡åã«ããããŒã«ãåéããããããœãŒã¹ã³ãŒãã®åœ¢åŒã§ã
6.
change_list.txt-ãããžã§ã¯ãã®ææ°ã®å€æŽã«é¢ããæ å ±ãæŽæ°ããŸãã
å³æžé€šå¯çš¿è ã®èŠç¹ããã®å€èŠ³
ã©ã€ãã©ãªãç¥ããšãã®èŠä»¶ã¯ãåºçŸé ã«ãªã¹ããããŠããŸãïŒ
0ãã©ã€ãã©ãªãç¥ãæåã®æ®µéã§ã¯ãç§ã¯å¯çš¿è ã§ã¯ãªãããŠãŒã¶ãŒã§ãããããã£ãŠãæäœéãç§ã®èŠä»¶ã«ã¯äžèšã®ãŠãŒã¶ãŒèŠä»¶ãå«ãŸããŸãã
1.ç§ã¯ããªãã®ãããžã§ã¯ãã奜ãã§ããããéçºããããšæããŸããå奜çãªè²¢ç®è ã®å®¶æã«åå ããæ¹æ³ã«ã€ããŠãäœããã®çš®é¡ã®Readmeãèªã¿ãããšæããŸãã
2.ã©ã€ãã©ãªãå éšã«ã©ã®ããã«é 眮ãããŠããããç解ããããéçºè åãã®è©³çŽ°ãªããã¥ã¡ã³ããå¿ èŠã§ããçæ³çã«ã¯ããããžã§ã¯ãã®ãã«ãã·ã¹ãã ã«ãããã¥ã¡ã³ããå¿ èŠã§ãã
3.ãã«ãã·ã¹ãã ã§äœæ¥ãããšãããããžã§ã¯ãå šäœãç»ããããããŸãããã¢ã»ã³ããªã«è±å¯ãªæ§æãã¡ã€ã«ãŸãã¯è¿œå ããã°ã©ã ãå¿ èŠãªå Žåã¯ãå¥ã®ãã©ã«ããŒã«å ¥ããŠãã ãã...äžè¬ã«ããã¹ãŠãé©åã§ããå¿ èŠãããããã¡ã€ã«ã¯ç®çå¥ã«ã°ã«ãŒãåããå¿ èŠããããŸãã
ãã®ä»ã®èŠä»¶ïŒ
4.ã«ã¹ã¿ã ããŒã«ã¯ãã¡ããåªããŠããŸã...ãããããããžã§ã¯ãã¯æ¬åœã«å€§ããªãã®ã§ããéçºè åãã®ããŒã«ãå¿ èŠã§ãã
å šäœãšããŠãèŠä»¶ãèæ ®ããŠãçæ³çãªãããžã§ã¯ãã®æ§é ã«ã€ããŠä»¥äžã®æ確åãåŸãããŸã
ã1.å°å ¥æ å ±ïŒ
contributors_README.txt-éçºã«æè³ããã人ã®ããã®ãããžã§ã¯ãã®ç°¡åãªèª¬æã
2.ããã¥ã¡ã³ãïŒ
/ doc-
/ developer_doc-ãããžã§ã¯ãã®è©³çŽ°ãå«ãããã¥ã¡ã³ãã
泚ïŒãã®æ§é ã§ã¯ããŠãŒã¶ãŒããã¥ã¡ã³ããdocãã©ã«ããŒå ã®å¥ã®ãã©ã«ããŒïŒäžéšã®user_docïŒã«ä¿åããå¿ èŠããããŸããç§ã®æèŠã§ã¯ããã®ãããªããã¥ã¡ã³ããŒã·ã§ã³ã®æ§é ã¯ãæ§é çãªé åºã«å ããŠãããã¯ãæã£ãŠãã奜å¥å¿ã®åŒ·ãèªè ã«èå³ãããããŸãããå ¥éè ã®ããã®ããã¯ã®äžã«ã¯äœããããŸããïŒã-ãããŠãèªè ãããããè²¢ç®è ã«ããŸãã
3.ãããžã§ã¯ãå ã®é åºïŒ
/ build
ãã«ãã·ã¹ãã ã®ãããã©ã«ããŒããããžã§ã¯ãã®ãã®ãã©ã«ãã®å€ã«ãæå°éã®ãã«ãã·ã¹ãã ãã¡ã€ã«ããã³ã°ã¢ããããããšããå§ãããŸãã
4.éçº
ããŒã« ïŒ/ tools-
/ developer_tools
ããã¥ã¡ã³ããšåæ§ã«ãç®çã«åãããŠããŒã«ãåéããŸãïŒãŠãŒã¶ãŒåºæãéçºè åºæã
ããã«ãªã¹ããããŠããèŠä»¶ã¯ãç§ã®ç¥èŠã«ãšã£ãŠäž»èŠ³çãªãã®ã§ããããã«ã€ããŠäœãèããããã°ããããå ±æããŠãã ããã
GitHubã䜿çšããŠãããžã§ã¯ããåæããŠãããšãã«ãCMakeãŠãŒãã£ãªãã£ãæäœããããã®ãã¡ã€ã«ã«ã€ããŠé »ç¹ã«èšåããŠããããšã«æ°ä»ããŸãããããã«ãããã€ãã®è³æããå€æãããšãC ++ã§ã®ãªãŒãã³ãã©ãããã©ãŒã ã®ã¯ãã¹ãã©ãããã©ãŒã ãœãããŠã§ã¢ãªããžããªã®å€å žçãªæ§é ã®åœ¢æã«åœ±é¿ãäžããã®ã¯CMakeã§ããã圌ã¯éããããªããšããæ°æã¡ãéžæãããŠããŸãããæ¥ã...
4. CMakeãžã®é

è¬èŸïŒ CMakeãå匷ãããã£ãããšãªã£ãã¹ã¿ãã¹ã©ãã»ãã«ããïŒNipherisïŒã«æè¬ããŸãã
CMakeã¯ãç¹å®ã®ã¡ã€ã¯ã·ã¹ãã ïŒããã³/ãŸãã¯äžéšã®IDEã®ãããžã§ã¯ãïŒã®æ§æãã¡ã€ã«ãçæããŠããŠãããŒãµã«ãªæœè±¡çãªæ§æïŒãµããŒããããŠãããã«ãã·ã¹ãã / IDEã®ãªã¹ãïŒã«åºã¥ããŠC / C ++ãããžã§ã¯ããæ§ç¯ã§ãããŠãŒãã£ãªãã£ã§ããçæåŸãCMakeã®çµäºæã«ååŸãããæ§æããã³/ãŸãã¯ãããžã§ã¯ããã¡ã€ã«ã¯ãç¹å®ã®ãã«ãã¡ã«ããºã ã«ãã£ãŠæ¢ã«äœ¿çšãããŠããŸãã圌ãã®ä»äºã®çµæãšããŠã®ã¿ãçµã¿ç«ãŠããã補åãåŸãããŸãã
CMakeã¯ã¡ã¿ã¡ã€ã¯ããŒã«ã§ãããC / C ++ãããžã§ã¯ãã®ã¢ã»ã³ããªã·ã¹ãã ãæœè±¡åãããã®ã§ãããšèšããŸãã
ç§ã¯cpprtã©ã€ãã©ãªã®ãªããžããªæ§é ãæ§ç¯ãããšããCMakeã®äœ¿çšãããããæ¹æ³ã§åé¿ããããšãèªããŸããå žåçãªå 延ã°ã...ããŸããŸãªèšãèš³ãæãã€ããPythonãããã£ãŒã·ã£ãããããŠç§ãç¥ã£ãŠããã€ããžã¯ã§ãã«ãã·ã¹ãã ãæ§æãããµãã¢ãžã¥ãŒã«ã«ããã€ãã®å£ãããããã¶ã€ã³ãä»ããŸããããã®ãã¹ãŠã®çæ°ã®ç¥æ Œåã¯ãCMakeã®ç§ã®æ絶ãæ£åœåããçè«å šäœã§ãããåæ§ã«ãcpprtã©ã€ãã©ãªã¯éåžžã«å°ããããïŒ2ã€ã®ãã¡ã€ã«ã®ã¿ïŒããã®çµ±åã®ããã«ããã©ã€ãã©ãªãã®ãœãŒã¹ã³ãŒãããµãã¢ãžã¥ãŒã«ãšããŠãŠãŒã¶ãŒãããžã§ã¯ãã«çŽæ¥æ¿å ¥ããã ãã§ååã§ãããŸãããµã³ãã«ãšããŒã«ã®ãœãŒã¹ã³ãŒãããµãã¢ãžã¥ãŒã«ã§é åžããå¿ èŠããããŸããããã«ããããŠãŒã¶ãŒã¯å¿ èŠã«å¿ããŠã©ã€ãã©ãªã®ã«ãã«ããããåã蟌ãããšãã§ããŸãã
ããã«ãäŸãšããŒã«ã¯cpprtã©ã€ãã©ãªã«äŸåãããããã©ã€ãã©ãªèªäœãïŒæ³šæïŒïŒãããã®ãµããªããžããªã«ãµãã¢ãžã¥ãŒã«ãšããŠãã«ãããå¿ èŠããããŸããçµå±ãäŸã¯ã©ã€ãã©ãªããããžã§ã¯ãã«åã蟌ãæ¹æ³ã瀺ããŠããã¯ãã§ãã
ãããã£ãŠããã®ç°ç«¯ã®çè«ã«åºã¥ããŠãFrankensteinã®ã¢ã³ã¹ã¿ãŒã®ãããªãªããžããªããgitã¡ã«ããºã ã§æ¥ç¶ãããããã€ãã®ãããªããžããªããçž«ãä»ããŸãããããã¯æ¬åœã®ãŽãã§ããïŒããã§è³è³ã§ããŸãïŒãèšãèš³ãæåŠããå Žåã¯ãCMakeãæããã ãã§ã¯ãªããããã ããè¡ããŸããã
ããããè¯å¿ã¯ãã¬ãã§ã¯ãããŸããã圌女ã®é³ãæ¶ãããšã¯ã§ããŸãããç¡æã®æ€çŽ¢ã®éçšã§ã©ã³ãã ãªè³æã«åºãããã次第ã«æ°ã¥ããŸãããCMakeã¯ãC ++åãã®ãªãŒãã³ãœãŒã¹ã¯ãã¹ãã©ãããã©ãŒã ãœãããŠã§ã¢ã®çŸä»£äžçã®æ±ã®1ã€ã§ããCMakeã䜿çšããã«ãã®ãããªãããžã§ã¯ããè¡ãããšã¯ããŸã£ãããã³ã»ã³ã¹ã§ããããã¯å®å šã«ééã£ãŠããŸããèšäºã§ãã®ãããªæ±ºå®ã«ã€ããŠäººã ã«äŒããããšã¯ããšãããã人ã ã«æªãããšãæããããšãæå³ããŸãã
ãããã£ãŠã4æ12æ¥ç«ææ¥ãç§ã¯åº§ã£ãŠCMakeãå匷ããŸãããç¿æ¥ã®å€æ¹ãŸã§ã«ãç§ã¯ãã§ã«ãããžã§ã¯ãã®CMakeæ§æãæ©èœããŠããŠãèªåã®äžå®ã«ç¬ããŸãããæã£ãããç°¡åã§ããšãŠã䟿å©ã§ããã
以äžã¯ãCMakeã«æ²¡é ããããšã®èšé²ã§ããããã誰ããå©ããããšãé¡ã£ãŠããŸãã
CMakeãå¿
èŠãªçç±ã®è©³çŽ°ãã芧ãã ããã
, CMake. , , , , . â .
, ++ , (Java, C#, Python, ..)? , ++ ( = ). , , , , .
, , ( = + + + - ) . , C++ , IDE. , ? .
. , , , , .
, Visual Studio. , , , â , , -- .
â MinGW, Eclipse IDE . , â , . MinGW+Eclipse , , . , , Eclipse IDE, ⊠NMake . ⊠IDE. â .
, â , â IDE. , .
, , CMake! CMakeLists.txt, CMake â , CMake.exe, ( IDE), -/IDE . , !
CMake. .
PS: , CMake , CMakeLists.txt. . , : ( IDE). CMake .
â . .
ã©ããããã®èèãèèãåäžã®ã¿ãŒã«ååãªã...ãããããã¡ããæ¬ ç¹ããããå®éã«ãããã«ã€ããŠè©±ããŸãã
CMakeãäœã§ããããCMakeããªãã§ãããCMakeãã©ãã»ã©åªããŠããããç¥ã£ãã®ã§ããããç¥ãæãæ¥ããšæããŸãã ã ããã¯ããã¯ã«...
, ++ , (Java, C#, Python, ..)? , ++ ( = ). , , , , .
, , ( = + + + - ) . , C++ , IDE. , ? .
. , , , , .
, Visual Studio. , , , â , , -- .
â MinGW, Eclipse IDE . , â , . MinGW+Eclipse , , . , , Eclipse IDE, ⊠NMake . ⊠IDE. â .
, â , â IDE. , .
, , CMake! CMakeLists.txt, CMake â , CMake.exe, ( IDE), -/IDE . , !
CMake. .
PS: , CMake , CMakeLists.txt. . , : ( IDE). CMake .
â . .
CMakeãç¥ã£ãåŸãç§èªèº«ãšç§ã®ç¥ãåãã®äžéšãšãC ++ã®5幎ã®çµéšãæã€éåžžã«çµéšè±å¯ãªäººããã»ãšãã©ãã¹ãŠã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã誀ã£ãŠäœ¿çšããŠããããšãããããŸããã ã»ãŒãã¹ãŠã®ã¯ãã¹ãã©ãããã©ãŒã ã©ã€ãã©ãªã¯ãCMakeã¢ã»ã³ããªã®ããã®ã·ã³ãã«ã§äŸ¿å©ãªæ©äŒãæäŸããããã«ã¢ã»ã³ãã«ãããã©ã€ãã©ãªããŸãã¯ææªã®å Žåã¯IDEçšã®æ¢è£œã®ãããžã§ã¯ããã¡ã€ã«ãæ¢ããŠããŸã-CMakeã䜿çšããŠ10ç§ã§IDEã®ãããžã§ã¯ããçæãã代ããã«ãããã«ãåéãããå
容ïŒã©ã€ãã©ãªèªäœããã¹ããäŸãããŒã«ããã®ä»ã®ãµããŒããããžã§ã¯ããªã©ïŒã埮調æŽããæ©èœãåããŠããŸãã
é¡åŸ®é¡ã䜿ã£ãåºç¯å²ã®éä»ãã®ãã®è©±ã¯ãã«ããã«ãè¶ã泚ãã®ãç°¡åã«ããããã«é·ãç ç³ã®è¢ãçºæãã人ã«ã€ããŠã®æåãªæ²ãã話ãæãåºããŸãããã誰ããããã®è¢ãæ£ãã䜿çšãããç·ã¯èªæ®ºããŸããã
C ++ã®ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã§CMakeã䜿çšããå¯èœæ§ãç¡èŠãããã³ã«ãã©ã€ãã©ãªã®äœæè ã®1人ãäžçã§å«ã¶ããšãå¿ããªãã§ãã ããã ããŒã«ãæ£ãã䜿çšããŠãã ããã
é¡åŸ®é¡ã䜿ã£ãåºç¯å²ã®éä»ãã®ãã®è©±ã¯ãã«ããã«ãè¶ã泚ãã®ãç°¡åã«ããããã«é·ãç ç³ã®è¢ãçºæãã人ã«ã€ããŠã®æåãªæ²ãã話ãæãåºããŸãããã誰ããããã®è¢ãæ£ãã䜿çšãããç·ã¯èªæ®ºããŸããã
C ++ã®ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã§CMakeã䜿çšããå¯èœæ§ãç¡èŠãããã³ã«ãã©ã€ãã©ãªã®äœæè ã®1人ãäžçã§å«ã¶ããšãå¿ããªãã§ãã ããã ããŒã«ãæ£ãã䜿çšããŠãã ããã

14ã®æšæºãš1ã€ã®æ°èŠãCMakeã§ã¯ãªãçç±ã«ã€ããŠ
CMakeã«é¢é£ããŠãèªè
ã¯ããããã14ã®æšæºãšãããã1ã€ã«ãŸãšããããšãããšè¡šç€ºããã15ã®æšæºã«é¢ããæåãªåçãæãåºãã§ãããã ãã ãããã®å Žåããã®åçã¯äžé©åã§ãã å®éã®ãšãããCMakeã¯ããããžã§ã¯ãã®ã¢ã»ã³ããªã€ã³ãã©ã¹ãã©ã¯ãã£ã«ç°è³ªã®ãã®ãšããŠåã蟌ãå¿
èŠã¯ãããŸããã ã¡ã€ã³ãããžã§ã¯ãã®ã¢ã»ã³ããªã€ã³ãã©ã¹ãã©ã¯ãã£ã«äŸ¿å©ãªæ§æãã¡ã€ã«ïŒãŸãã¯IDEã®ãããžã§ã¯ãïŒãååŸããã«ã¯ãCMakeãåç¬ã§å®è¡ããã ãã§ååã§ãããã®åŸããããã®ãã¡ã€ã«ïŒãŸãã¯ãããžã§ã¯ãïŒã¯ããããžã§ã¯ãã®æ¢åã®çµç¹ããã³ã¿ãŒã²ãããã©ãããã©ãŒã ã«å¯Ÿå¿ãããã®ãšããŠç°¡åã«åã蟌ãããšãã§ããŸãã
CMakeã¯ãã«ãã·ã¹ãã ã§ã¯ãããŸããã CMake over buildã·ã¹ãã ã 圌ã¯åœŒããæ¯é ããŸãã
CMakeã¯ãã«ãã·ã¹ãã ã§ã¯ãããŸããã CMake over buildã·ã¹ãã ã 圌ã¯åœŒããæ¯é ããŸãã

ã©ããããã®èèãèèãåäžã®ã¿ãŒã«ååãªã...ãããããã¡ããæ¬ ç¹ããããå®éã«ãããã«ã€ããŠè©±ããŸãã
CMakeãäœã§ããããCMakeããªãã§ãããCMakeãã©ãã»ã©åªããŠããããç¥ã£ãã®ã§ããããç¥ãæãæ¥ããšæããŸãã ã ããã¯ããã¯ã«...
以äžã«ç€ºããã¹ãŠã®ã€ãã³ãã¯ãå®éã«ã¯2016幎4æ12æ¥ç«ææ¥ã«è¡ãããŸããã ãã©ãŠã¶ã®ããŒãžèŠæ±å±¥æŽã«ãã£ãŠåŸ©å ãããŸããã
ïŒ0:35ïŒææã®åææ€çŽ¢

CMakeïŒ ãããã ïŒãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããåŸãã¬ãã¹ã³ãæ¢ãå§ããŸããã
" cmakeãã¥ãŒããªã¢ã« "ã®èŠæ±ã§ãæåã®ãªã³ã¯ã¯å ¬åŒã®ããã¯ã«ã€ãªãããŸããã åºæ¬çã«ãç§ã¯ãããç解ããŸããã cpprtã¯ãŸã éåžžã«å°ããªãããžã§ã¯ãã§ãããããããã¯ã®æåã®5ã€ã®ã¹ããããååã«ç解ããŠãã©ã€ãã©ãªãæ§ç¯ããããã®èãããããã¹ãŠã®ç®æšïŒæ§ç¯ããŒã«ãšäŸãå«ãïŒã®æ§æã説æããŸããã
Googleã®æåã®ããŒãžã«ããã CMake habrahabr ãã®ãªã¯ãšã¹ãã«å¿ããŠãæè²çãªãã®ãšããŠèæ¡ããã3ã€ã®èšäºããããŸããã ç§ã¯ãã®èšäºãäžçªå¥œãã§ããïŒã¡ãªã¿ã«ããcmake tutorialãã®ãªã¯ãšã¹ãã§2çªç®ã«è±èœããŠããŸãïŒã ããã€ãã®ç¹ã§ããã¯ã®ç¿»èš³ã«äŒŒãŠããããã€ãã®ç¹ã§ã®è¯ããã¥ãŒããªã¢ã«èšäº-ããããããç°¡æœã ã»ã¯ã·ã§ã³ã«åãããŠãããåã»ã¯ã·ã§ã³ã§CMakeã®æ©èœã«ã€ããŠèª¬æããäžèŠãªæ®»ã䜿ããã«ç°¡åãªäŸã瀺ããŸãã ãã®èšäºãè¿œå ã®ãã¬ãŒãã³ã°è³æãšããŠäœ¿çšããŸããã
ä»ã®ãªã³ã¯ãèŠã€ãããŸãã
1. å¥ã® CMakeãã¥ãŒããªã¢ã«ã ç§ã¯æ¬åœã«å§ãŸããæ¬åœã«å¥œãã§ãã-ãããžã§ã¯ãã®æ§é ããéåžžã«ã¯ã£ãããšçŸããæžãããŠããŸããã ããããæåã®å°ããç解ããããäŸã®åŸãèè
ã¯äŸãåçã«è€éã«ãå§ããç§ã¯æ··ä¹±ããäžèšã®èšäºã䜿ãç¶ããããšã«æ±ºããŸããã
2. LZ4ã©ã€ãã©ãªã®CMakeã¢ã»ã³ããªã®å°ããªåæ ïŒGitHubã䜿çšããæ¯èŒçå°ããªãããžã§ã¯ãïŒã ãããããCMakeã®çµéšããã人ã«ãšã£ãŠã¯ãåæã¯ããªãè¯ããã®ã§ããã圌ã¯ããã®ããžãã¹ã«ãšã£ãŠéåžžã«æ°ããã®ã§ã倧éã®ã³ãŒããšLZ4ã«åºæã®ããã€ãã®å€æ°ãå«ãå°éã®ã³ã¡ã³ãã§ç§ãæããããŸããã
3.ããå ¥éã¬ãã¹ã³ ã
ããã§ãµãŒãã£ã³ãããŠãããšãã«ãã§ã«èŠã€ãããªã³ã¯ã®ãã¡ã CMakeã®æèšãšããçãèšäºã«éåžžã«é©ããããŸãã ç§ã¯ã³ãŒãããäœãç解ããŠããŸããã§ããããããã¯åããããã¯ãŒã«ã§ãå¥åŠã§ãã
2. LZ4ã©ã€ãã©ãªã®CMakeã¢ã»ã³ããªã®å°ããªåæ ïŒGitHubã䜿çšããæ¯èŒçå°ããªãããžã§ã¯ãïŒã ãããããCMakeã®çµéšããã人ã«ãšã£ãŠã¯ãåæã¯ããªãè¯ããã®ã§ããã圌ã¯ããã®ããžãã¹ã«ãšã£ãŠéåžžã«æ°ããã®ã§ã倧éã®ã³ãŒããšLZ4ã«åºæã®ããã€ãã®å€æ°ãå«ãå°éã®ã³ã¡ã³ãã§ç§ãæããããŸããã
3.ããå ¥éã¬ãã¹ã³ ã
ããã§ãµãŒãã£ã³ãããŠãããšãã«ãã§ã«èŠã€ãããªã³ã¯ã®ãã¡ã CMakeã®æèšãšããçãèšäºã«éåžžã«é©ããããŸãã ç§ã¯ã³ãŒãããäœãç解ããŠããŸããã§ããããããã¯åããããã¯ãŒã«ã§ãå¥åŠã§ãã
ïŒ2:00ïŒæåã®CMakeæ§æãæ§ç¯ããŸã

CMakeã§ãåå2æã«æ»ããŸããã ç§ã¯ç°¡åã«ã¬ãã¹ã³ã«ç²Ÿéããå¯èœãªéãåçŽãªãããžã§ã¯ãã§ãããã€ãã®ãã¹ãã§ç·Žç¿ããããšã«ããŸããã 次ã®å 容ã®ãã©ã«ããŒãäœæããŸããïŒ {cmake_test}ãšããååã«ããŸã ïŒã
main.cpp
æ§æãçæããã¢ã»ã³ããªã®ãã¹ããã¡ã€ã«ã
ãã¡ã€ã«ã®å
容
#include <iostream> int main() { std::cout << "Hello from CMake!" << std::endl; return 0; }
CMakeLists.txt
ãœãŒã¹ã¢ã»ã³ããªæ§æmain.cppã®èª¬æãå«ããã¡ã€ã«ã ããã§ãããã«æ°ããåCMakeããŒã ã«è©³çŽ°ãªã³ã¡ã³ããããŸãã
ãã¡ã€ã«ã®å
容
cmake_minimum_requiredïŒããŒãžã§ã³2.8.8ïŒ
ïŒãã®å Žåããããžã§ã¯ãã«test_projectãšããååãä»ããŸã
ãããžã§ã¯ãïŒtest_projectïŒ
ïŒãã®å Žåã1ã€ã®ãœãŒã¹ãã¢ã»ã³ããªã«è¿œå ããŸã-main.cpp
add_executableïŒtest_executable main.cppïŒ
ïŒcmake_minimum_requiredã³ãã³ãã«ã³ã¡ã³ãããCMakeã®ã³ãã³ãåŒæ°ã«é¢ããããã€ãã®åèª
å
¬åŒcmake_minimum_requiredããã¥ã¡ã³ã
ãã®ã³ãã³ãã¯ããã®æ§æãæ§ç¯ã§ããCMakeã®æå°ããŒãžã§ã³ãèšå®ããŸãã ããŒãžã§ã³ãå€ãããå Žåã«CMakeãæŽæ°ããããã«ãŠãŒã¶ãŒã«ããã«äŒããããã«äœ¿çšãããŸãã
ããã¯æåã®CMakeã³ãã³ãã§ãããããããã§åŒæ°ãæž¡ãã®ãæ £äŸã§ããããšã«æ³šæããŠãã ããã åŒæ°éã®åºåãæåã¯ç©ºçœïŒã¹ããŒã¹ãã¿ããæ¹è¡ïŒã§ãã åæã«ãCMakeã«ã¯ååä»ãåŒæ°ããããŸãã ãããã£ãŠãããšãã°ãæ瀺ãããåŒã³åºãã§ã¯ããããŒãžã§ã³2.8.8ãã¯ãcmake_minimum_requiredã³ãã³ãã®ååä»ãåŒæ°VERSIONã®åŒæ°ã®å€2.8.8ã®è»¢éã§ãã 次ã®ã³ãã³ãïŒãããžã§ã¯ãïŒã®åŒã³åºãã§ã¯ãååãªãã§åŒæ°ãæž¡ãããŸãã
æ£çŽãªãšãããæž¡ãããå€ãåŒæ°ã§ãããã åŒæ°ã®å€ã§ããããCMakeãèªèããåçã¯ããããããŸããã§ããã ã³ãã³ããåŒã³åºãæ§æã«ã€ããŠå ¬åŒã®ããã¯ãèªãã åŸã§ããç§ã¯ãããç解ããŠããŸããã§ãã...ãããã95ïŒ ã®å Žåããããªãã§çããããšãã§ããããã«æããŸãã
ãã®ã³ãã³ãã¯ããã®æ§æãæ§ç¯ã§ããCMakeã®æå°ããŒãžã§ã³ãèšå®ããŸãã ããŒãžã§ã³ãå€ãããå Žåã«CMakeãæŽæ°ããããã«ãŠãŒã¶ãŒã«ããã«äŒããããã«äœ¿çšãããŸãã
ããã¯æåã®CMakeã³ãã³ãã§ãããããããã§åŒæ°ãæž¡ãã®ãæ £äŸã§ããããšã«æ³šæããŠãã ããã åŒæ°éã®åºåãæåã¯ç©ºçœïŒã¹ããŒã¹ãã¿ããæ¹è¡ïŒã§ãã åæã«ãCMakeã«ã¯ååä»ãåŒæ°ããããŸãã ãããã£ãŠãããšãã°ãæ瀺ãããåŒã³åºãã§ã¯ããããŒãžã§ã³2.8.8ãã¯ãcmake_minimum_requiredã³ãã³ãã®ååä»ãåŒæ°VERSIONã®åŒæ°ã®å€2.8.8ã®è»¢éã§ãã 次ã®ã³ãã³ãïŒãããžã§ã¯ãïŒã®åŒã³åºãã§ã¯ãååãªãã§åŒæ°ãæž¡ãããŸãã
æ£çŽãªãšãããæž¡ãããå€ãåŒæ°ã§ãããã åŒæ°ã®å€ã§ããããCMakeãèªèããåçã¯ããããããŸããã§ããã ã³ãã³ããåŒã³åºãæ§æã«ã€ããŠå ¬åŒã®ããã¯ãèªãã åŸã§ããç§ã¯ãããç解ããŠããŸããã§ãã...ãããã95ïŒ ã®å Žåããããªãã§çããããšãã§ããããã«æããŸãã
cmake_minimum_requiredïŒããŒãžã§ã³2.8.8ïŒ
ïŒãããžã§ã¯ãããŒã ãžã®ã³ã¡ã³ã
ãããžã§ã¯ãããŒã ã®å
¬åŒããã¥ã¡ã³ã
ãã®ã³ãã³ãã¯ãCMakeãããžã§ã¯ãã«é¢ããæ å ±ãèšå®ããŸãã ããã¯ãäžè¬çã«IDEã®ãããžã§ã¯ããšåŒã°ãããã®ã§ã¯ãããŸããã ããã¯ããããžã§ã¯ãéå±€ã®1ã€äžã®ã¬ãã«ãæããŸãã Visual Studioã§ã¯ããã¯ãœãªã¥ãŒã·ã§ã³ãšåŒã°ããEclipseã§ã¯ã¯ãŒã¯ã¹ããŒã¹ãšåŒã°ããŸã ã
CMakeãããžã§ã¯ãã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããã€ãã®ã©ã€ãã©ãªãšå®è¡å¯èœãã¡ã€ã«ãã¢ã»ã³ãã«ããããã®æ§æãããã³ããããçžäºã«ãªã³ã¯ããããã®ã«ãŒã«ãæå®ã§ããŸãã
ãã®ã³ãã³ãã¯ãCMakeãããžã§ã¯ãã«é¢ããæ å ±ãèšå®ããŸãã ããã¯ãäžè¬çã«IDEã®ãããžã§ã¯ããšåŒã°ãããã®ã§ã¯ãããŸããã ããã¯ããããžã§ã¯ãéå±€ã®1ã€äžã®ã¬ãã«ãæããŸãã Visual Studioã§ã¯ããã¯ãœãªã¥ãŒã·ã§ã³ãšåŒã°ããEclipseã§ã¯ã¯ãŒã¯ã¹ããŒã¹ãšåŒã°ããŸã ã
CMakeãããžã§ã¯ãã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããã€ãã®ã©ã€ãã©ãªãšå®è¡å¯èœãã¡ã€ã«ãã¢ã»ã³ãã«ããããã®æ§æãããã³ããããçžäºã«ãªã³ã¯ããããã®ã«ãŒã«ãæå®ã§ããŸãã
ïŒãã®å Žåããããžã§ã¯ãã«test_projectãšããååãä»ããŸã
ãããžã§ã¯ãïŒtest_projectïŒ
ïŒadd_executableã³ãã³ãã«é¢ããã³ã¡ã³ã
add_executableã³ãã³ãã®å
¬åŒããã¥ã¡ã³ã
ãããžã§ã¯ãã«ã¿ãŒã²ãããè¿œå ããŠãå®è¡å¯èœãã¡ã€ã«ããã«ãããŸãã å®è¡ãã¡ã€ã«ãšã©ã€ãã©ãªã¯ãCMakeã®ãã«ãã¿ãŒã²ããã®ç®æšã«ãªãå ŽåããããŸãïŒã¢ã»ã³ããªã®ç®çã¯ãCMakeãã«ãã·ã¹ãã ã«é¢ããããã¯ã®ã»ã¯ã·ã§ã³ã®åé ã«ãããŸãïŒã
æåã®åŒæ°ã¯ãã«ãã¿ãŒã²ããã®ååã§ãããã®åŸãå®è¡å¯èœãã¡ã€ã«ãåéããããœãŒã¹ã³ãŒããã¡ã€ã«ãžã®ãã¹ããªã¹ããããŸãã
ããã«åŸ®èª¿æŽããããã«ãããã€ãã®è¿œå ã®åŒæ°ããããŸããããã«ã€ããŠã¯å ¬åŒããã¯ã§èªãããšãã§ããŸãã åçŽãªãããžã§ã¯ãã®å Žåãæå®ãããæ§æã§ååã§ãã
ãããžã§ã¯ãã«ã¿ãŒã²ãããè¿œå ããŠãå®è¡å¯èœãã¡ã€ã«ããã«ãããŸãã å®è¡ãã¡ã€ã«ãšã©ã€ãã©ãªã¯ãCMakeã®ãã«ãã¿ãŒã²ããã®ç®æšã«ãªãå ŽåããããŸãïŒã¢ã»ã³ããªã®ç®çã¯ãCMakeãã«ãã·ã¹ãã ã«é¢ããããã¯ã®ã»ã¯ã·ã§ã³ã®åé ã«ãããŸãïŒã
æåã®åŒæ°ã¯ãã«ãã¿ãŒã²ããã®ååã§ãããã®åŸãå®è¡å¯èœãã¡ã€ã«ãåéããããœãŒã¹ã³ãŒããã¡ã€ã«ãžã®ãã¹ããªã¹ããããŸãã
ããã«åŸ®èª¿æŽããããã«ãããã€ãã®è¿œå ã®åŒæ°ããããŸããããã«ã€ããŠã¯å ¬åŒããã¯ã§èªãããšãã§ããŸãã åçŽãªãããžã§ã¯ãã®å Žåãæå®ãããæ§æã§ååã§ãã
ïŒãã®å Žåã1ã€ã®ãœãŒã¹ãã¢ã»ã³ããªã«è¿œå ããŸã-main.cpp
add_executableïŒtest_executable main.cppïŒ
ããããã¹ãŠã®ãã¹ããã¡ã€ã«ãäœæããåŸãã³ã³ãœãŒã«ãéããŠæ¬¡ã®ããšãè¡ããŸããã
cd {cmake_test}
mkdirãã«ã
cdãã«ã
ãã¹ãã¢ã»ã³ããªã®ãããã©ã«ããŒã«ç§»åããŸããã
ãã®äžã«ãã©ã«ããŒãäœæããããã«CMakeã³ãã³ãã䜿çšããŠæ§æãã¡ã€ã«ãçæããŸãã
äœæããããã©ã«ãã«ç§»åããŸããã
cmake -G "MinGW Makefiles" ../
MinGWããŒã«ãã§ãŒã³ãä»ããŠã¢ã»ã³ããªæ§æãã¡ã€ã«ãçæããããã®åŒã³åºãã
-G "MinGW Makefiles" -æ§æãã¡ã€ã«ãäœæããããã®ãžã§ãã¬ãŒã¿ãŒã®éžæã Generator-æœè±¡CMakeæ§æããç¹å®ã®ããŒã«ãã§ãŒã³ïŒãŸãã¯IDEïŒã®æ§æãã¡ã€ã«ãçæããããã°ã©ã ã
ãã®å ŽåãMinGWããŒã«ãã§ãŒã³ã«ä»å±ããŠããMinGW32-makeããŒã«ã®ã¡ã€ã¯ãã¡ã€ã«ãååŸãããã£ãã®ã§ãã
../-CMakeLists.txtãé 眮ãããŠãããã©ã«ããŒãžã®ãã¹ãšãæ§æã®èª¬æã
説æããã³ãã³ããåŒã³åºããåŸããããžã§ã¯ãããã«ãããããã®æ§æãã¡ã€ã«ããåŒã³åºãå ã®ãã©ã«ããŒã«è¡šç€ºãããŸãã ãã®å ŽåããœãŒã¹main.cppããã®1ã€ã®å®è¡å¯èœãã¡ã€ã«ã®ã¢ã»ã³ããªæ§æãäºæãããŠããŸããã
代æ¿ãªãã·ã§ã³
@SilentBob ã¯ãæ§æãã¡ã€ã«ãçæãããšãã«äœ¿çšã§ãã䟿å©ãªå±æ§ãææ¡ããŸãã ã ãã®ãããã¢ã»ã³ããªæ§æãçæãããã©ã«ããŒã«å¯ŸããŠmkdirãåŒã³åºãããšã¯ã§ããŸããã
å±æ§-B {build-folder} ã {build-folder}ã¯ãCMakeãæ§æãçæãããã©ã«ããŒã§ãã äœæããå¿ èŠã¯ãããŸããããã®åŒã³åºããè¡ããããã©ã«ããŒå ã«CMakeèªäœã«ãã£ãŠäœæãããŸãã CMakeã¯mkdirãšåæ§ã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
ãã®ã³ãã³ãã䜿çšãããšãæ§ç¯æã«èº«äœã®åããæžããããšãã§ããŸãã ããšãã°ãã³ã³ãã¥ãŒã¿ãŒã®ä»»æã®ãã©ã«ããŒã«ãããã®äŸã®æ§æãçæããåæã«ãã®ãã©ã«ããŒã«ãããã«ããã©ã«ããŒã«æ§æããããã«é 眮ããã«ã¯ã次ã®ã³ãã³ããåŒã³åºããŸãã
cmake {cmake_test} -Bbuild -G "MinGW Makefiles"
ãã«ããã©ã«ããŒãäœæãããCMakeã¯äœæããããã«ãæ§æããã®äžã«é 眮ããŸãã
å±æ§-B {build-folder} ã {build-folder}ã¯ãCMakeãæ§æãçæãããã©ã«ããŒã§ãã äœæããå¿ èŠã¯ãããŸããããã®åŒã³åºããè¡ããããã©ã«ããŒå ã«CMakeèªäœã«ãã£ãŠäœæãããŸãã CMakeã¯mkdirãšåæ§ã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
ãã®ã³ãã³ãã䜿çšãããšãæ§ç¯æã«èº«äœã®åããæžããããšãã§ããŸãã ããšãã°ãã³ã³ãã¥ãŒã¿ãŒã®ä»»æã®ãã©ã«ããŒã«ãããã®äŸã®æ§æãçæããåæã«ãã®ãã©ã«ããŒã«ãããã«ããã©ã«ããŒã«æ§æããããã«é 眮ããã«ã¯ã次ã®ã³ãã³ããåŒã³åºããŸãã
cmake {cmake_test} -Bbuild -G "MinGW Makefiles"
ãã«ããã©ã«ããŒãäœæãããCMakeã¯äœæããããã«ãæ§æããã®äžã«é 眮ããŸãã
ãã®åŒã³åºãã¯åå2æ25åã«è¡ããŸããã æéã¯ããªã¯ãšã¹ãã®å±¥æŽã«åºã¥ããŠãã€ãŸãã次ã®åé¡ã«å¯Ÿããæåã®ãªã¯ãšã¹ãã®æéã«åºã¥ããŠåŸ©å ãããŸãã
ïŒ2:25ïŒåé¡
äœãéãŸããŸããã§ããã CMakeã¯æ¬¡ã®ãšã©ãŒãçæããŸããïŒãšã©ãŒã«é¢é£ããã¡ãã»ãŒãžã®éšåã®ã¿ãæ®ãããã¹ãé衚瀺ã«ããŸãïŒã
{my cmake_path} /share/cmake-2.8/Modules/CMakeMinGWFindMake.cmake:20ïŒMESSAGEïŒã§ã®CMakeãšã©ãŒïŒsh.exeãPATHã§èŠã€ãããŸããïŒããã§{some path}
PATHã«sh.exeããªãã·ã§ã«ããcmakeãå®è¡ããŸãã
ç§ã¯ããã«ã€ããŠã°ãŒã°ã«ã§èª¿ã¹ãŠã ãã®ãããªæ å ±ãèŠã€ããŸããã ç°¡åã«èšããšãsh.exeãã·ã¹ãã ãã¹ã§äœ¿çšå¯èœãªå ŽåãMinGWã®ãžã§ãã¬ãŒã¿ãŒã¯æ©èœããŸããã çç±-ãŸã æåŸãŸã§ç解ã§ãããå€ã®3æåã«ã¯ç¹ã«æŽçããããããŸããã§ãããç¹ã«ãç§ã®å Žåããã®åé¡ã¯ç°¡åã«è§£æ±ºã§ããããšãèæ ®ããŠãã ããã
sh.exeãè¿œå ãããã·ã¹ãã ãã¹ïŒç§ã®å Žåã¯gitïŒãäžæçã«åé€ããCMakeãå床起åããŸãããã...ãšã©ãŒãå床衚瀺ãããŸããããå¥ã®ãšã©ãŒãçºçããŸããã æ°ãããšã©ãŒã¯ãã£ãšæ°ã®ãããããã«èŠããŸããïŒãšã©ãŒã«é¢ããã¡ãã»ãŒãžã®éšåã®ã¿ãæ®ããŸãïŒã
Cãªããžã§ã¯ãã®äœæCMakeFiles / cmTC_ebbab.dir / testCCompiler.c.obj
CïŒ\ MinGW \ bin \ gcc.exe -o CMakeFiles \ cmTC_ebbab.dir \ testCCompiler.c.obj -c CïŒ\ Users \ test \ Desktop \ âÑÑ \ cpprt_FINAL \ current \ github \ build \ CMakeFiles \ CMakeTmp \ testCCompiler.c
gcc.exeïŒãšã©ãŒïŒCïŒ\ Users \ test \ Desktop \ âÑÑ \ cpprt_FINAL \ current \ github \ build \ CMakeFiles \ CMakeTmp \ testCCompiler.cïŒãã®ãããªãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªã¯ãããŸãã
ããŸããŸãªãœãŒã¹ãå床èªãã åŸããã®ãšã©ãŒèªäœã次ã®çç±ã§çºçããããšã«æ°ä»ããŸããã ç¹å®ã®ããŒã«ãã§ãŒã³ã®æ§æãã¡ã€ã«ãçæããåã«ãCMakeã¯ãã®ããŒã«ãã§ãŒã³ã®ã³ã³ããŒãã³ãïŒã³ã³ãã€ã©ããªã³ã«ãªã©ïŒã®ååšããã§ãã¯ãããããã®ã³ã³ããŒãã³ããæ£ããæ©èœãããã©ããããã§ãã¯ããŸãã ãããè¡ãã«ã¯ãäžæãã©ã«ããŒã«ãœãŒã¹ã³ãŒãtestCCompiler.cãäœæããã³ã³ãã€ã©ãŒã䜿çšããŠãã«ãããããšããŸãã ç§ã®å Žåãäœããã®çç±ã§CMakeã¯ãã®ãããªãã¡ã€ã«ãäœæããŸããã§ããã
æ®å¿µãªãããããã«ã€ããŠå ·äœçãªãªã³ã¯ãè¿°ã¹ãããšã¯ã§ããŸããããã®ã¡ã«ããºã ã®ããã€ãã®ãšã³ãŒã以äžã«ç€ºããŸãã
äžè¬ã«ããšã©ãŒèªäœã¯ãã¡ãããäžèšã®çç±ã§çºçããŸããã ãããããããåå ã§ã¯ãªãçµæã§ããããšã¯æããã§ããã çç±ãèŠã€ããããã«ãç§ã¯4æ³ç®ã®å§ãŸãã®åã«ãçŽ40åéã°ãŒã°ã«ã§æ€çŽ¢ããŸããã ããã¯ã蟲æ°ãã®ç²Ÿç¥ã«ãããå žåçãªäºæ¥é ãã§ããã ãã®ã¯ãœã³ãŒããæ©èœãããæåŸã«ããããŠç ãã«ã€ãããšã¯...ç§ãæã¡è² ãããŸããã æåã«firstããŸããã ããã¯ç§ãå€ã«3æåãŸã§æãäžããæãè³¢æãªãªã³ã¯ã®1ã€ã§ãã
解決ç ïŒåé¡ã¯äœã§ãããããã§ã«ãã®èšäºãæžããŠããæäžã§ããã å®éã«ã¯ãã¢ã»ã³ããªãå®è¡ããããã©ã«ããžã®ãã¹ã«ã¯ãã·ã¢èªã®æåãå«ãŸããŠããŸããã MinGWã®makefileã®ã¢ã»ã³ããªãæåãããããåæ§ã®æ¬ é¥ã®ãªããã¹ã«ãã©ã«ããŒã«ã¢ã»ã³ãã«ãã䟡å€ããããŸããã
çµè«ïŒ Unicodeãã¹ã«æ³šæããŠãã ããïŒ äœããæ©èœãããçç±ãããããªãå Žåã¯ããã¹ã§ãŠãã³ãŒããæ¢ãããŠãã³ãŒããªãã§ãã¹ãäœæããŠã¿ãŠãã ããïŒ
ïŒ10:38ïŒVisual Studioåãã®ãã«ã

ç§ã¯ãMinGWã®ã¢ã»ã³ããªãšã¯ãããããããªããšããèªä¿¡ãæã£ãŠç®ãèŠãŸããã Visual Studioãã€ã³ã¹ããŒã«ããŠããã®ã§ãæåã«æ§æãåéããŠïŒãŸãã¯ãã¹ã¿ãžãªã®å Žåã¯ãœãªã¥ãŒã·ã§ã³ãšãããžã§ã¯ããåéããŠïŒãä»ã®ããŒã«ãã§ãŒã³ã®æ§æã®çæããã¹ãããŠã¿ãŠãã ããã
ã³ã³ãœãŒã«ãéãã{cmake_test} / buildãã©ã«ããŒã«ç§»åããŠCMakeãåŒã³åºããå¥ã®ãžã§ãã¬ãŒã¿ãŒãæå®ããŸããã
cmake -G "Visual Studio 14 2015" ../
å¥è·¡ïŒ ãã«ããã©ã«ããŒã§ã¯ãtest_project.slnãœãªã¥ãŒã·ã§ã³ãããã€ãã®ãããžã§ã¯ãïŒããã§å°ãé©ãã-ãªãããã€ãïŒãããã³æ§æå€æŽã®å Žåã«CMakeããœãªã¥ãŒã·ã§ã³ãšãããžã§ã¯ãèšå®ãæŽæ°ã§ããããšãç解ããããã«å¿ èŠãªè£å©ãã¡ã€ã«ã®æã圢æãããŸãããæ¯åèšå®ãåçæããå¿ èŠããããŸãã
ãœãªã¥ãŒã·ã§ã³ãéããŸããã ã¯ããããã¯æããŸããã§ããã main.cppãå®è¡å¯èœãã¡ã€ã«ã«ã¢ã»ã³ãã«ããããã®äºæ³ãããtest_executable.vcxprojãããžã§ã¯ãã«å ããŠãä»ã®2ã€ã®å·Šå©ãã®ãããžã§ã¯ãALL_BUILD.vcxprojããã³ZERO_CHECK.vcxprojããœãªã¥ãŒã·ã§ã³ã«å«ãŸããŠããŸããã ç§ã¯ã°ãŒã°ã«ã§èª¿ã¹ãŸããã ã¹ã¿ãã¯ãªãŒããŒãããŒã«é¢ãããã®åçãèŠã€ããŸããã ããããããããã¯ãCMakeLists.txtãã¡ã€ã«ãå€æŽãããå ŽåãCMakeãåãã«ãã®åã«ãããžã§ã¯ããã¡ã€ã«ãæŽæ°ãããŸãã«ãã®ãããžã§ã¯ãã§ããããããã®ãããžã§ã¯ããã¡ã€ã«ã®çæå ã§ããããšã«æ°ä»ããŸããã äžè¬ã«ããã¹ãŠãæ£ããã®ã§ãäœæãããŠããã¯ãã§ãã
ZERO_CHECKãåãé€ãæ¹æ³
cpprtãªããžããªã®æçµçãªåœ¢æäžã«ãCMakeã®äŸåé¢ä¿ãªãïŒZERO_CHECKããã³BUILD_ALLãããžã§ã¯ããªãïŒã§ã¹ã¿ãžãªã®CMakeæ§æãçæããå¿
èŠããããŸãã-CMakeãæããªããŠãŒã¶ãŒããããã®ãããžã§ã¯ããå®è¡ã§ããããã«ããããã§ãã ZERO_CHECKãåãé€ãæ¹æ³ã¯ã ããã§èŠã€ãããŸãã ã ãã¡ãããããã¯CMakeã®ã¢ã€ãã¢ã倧ããå£ãïŒå€æŽãè¡ããããšæ§æã®æŽæ°ãå£ãïŒãšèšãããŸããããZERO_CHECKãªãã§ã¹ã¿ãžãªã®ãœãªã¥ãŒã·ã§ã³ãçæããã«ã¯ãCMAKE_SUPPRESS_REGENERATIONãªãã·ã§ã³ãTRUEã«èšå®ããã ãã§ãïŒæ¬¡ã®ããã«èšå®ã§ããŸãïŒ-DCMAKE_SUPPRESS_REGENERATION = TRUEã-ã³ãã³ãã©ã€ã³ã䜿çšããŠãœãªã¥ãŒã·ã§ã³çæãæ§æããå ŽåïŒã ãã®ãªãã·ã§ã³ãèšå®ãããŠããå ŽåãBUILD_ALLããã³ãã®ä»ã®ä»éããCMakeãã¡ã€ã«ããã³ãã©ã«ããŒã¯åŒãç¶ãäœæãããŸããããããžã§ã¯ããæãªããã«åé€ã§ããŸãã
ZERO_CHECKãåãé€ãã ãã§ã¯ååã§ã¯ãªãã£ãçç±
ããã¯CMakeã«å¯Ÿããæåã®ç¹çŽ°ãªèª€è§£ã§ããäºå®ãç§ãç解ããŠããããã«ãCMakeã¯çžå¯Ÿãã¹ã§æ§æãçæã§ããŸããã ã©ãããæå³ïŒ
ããšãã°ããããžã§ã¯ãã«CMakeãå«ããã¹ãå«ãããšãCMakeæ§æã«é¢é£ãããã¹ãæå®ããå Žåã§ãã転éããããã©ã«ããŒãžã®çµ¶å¯Ÿãã¹ãäœæãããŸãã ããã¯ãã¢ã»ã³ããªçµæãæžã蟌ãŸãããã©ã«ããŒãžã®ãã¹ãå«ãããã¹ãŠã®ãã«ãæ§æã®ãã¹ãŠã®ãã¹ã«é©çšãããŸãïŒãã«ãåºådirectortïŒïŒ
説æãããŠãããã¹çæã®æ©èœã«ããã絶察ãã¹ã¯åäžãŠãŒã¶ãŒã®ç¹å®ã®ãã¹ã«ãã€ã³ããããããããªããžããªã«CMakeã§çæãããæ§æããã³ãããžã§ã¯ããã¡ã€ã«ãä¿åããããšãã§ããªããªããŸãã
ç§ã¯ãã®åé¡ã解決ããæ¹æ³ããŸã èŠã€ããŠããŸããã ç§ã¯ãªãã·ã§ã³CMAKE_USE_RELATIVE_PATHSãèŠã€ããŸããããå ¬åŒããã¯ã«ã¯ãæ©èœããªãå¯èœæ§ããããŸãïŒããšããã¡ã¢ããããŸãããããŠããã€ãã®ããã«ãå ¬åŒããã¯ã¯åãã€ããŸããã ããŸããããŸããïŒ
ãã®å€ãè°è«ã§ã¯ãçžå¯Ÿãã¹ã䜿çšããæ©èœã¯CMakeã«ã¯äžè¬çã§ã¯ãªãããããã£ãŠæåŸ ã§ããªããšè¿°ã¹ãŠããŸãããogre3dã²ãŒã ãšã³ãžã³ã®ãã©ãŒã©ã ã«é¢ããå°ãæè¿ã®è°è«ã§ã¯ã ãã®çãã¯åããœãªã¥ãŒã·ã§ã³ãæäŸããŸããç§ã¯ãã®ãã©ãŒã©ã ãŠãŒã¶ãŒãogre3dã§äœ¿çšããããšããŸããã
ãã®åé¡ãã€ã³ã¿ãŒãããäžã§ã©ãã»ã©äžååã«ã«ããŒãããŠãããã«é©ããŠãããšèšããŸãã ç§ã®æèŠã§ã¯ãããã¯éåžžã«ããªã±ãŒããªåé¡ã§ãã ç§ã®æèŠã§ã¯ãcmakeããcmakeãŸã§ç¬ç«ããæ§æãçæãããªãã·ã§ã³ã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ã®ã€ã³ããŒããªããžããªãªãã·ã§ã³ã«äŒŒãŠããŸãã 圌女ã¯ããã§ãªããã°ãªããŸããã
ãã¶ãç§ã¯ã²ã©ãèŠãŠããŸããããã©ããããããééã£ãŠããŸãããïŒ ã©ãããããããã®åé¡ãèªåã§è§£æ±ºããå Žåã¯ãã³ã¡ã³ãã§ããªããã©ã®ããã«ãããè¡ã£ãããæããŠãã ããã ãã®èšäºã®å¥ã®ã»ã¯ã·ã§ã³ã§ãããã®ãã¿ãã¬ãäœãçŽãããã®ã»ã¯ã·ã§ã³ã®èè ãšããŠããªãã瀺ããŸãã
ããšãã°ããããžã§ã¯ãã«CMakeãå«ããã¹ãå«ãããšãCMakeæ§æã«é¢é£ãããã¹ãæå®ããå Žåã§ãã転éããããã©ã«ããŒãžã®çµ¶å¯Ÿãã¹ãäœæãããŸãã ããã¯ãã¢ã»ã³ããªçµæãæžã蟌ãŸãããã©ã«ããŒãžã®ãã¹ãå«ãããã¹ãŠã®ãã«ãæ§æã®ãã¹ãŠã®ãã¹ã«é©çšãããŸãïŒãã«ãåºådirectortïŒïŒ
説æãããŠãããã¹çæã®æ©èœã«ããã絶察ãã¹ã¯åäžãŠãŒã¶ãŒã®ç¹å®ã®ãã¹ã«ãã€ã³ããããããããªããžããªã«CMakeã§çæãããæ§æããã³ãããžã§ã¯ããã¡ã€ã«ãä¿åããããšãã§ããªããªããŸãã
ç§ã¯ãã®åé¡ã解決ããæ¹æ³ããŸã èŠã€ããŠããŸããã ç§ã¯ãªãã·ã§ã³CMAKE_USE_RELATIVE_PATHSãèŠã€ããŸããããå ¬åŒããã¯ã«ã¯ãæ©èœããªãå¯èœæ§ããããŸãïŒããšããã¡ã¢ããããŸãããããŠããã€ãã®ããã«ãå ¬åŒããã¯ã¯åãã€ããŸããã ããŸããããŸããïŒ
ãã®å€ãè°è«ã§ã¯ãçžå¯Ÿãã¹ã䜿çšããæ©èœã¯CMakeã«ã¯äžè¬çã§ã¯ãªãããããã£ãŠæåŸ ã§ããªããšè¿°ã¹ãŠããŸãããogre3dã²ãŒã ãšã³ãžã³ã®ãã©ãŒã©ã ã«é¢ããå°ãæè¿ã®è°è«ã§ã¯ã ãã®çãã¯åããœãªã¥ãŒã·ã§ã³ãæäŸããŸããç§ã¯ãã®ãã©ãŒã©ã ãŠãŒã¶ãŒãogre3dã§äœ¿çšããããšããŸããã
ãã®åé¡ãã€ã³ã¿ãŒãããäžã§ã©ãã»ã©äžååã«ã«ããŒãããŠãããã«é©ããŠãããšèšããŸãã ç§ã®æèŠã§ã¯ãããã¯éåžžã«ããªã±ãŒããªåé¡ã§ãã ç§ã®æèŠã§ã¯ãcmakeããcmakeãŸã§ç¬ç«ããæ§æãçæãããªãã·ã§ã³ã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ã®ã€ã³ããŒããªããžããªãªãã·ã§ã³ã«äŒŒãŠããŸãã 圌女ã¯ããã§ãªããã°ãªããŸããã
ãã¶ãç§ã¯ã²ã©ãèŠãŠããŸããããã©ããããããééã£ãŠããŸãããïŒ ã©ãããããããã®åé¡ãèªåã§è§£æ±ºããå Žåã¯ãã³ã¡ã³ãã§ããªããã©ã®ããã«ãããè¡ã£ãããæããŠãã ããã ãã®èšäºã®å¥ã®ã»ã¯ã·ã§ã³ã§ãããã®ãã¿ãã¬ãäœãçŽãããã®ã»ã¯ã·ã§ã³ã®èè ãšããŠããªãã瀺ããŸãã
Visual Studioã§ã¯ãtest_executableãããžã§ã¯ããã¹ã¿ãŒãã¢ãããããžã§ã¯ããšããŠéžæããctrl + f5ãæŒããŸããã ã³ã³ãœãŒã«ã«ãHello from CMakeïŒããšå°å·ãããŸããã ãããã£ããŒä¹Ÿæ¯ïŒ

ããŒãã¹ïŒCMakeã«ãããŠãããŒãµã«ã¢ã»ã³ããª
@SilentBobã¯ã圌ã®ãããã§ãCMakeã§äœæãããç¹å®ã®ãã«ãæ§æã®ã¢ã»ã³ããªã®éå§ãæœè±¡åã§ããéåžžã«äŸ¿å©ãªã³ãã³ããææ¡ããŸãã ã
cmake --build {ãã«ããã¹} --config {ãã«ãã¿ã€ã}
{build-path} -CMakeã«ãã£ãŠçæããããã«ãæ§æããããã©ã«ããŒãžã®ãã¹ã
{build-type} -ãã«ãã¿ã€ãïŒDEBUGãŸãã¯RELEASEã
ãã®ã³ãã³ãã«ãããç¹å®ã®ããŒã«ãã§ãŒã³ãŸãã¯IDEã®æ§æãæ§ç¯ã§ããŸãã ç§ã®æèŠã§ã¯ãããã€ãã®ã¯ãã¹ãã©ãããã©ãŒã ãã«ãã¹ã¯ãªãããäœæãããšãã«ãç¹ã«èªååã«éåžžã«åœ¹ç«ã€æ©èœã§ãã
cmake --build {ãã«ããã¹} --config {ãã«ãã¿ã€ã}
{build-path} -CMakeã«ãã£ãŠçæããããã«ãæ§æããããã©ã«ããŒãžã®ãã¹ã
{build-type} -ãã«ãã¿ã€ãïŒDEBUGãŸãã¯RELEASEã
ãã®ã³ãã³ãã«ãããç¹å®ã®ããŒã«ãã§ãŒã³ãŸãã¯IDEã®æ§æãæ§ç¯ã§ããŸãã ç§ã®æèŠã§ã¯ãããã€ãã®ã¯ãã¹ãã©ãããã©ãŒã ãã«ãã¹ã¯ãªãããäœæãããšãã«ãç¹ã«èªååã«éåžžã«åœ¹ç«ã€æ©èœã§ãã
äœæ¥éå§ããçŽ1æéãçµéããŸããã
ïŒ11:24ïŒCMakeãä»ããã¢ã»ã³ããªã®ããã®ãªããžããªã®æºå
ããã§ãCMakeãã¡ã€ã³ãããžã§ã¯ãã«æ¥ç¶ã§ããŸãã CMakeã®åã¯ããã§ã«è¿°ã¹ãããã«ãç§ã®ãããžã§ã¯ãã«ã¯ãµãã¢ãžã¥ãŒã«ã«é¢ããå éšçµç¹ããããŸããã CMakeã®ãããã§éãããèŠéããèæ ®ããŠããµãã¢ãžã¥ãŒã«ã®äœ¿çšã¯æŸæ£ãããå¯èœæ§ããããŸãã ãªããžããªã®ã¯ããŒã³ãå¥ã«äœæãããã¹ãŠã®ãµãã¢ãžã¥ãŒã«ã®ãœãŒã¹ã³ãŒããååŸããCMakeã䜿çšããŠã¢ã»ã³ããªãæ§æããæ¹æ³ã«ã€ããŠèãå§ããŸããã
ãªããžããªããããã«åæ§ç¯ãããããèŠããã¢ãã«ãããªããžããªã®ããã«äººéã«èŠããŸããã 以äžã¯ãCMakeã®æäœã«çŽæ¥é¢ä¿ãããããžã§ã¯ãæ§é ã®äžéšã§ãã
/ build-ãœãŒã¹ã³ãŒããåéããããšã«ãªã£ãŠãã空ã®ãã©ã«ããŒã
/ include-ã©ã€ãã©ãªAPIã«ã¢ã¯ã»ã¹ããããã®ããããŒãå«ããã©ã«ããŒã
/ src-ã©ã€ãã©ãªã®ãœãŒã¹ã³ãŒããå«ããã©ã«ããŒã
/ examples-ããŸããŸãªãµã³ãã«ã®ãœãŒã¹ã³ãŒããå«ããã©ã«ããŒã
-/ __ example_hierarchies__-ãã¹ãã¯ã©ã¹éå±€ãå«ããã©ã«ããŒïŒä»¥äžãåç §ïŒã
-/ simple_examples-å°ããªãã¹ãã±ãŒã¹ã®ãœãŒã¹ãã©ã«ããŒã
/ tools-ãããžã§ã¯ããæäœããããã®ããŒã«ã®ãããã©ã«ããŒã
-/ console-çŸæç¹ã§ã¯ããŒã«ã¯1ã€ã ãã§ããã®ååã¯consoleã§ãã
CMakeLists.txt-ãããžã§ã¯ãã®ããŸããŸãªèŠçŽ ãåéã§ããCMakeãã¡ã€ã«ã
çŸåšã®ã©ã€ãã©ãªãªããžããª
ãã®èšäºã«èšèŒãããŠããããšã¯ã e9c34bbã³ãããã«ãåœãŠã¯ãŸããŸãã
__example_hierarchies__ã®è©³çŽ°
__example_hierarchies__ãã©ã«ããŒã«ã¯ãcpprtãã¯ãã§ç»é²ãããããã€ãã®ã¯ã©ã¹éå±€ãå«ãŸããŠããŸãã ãããã®ã¯ã©ã¹ã«ã¯ãã£ãŒã«ãããããŸãããçžäºã«ç¶æ¿ãããã ãã§ããä»®æ³ã¯ã©ã¹ã§ ã空ã®ã¡ãœããã¯cpprtãæœè±¡ã¯ã©ã¹ã§ã©ã®ããã«æ©èœãããã瀺ãããã«ã®ã¿å¿
èŠã§ãã cpprtã©ã€ãã©ãªã¯ã¯ã©ã¹ç¶æ¿ã«é¢ããã¡ã¿ããŒã¿ã«å€ãã®æ³šæãæããããŸããŸãªãã¹ããäŸã§__example_hierarchies__ããã®ç¶æ¿éå±€ã䜿çšã§ããããããããã®éå±€ãå¿
èŠã§ããã
ã©ã€ãã©ãªã®é ä¿¡ã®äžç°ãšããŠã次ã®ããŒã¹ãçµã¿ç«ãŠãããšãã§ãããšå€æããŸããã

ã©ã€ãã©ãªã®é»è² ã
å®è¡å¯èœãã¡ã€ã«ã®éè² ã
ã¢ã»ã³ããªã¿ãŒã²ããéã§å ±æããããœãŒã¹ã³ãŒããå«ããã©ã«ããŒã®ç·è² ã
å³æžé€š
1. cpprt-å®éã«ã¯ãã©ã€ãã©ãªèªäœã / srcãã©ã«ããŒã«ãããœãŒã¹ã³ãŒããš/ includeãã©ã«ããŒã«ããã€ã³ã¿ãŒãã§ã€ã¹ããåéãããŸãã
éçã©ã€ãã©ãªã«ã¢ã»ã³ãã«ãããäŸåé¢ä¿ã¯ãããŸããã
äžäŸ
2. simple_examplesã¯ãOOPã«æ £ããããã®åç©ã¯ã©ã¹ã®å€å žçãªéå±€ãèšè¿°ãããã®éå±€ã«åºã¥ããŠã©ã€ãã©ãªAPIã䜿çšããåäžã®ãã¡ã€ã«ã§æ§æãããå°ããªäŸã§ãã
cpprtã©ã€ãã©ãªã«å¿ããŠãå®è¡å¯èœãã¡ã€ã«ã«ã¢ã»ã³ãã«ãããŸãã
èšåš
3. ã³ã³ãœãŒã« -çŸæç¹ã§ã¯ãããã¯å®éã«ã¯ã©ã€ãã©ãªã®æ©èœãå®èšŒããäŸã§ããããŸãããç¬ç«ããããŒã«ã«å€ããèšç»ã§ãã
ã³ã³ãœãŒã«ãããç»é²æžã¿ã¯ã©ã¹ã®ç¶æ¿ããªãŒã«é¢ããæ å ±ã衚瀺ãããããªããžã§ã¯ããšã¯ã©ã¹ã®äž¡æ¹ã®æåååã䜿çšããŠã¯ã©ã¹ãªããžã§ã¯ããäœæããã³åé€ãããã§ããŸãã
å®è¡å¯èœãã¡ã€ã«ã«ã¢ã»ã³ãã«ãããŸããããã¯ãcpprtã©ã€ãã©ãªãšã¯ã©ã¹ã®ãã¹ãéå±€ã«äŸåããŸãããã®äŸã§ã¯ãã³ã³ãœãŒã«ãèŠãããšãã§ããŸãã
æ§é ã®æºåãã§ããŸããã CMakeã䜿çšããŠãããã®ã¢ãŒãã£ãã¡ã¯ããçµã¿ç«ãŠãããã®æ§æã説æãããäœããããŸãããããããŸããã
ïŒ11:30ïŒcpprtã©ã€ãã©ãªã®æ§ç¯

cpprtã©ã€ãã©ãªã«ã¯2ã€ã®ãã¡ã€ã«ããå«ãŸããŠããªãã£ããšããäºå®ã«ãããããããç§ã¯å°æ¥ã®äœæ¥ã«åãçµã¿ããã©ã«ããŒã«å«ãŸãããã¹ãŠã®ãã¡ã€ã«ãååž°çã«æ¥ç¶ããæ¹æ³ãããã«åŠã¶ããšã«ããŸããïŒããã«å€ãã®ãœãŒã¹ãã¹ã¯ãªã¹ãããŸããïŒã ç§ã¯ãããã°ãŒã°ã«ã§æ€çŽ¢ããGLOB_RECURSEåŒæ°ãæå®ããfileã³ãã³ãã®äœ¿çšã説æãããã®ãªã³ã¯ãèŠã€ããŸããã
å°ããªProject-OSRMãããžã§ã¯ãã® CMakeæ§æã ç°¡åã«èŠãŠãèŠã€ãã£ãæ å ±ã䜿çšããŠæ¬¡ã®æ§æã³ãŒããäœæããŸããã
CMakeLists.txt
èšå®ïŒCPPRT_ROOT_PATHïŒ
ïŒã©ã€ãã©ãªãœãŒã¹ã®ã«ãŒããã©ã«ããŒå€ãèšå®ããŸãã
èšå®ïŒCPPRT_SOURCES_PATH $ {CPPRT_ROOT_PATH} / srcïŒ
ïŒã©ã€ãã©ãªã€ã³ã¿ãŒãã§ã€ã¹ã®ã«ãŒããã©ã«ããŒå€ãèšå®ããŸãã
èšå®ïŒCPPRT_INCLUDE_PATH $ {CPPRT_ROOT_PATH} / includeïŒ
#
# . CPPRT_SOURCES
# .
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
# , .
# CPPRT_HEADERS.
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
# cpprt.
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
ïŒsetã³ãã³ãã«é¢ããã³ã¡ã³ã
ã»ããã«é¢ããå
¬åŒããã¥ã¡ã³ã
ãã®ã³ãã³ãã¯ãå€æ°ã®å€ãèšå®ãŸãã¯åã€ã³ã¹ããŒã«ããããã®ãã®ã§ãã æåã®åŒæ°ã¯å€æ°ã®ååã§ãã 次ã«ããã®å€ãèšå®ãããŸãã ãã®å Žåããã¹ããããæž¡ããŸããããã¯ãéåžžã©ãããçŸåšã®ãã©ã«ããŒãã€ãŸãCMakeLists.txtãé 眮ãããŠãããã©ã«ããŒïŒãã®å Žåããªããžããªã®ã«ãŒãïŒãæå³ããŸãã
æ³šïŒ CMakeåŒã³åºãäžã«ã³ãã³ãã©ã€ã³ããå€æ°ãæž¡ãããšã¯å¯èœã§ããïŒ CACHEãã¹ã§å€æ°ãèšå®ãããšå¯èœã§ãïŒã¹ã¿ãã¯ãªãŒããŒãããŒã«ã€ããŠã®çãã¯æ¬¡ã®ãšããã§ãïŒã é¢åã«èŠããŸã-ãããã£ãŠãç§ã®æèŠã§ã¯ãã³ãã³ãã©ã€ã³ãããªãã·ã§ã³ã³ãã³ããä»ããŠãã©ã°ãæž¡ãæ¹ãè¯ãã§ãïŒè©³çŽ°ã¯åŸã§èª¬æããŸãïŒã
ãã®ã³ãã³ãã¯ãå€æ°ã®å€ãèšå®ãŸãã¯åã€ã³ã¹ããŒã«ããããã®ãã®ã§ãã æåã®åŒæ°ã¯å€æ°ã®ååã§ãã 次ã«ããã®å€ãèšå®ãããŸãã ãã®å Žåããã¹ããããæž¡ããŸããããã¯ãéåžžã©ãããçŸåšã®ãã©ã«ããŒãã€ãŸãCMakeLists.txtãé 眮ãããŠãããã©ã«ããŒïŒãã®å Žåããªããžããªã®ã«ãŒãïŒãæå³ããŸãã
æ³šïŒ CMakeåŒã³åºãäžã«ã³ãã³ãã©ã€ã³ããå€æ°ãæž¡ãããšã¯å¯èœã§ããïŒ CACHEãã¹ã§å€æ°ãèšå®ãããšå¯èœã§ãïŒã¹ã¿ãã¯ãªãŒããŒãããŒã«ã€ããŠã®çãã¯æ¬¡ã®ãšããã§ãïŒã é¢åã«èŠããŸã-ãããã£ãŠãç§ã®æèŠã§ã¯ãã³ãã³ãã©ã€ã³ãããªãã·ã§ã³ã³ãã³ããä»ããŠãã©ã°ãæž¡ãæ¹ãè¯ãã§ãïŒè©³çŽ°ã¯åŸã§èª¬æããŸãïŒã
èšå®ïŒCPPRT_ROOT_PATHïŒ
ïŒã©ã€ãã©ãªãœãŒã¹ã®ã«ãŒããã©ã«ããŒå€ãèšå®ããŸãã
ïŒå€æ°åç
§ã«ã€ããŠ
å€æ°åç
§æ§æã«é¢ããå
¬åŒããã¥ã¡ã³ã
CMakeã¯ãå€æ°å€ã«ã¢ã¯ã»ã¹ããããã«å ±éã®ã¡ã«ããºã ã䜿çšããŸãã ããã¯ã§è¿°ã¹ãããã«ãCMakeã¯å€æ°ã®åç §ãèšè¿°ãããŠããå Žæã§å€æ°ã®å€ãçŽæ¥çœ®ãæããŸãïŒãŸãã¯åãååã®å€æ°ãå®çŸ©ãããŠããªãå Žåã¯ç©ºã®æååãæ¿å ¥ããŸãïŒã ãã®ãããããã¹ãå€æ°ïŒ Quoted Argument ïŒããã³å€æ°ãžã®ä»ã®åç §ã§ãåæ§ã®æ¿å ¥ã䜿çšã§ããŸãã ããã¯ããã®äŸïŒ
$ {outer _ $ {inner_variable} _variable}
ç§ãç解ããŠããããã«ãããã§å€æ°inner_variableã®å€ã¯å¥ã®å€æ°ã®ååã®äžéšã§ãã åã ãã®å¥è·¡ã
CMakeã¯ãå€æ°å€ã«ã¢ã¯ã»ã¹ããããã«å ±éã®ã¡ã«ããºã ã䜿çšããŸãã ããã¯ã§è¿°ã¹ãããã«ãCMakeã¯å€æ°ã®åç §ãèšè¿°ãããŠããå Žæã§å€æ°ã®å€ãçŽæ¥çœ®ãæããŸãïŒãŸãã¯åãååã®å€æ°ãå®çŸ©ãããŠããªãå Žåã¯ç©ºã®æååãæ¿å ¥ããŸãïŒã ãã®ãããããã¹ãå€æ°ïŒ Quoted Argument ïŒããã³å€æ°ãžã®ä»ã®åç §ã§ãåæ§ã®æ¿å ¥ã䜿çšã§ããŸãã ããã¯ããã®äŸïŒ
$ {outer _ $ {inner_variable} _variable}
ç§ãç解ããŠããããã«ãããã§å€æ°inner_variableã®å€ã¯å¥ã®å€æ°ã®ååã®äžéšã§ãã åã ãã®å¥è·¡ã
èšå®ïŒCPPRT_SOURCES_PATH $ {CPPRT_ROOT_PATH} / srcïŒ
ïŒã©ã€ãã©ãªã€ã³ã¿ãŒãã§ã€ã¹ã®ã«ãŒããã©ã«ããŒå€ãèšå®ããŸãã
èšå®ïŒCPPRT_INCLUDE_PATH $ {CPPRT_ROOT_PATH} / includeïŒ
ïŒãã¡ã€ã«ã³ãã³ãã«é¢ããã³ã¡ã³ã
fileã³ãã³ãã®å
¬åŒããã¥ã¡ã³ã
GLOB_RECURSEåŒæ°ãæå®ããfileã³ãã³ãã®äœ¿çšã«ã€ããŠã®ã¿èª¬æããŸãã ãã®ãããªã³ãã³ãã¯ãã³ãã³ãåŒã³åºãã§æå®ãããæ€çŽ¢ã«ãŒã«ã«åŸããã¡ã€ã«ããã³ãã©ã«ããŒãã¹ã®ååž°æ€çŽ¢ãå®è¡ããŸãã ã«ãŒã«ã¯ãèŠã€ãã£ããã¹ã®ãªã¹ããæžã蟌ãŸããå€æ°ã®ååã«ç¶ãåŒæ°ã«ãã£ãŠæå®ãããŸãã
, â , . , , , , (, ).
file GLOB_RECURSE, GLOB. , .
â1: , CMake . file GLOB_RECURSE (, , ) . ( ).
â2: , CMake file GLOB, file GLOB_RECURSE. . ( IDE) CMake / .
, â .
GLOB_RECURSEåŒæ°ãæå®ããfileã³ãã³ãã®äœ¿çšã«ã€ããŠã®ã¿èª¬æããŸãã ãã®ãããªã³ãã³ãã¯ãã³ãã³ãåŒã³åºãã§æå®ãããæ€çŽ¢ã«ãŒã«ã«åŸããã¡ã€ã«ããã³ãã©ã«ããŒãã¹ã®ååž°æ€çŽ¢ãå®è¡ããŸãã ã«ãŒã«ã¯ãèŠã€ãã£ããã¹ã®ãªã¹ããæžã蟌ãŸããå€æ°ã®ååã«ç¶ãåŒæ°ã«ãã£ãŠæå®ãããŸãã
, â , . , , , , (, ).
file GLOB_RECURSE, GLOB. , .
â1: , CMake . file GLOB_RECURSE (, , ) . ( ).
â2: , CMake file GLOB, file GLOB_RECURSE. . ( IDE) CMake / .
file GLOB
, , , CMake ( IDE) () CMakeLists.txt, . â CMakeLists.txt.
, , CMake file GLOB GLOB_RECURSE. , CMakeLists.txt () . äžäŸ¿ã
, , CMake file GLOB GLOB_RECURSE. , CMakeLists.txt () . äžäŸ¿ã
, â .
#
# . CPPRT_SOURCES
# .
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
# , .
# CPPRT_HEADERS.
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
# add_library
# cpprt.
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
ãã¡ã€ã«ã®æºåãæŽã£ããã/ buildãã©ã«ããŒã«ç§»åããŠæ§æãã¡ã€ã«ãåéããŸãããcmake-G
â Visual Studio 14 2015â ../
ãã¹ãŠãããã«çµ±åãããŸãããcpprt.vcxprojãããžã§ã¯ãã§è§£æ±ºçããããŸããããœãªã¥ãŒã·ã§ã³ãéããã¹ã¿ãžãªãä»ããŠã¢ã»ã³ããªãéå§ããŸãã...ã¯ããã©ã€ãã©ãªã¯åé¡ãªãçµã¿ç«ãŠãããŸããã
ããã¯12:41ã«çºçãããã®ã§ãFacebookãªã³ã¯ãéããæéã«åºã¥ããŠèª¬æã§ããŸãã
Facebookã®åŸãäžæçã«ä»ã®ã¿ã¹ã¯ã«åãæ¿ããŸããã
ïŒ16:09ïŒsimple_examplesãµã³ãã«ã®ã¢ã»ã³ãã«
2æéååŸã«cmakeã®æ§æã«æ»ããŸãããããã§ãã©ã€ãã©ãªã®ãµã³ãã«ãäœæããããã«ãæ§æã®çæãå¯èœã«ããå¿ èŠããããŸããããããè¡ãã«ã¯ããããžã§ã¯ãéã®äŸåé¢ä¿ã®æŽçã«å¯ŸåŠããå¿ èŠããããŸãã-çµå±ãsimple_examplesãããžã§ã¯ãã¯cpprtã©ã€ãã©ãªã«éçã«ãªã³ã¯ãããŸããïŒ

éçã©ã€ãã©ãªããªã³ã¯ããã³ãã³ãã¯ãããŒããŒã®CMakeã¬ãã¹ã³ã§èšåãããŸããïŒ2çªç®ã®äŸïŒããããã®ã¬ãã¹ã³ãšä»ã®ããã€ãã®ãœãŒã¹ãèªãã åŸã次ã®æ§æã³ãŒããäœæããŸããã
CMakeLists.txt
#===============================================================
# Head
ïŒ
cmake_minimum_required(VERSION 2.8.8)
# , ,
#
option(BUILD_EXAMPLES «Build cpprt examples» OFF)
#-----------------------------------------------------------------------------------------------
# cpprt. .
project(cpprt_projects)
set(CPPRT_ROOT_PATH .)
set(CPPRT_SOURCES_PATH ${CPPRT_ROOT_PATH}/src)
set(CPPRT_INCLUDE_PATH ${CPPRT_ROOT_PATH}/include)
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
#-----------------------------------------------------------------------------------------------
###- Examples
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
# BUILD_EXAMPLES
# ON â .
if(BUILD_EXAMPLES)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - -
### â Simple examples
# .
set(SIMPLE_EXAMPLE_ROOT ${CPPRT_ROOT_PATH}/examples/simple_examples)
# .
# .
add_executable(simple_examples
${SIMPLE_EXAMPLE_ROOT}/SimpleExamples.cpp
${CPPRT_SOURCES}
ïŒ
target_link_libraries(simple_examples cpprt)
endif(BUILD_EXAMPLES)
#========================================================
# Head
ïŒ
cmake_minimum_required(VERSION 2.8.8)
# option
option
-.
â , .
â , . , - CMakeLists.txt , , CMake , .
â . .
, ( cmake -G .. ) ( ). :
-D< >=ON/OFF
: set , CACHE-. , , option .
-.
â , .
â , . , - CMakeLists.txt , , CMake , .
â . .
, ( cmake -G .. ) ( ). :
-D< >=ON/OFF
: set , CACHE-. , , option .
# , ,
#
option(BUILD_EXAMPLES «Build cpprt examples» OFF)
#-----------------------------------------------------------------------------------------------
# cpprt. .
project(cpprt_projects)
set(CPPRT_ROOT_PATH .)
set(CPPRT_SOURCES_PATH ${CPPRT_ROOT_PATH}/src)
set(CPPRT_INCLUDE_PATH ${CPPRT_ROOT_PATH}/include)
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
#-----------------------------------------------------------------------------------------------
###- Examples
ïŒ
# include_directories
include_directories
( inlcude paths) CMakeLists.txt.
, â , . â , BEFORE AFTER .
: , . , , target_include_directories , . .
( inlcude paths) CMakeLists.txt.
, â , . â , BEFORE AFTER .
: , . , , target_include_directories , . .
include_directories(${CPPRT_INCLUDE_PATH})
# if
if
â . , .
: else() endif(), , ( : «Note that the expression in the else and endif clause is optional» ), , , , . , #endif .
â . , .
: else() endif(), , ( : «Note that the expression in the else and endif clause is optional» ), , , , . , #endif .
# BUILD_EXAMPLES
# ON â .
if(BUILD_EXAMPLES)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - -
### â Simple examples
# .
set(SIMPLE_EXAMPLE_ROOT ${CPPRT_ROOT_PATH}/examples/simple_examples)
# .
# .
add_executable(simple_examples
${SIMPLE_EXAMPLE_ROOT}/SimpleExamples.cpp
${CPPRT_SOURCES}
ïŒ
# target_link_libraries
target_link_libraries
. , , . . â target_link_libraries ( : «Repeated calls for the same {target} append items in the order called» ).
: , , CMake. . , .
. , , . . â target_link_libraries ( : «Repeated calls for the same {target} append items in the order called» ).
: , , CMake. . , .
target_link_libraries(simple_examples cpprt)
endif(BUILD_EXAMPLES)
#========================================================
CMakeã®èšå®ããã¹ã¿ãžãªãœãªã¥ãŒã·ã§ã³ãçæããããšããŸããããŸãããµã³ãã«ããã«ããããªãã·ã§ã³ãæž¡ãã次ã«ããã䜿çšããŸãããããšãã°ãã¹ã¿ãžãªçšã®ãœãªã¥ãŒã·ã§ã³ããµã³ãã«ãããžã§ã¯ããšãšãã«çæããã³ãã³ãã¯æ¬¡ã®
ãšãã
ã§ãããããžã§ã¯ãçšã«ã³ã³ãã€ã«ãããå®è¡å¯èœãã¡ã€ã«ããªãããšãééãã¯ãããŸããã§ããã
幞ããªããšã«ããã¹ãŠãéåžžã«ç°¡åã§ãã-ãµã³ãã«ãããžã§ã¯ããã¹ã¿ãŒãã¢ãããããžã§ã¯ããšããŠèšå®ããã®ãå¿ããŸããïŒã¢ã»ã³ããªåŸãCMakeã¯ããã©ã«ãã§BUILD_ALLãèšå®ãããã®äžã«å®è¡å¯èœãã¡ã€ã«ã¯åéãããŸããïŒããã¹ãŠãèšå®ããåŸããã¹ãçšã§ããã¯ãã®ãã¹ãŠãç»é¢ã«å°å·ãããŸããã
ããã¯ã17ïŒ14ãŸã§ã«å±¥æŽããå埩ã§ããããã«çºçããŸãã-FastDelegateãããžã§ã¯ããã©ãã ãéãããã§å€æããŸãïŒããã¯ãã³ãŒã«ããã¯ããã©ã¹ã§åŠçããããã®åªãããã€ã¯ãã©ã€ãã©ãªã§ãïŒãç§ã¯ãããç§ã®ã¡ã€ã³ãããžã§ã¯ãã«äœ¿çšããããã§ãã«ãã·ã¹ãã ãã©ã®ããã«äœãããããèŠãããšæããŸãããããã¯äœããªãããšãå€æãã...ããããããã¯å¯èœã§ãããæ£ããã
ïŒ17:14ïŒã³ã³ãœãŒã«ãµã³ãã«ããŒã«ã®ã¢ã»ã³ãã«
ã³ã³ãœãŒã«ãçµã¿ç«ãŠãããã«æ®ã£ããååãšããŠããã®ã¢ã»ã³ããªã«å¿ èŠãªãã¹ãŠã®ã³ãã³ããæ¢ã«ç¥ã£ãŠããŸããããããžã§ã¯ãæ§é ãæãåºããŠãã ããïŒ

ã³ã³ãœãŒã«ã¯ãã¹ãã¯ã©ã¹éå±€ã§ã¢ã»ã³ãã«ã§ããŸããããã§ããã¯ã©ã¹éå±€ã䜿çšããããšããæŠå¿µã¯ãã³ã³ãœãŒã«ã®çµã¿ç«ãŠå ã®ãœãŒã¹ã®ãªã¹ãã«repository / examples / __ example_hierarchies__ã®ãœãŒã¹ãå«ããããšãæå³ããŸãïŒããããŒæ€çŽ¢ãã¹ãšããŠã§ã¯ãªããåã«å¥ã®ãœãŒã¹ãœãŒã¹ãšããŠïŒã
ã³ã³ãœãŒã«ã¢ã»ã³ããªã®èª¬æãå«ãæ§æãã³ãŒããè©°ãŸãããªãããã«äŸãæ§ç¯ããããã«ãäžèšã®æ§æãªãã§æ§æã䜿çšããŸãã
CMakeLists.txt
#==========================================================
# Head
ïŒ
cmake_minimum_required(VERSION 2.8.8)
# -
# console :
# .
option(BUILD_TOOLS «Build cpprt tools» OFF)
#
#
option(CONSOLE_WITH_EXAMPLE «Add examples to console» ON)
#-----------------------------------------------------------------------------------------------
### â cpprt code
ïŒ
project(cpprt_projects)
set(CPPRT_ROOT_PATH .)
set(CPPRT_SOURCES_PATH ${CPPRT_ROOT_PATH}/src)
set(CPPRT_INCLUDE_PATH ${CPPRT_ROOT_PATH}/include)
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - -
# ,
# __example_hierarchies__. , , .
set(EXAMPLE_HIERARCHIES_ROOT
${CPPRT_ROOT_PATH}/examples/__example_hierarchies__
ïŒ
file(GLOB_RECURSE EXAMPLE_HIERARCHY_PATHES
${EXAMPLE_HIERARCHIES_ROOT}/*.h
${EXAMPLE_HIERARCHIES_ROOT}/*.cpp
ïŒ
#-----------------------------------------------------------------------------------------------
###
if(BUILD_TOOLS)
# â ,
# .
set(TOOLS_ROOT ${CPPRT_ROOT_PATH}/tools)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - -
#
set(CONSOLE_ROOT ${TOOLS_ROOT}/console)
# , :
if (CONSOLE_WITH_EXAMPLE)
#
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
${EXAMPLE_HIERARCHY_PATHES}
ïŒ
# â
# (include path).
#
# ,
# , target_include_directories
# ( , )
target_include_directories(cpprt
PUBLIC
${EXAMPLE_HIERARCHIES_ROOT}
ïŒ
# cpprt
target_link_libraries(cpprt_console cpprt)
else(CONSOLE_WITH_EXAMPLE)
# -
# simple_example
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
ïŒ
target_link_libraries(cpprt_console cpprt)
endif(CONSOLE_WITH_EXAMPLE)
endif(BUILD_TOOLS)
# Head
ïŒ
cmake_minimum_required(VERSION 2.8.8)
# -
# console :
# .
option(BUILD_TOOLS «Build cpprt tools» OFF)
#
#
option(CONSOLE_WITH_EXAMPLE «Add examples to console» ON)
#-----------------------------------------------------------------------------------------------
### â cpprt code
ïŒ
project(cpprt_projects)
set(CPPRT_ROOT_PATH .)
set(CPPRT_SOURCES_PATH ${CPPRT_ROOT_PATH}/src)
set(CPPRT_INCLUDE_PATH ${CPPRT_ROOT_PATH}/include)
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - -
# ,
# __example_hierarchies__. , , .
set(EXAMPLE_HIERARCHIES_ROOT
${CPPRT_ROOT_PATH}/examples/__example_hierarchies__
ïŒ
file(GLOB_RECURSE EXAMPLE_HIERARCHY_PATHES
${EXAMPLE_HIERARCHIES_ROOT}/*.h
${EXAMPLE_HIERARCHIES_ROOT}/*.cpp
ïŒ
#-----------------------------------------------------------------------------------------------
###
if(BUILD_TOOLS)
# â ,
# .
set(TOOLS_ROOT ${CPPRT_ROOT_PATH}/tools)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - -
#
set(CONSOLE_ROOT ${TOOLS_ROOT}/console)
# , :
if (CONSOLE_WITH_EXAMPLE)
#
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
${EXAMPLE_HIERARCHY_PATHES}
ïŒ
# â
# (include path).
#
# ,
# , target_include_directories
# ( , )
target_include_directories(cpprt
PUBLIC
${EXAMPLE_HIERARCHIES_ROOT}
ïŒ
# cpprt
target_link_libraries(cpprt_console cpprt)
else(CONSOLE_WITH_EXAMPLE)
# -
# simple_example
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
ïŒ
target_link_libraries(cpprt_console cpprt)
endif(CONSOLE_WITH_EXAMPLE)
endif(BUILD_TOOLS)
ã³ã³ãœãŒã«ã¯ããã«éãŸã£ãŠç²åŸããŸããããã¹ãŠæºåãæŽããŸããã
ãã®æãŸã§ã«ïŒ19:23ïŒ-ç§ã¯ã°ãŒã°ã«ã§ããã³ããã£ãŒããªã ããããšå€æããã
ãã¹ãŠã®äœæ¥ã®çµæïŒçŸåšãããžã§ã¯ãã§äœ¿çšãããŠãããããªæ§æïŒ
CMakeLists.txt
#============================================================
# Head
ïŒ
cmake_minimum_required(VERSION 2.8.8)
option(BUILD_ALL «Build cpprt tools» OFF)
# . .
#
# .
#
# ,
# .
option(BUILD_TOOLS «Build cpprt tools» ${BUILD_ALL})
option(CONSOLE_WITH_EXAMPLE «Add examples to console» ON)
option(BUILD_EXAMPLES «Build cpprt examples» ${BUILD_ALL})
#-----------------------------------------------------------------------------------------------
### â cpprt code
ïŒ
project(cpprt_projects)
set(CPPRT_ROOT_PATH .)
set(CPPRT_SOURCES_PATH ${CPPRT_ROOT_PATH}/src)
set(CPPRT_INCLUDE_PATH ${CPPRT_ROOT_PATH}/include)
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â # Global examples setup
ïŒ
set(EXAMPLE_HIERARCHIES_ROOT ${CPPRT_ROOT_PATH}/examples/__example_hierarchies__)
file(GLOB_RECURSE EXAMPLE_HIERARCHY_PATHES
${EXAMPLE_HIERARCHIES_ROOT}/*.h
${EXAMPLE_HIERARCHIES_ROOT}/*.cpp
ïŒ
#-----------------------------------------------------------------------------------------------
### â Tools
ïŒ
if(BUILD_TOOLS)
set(TOOLS_ROOT ${CPPRT_ROOT_PATH}/tools)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â ### â Console project
set(CONSOLE_ROOT ${TOOLS_ROOT}/console)
if (CONSOLE_WITH_EXAMPLE)
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
${EXAMPLE_HIERARCHY_PATHES}
ïŒ
target_include_directories(cpprt_console
PUBLIC
${EXAMPLE_HIERARCHIES_ROOT}
ïŒ
target_link_libraries(cpprt_console cpprt)
else(CONSOLE_WITH_EXAMPLE)
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
ïŒ
target_link_libraries(cpprt_console cpprt)
endif(CONSOLE_WITH_EXAMPLE)
endif(BUILD_TOOLS)
#-----------------------------------------------------------------------------------------------
###- Examples
ïŒ
if(BUILD_EXAMPLES)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â ### â Simple examples
set(SIMPLE_EXAMPLE_ROOT examples/simple_examples)
include_directories(${CPPRT_INCLUDE_PATH})
add_executable(simple_examples
${SIMPLE_EXAMPLE_ROOT}/SimpleExamples.cpp
${CPPRT_SOURCES}
ïŒ
target_link_libraries(simple_examples cpprt)
endif(BUILD_EXAMPLES)
#============================================================
# Head
ïŒ
cmake_minimum_required(VERSION 2.8.8)
option(BUILD_ALL «Build cpprt tools» OFF)
# . .
#
# .
#
# ,
# .
option(BUILD_TOOLS «Build cpprt tools» ${BUILD_ALL})
option(CONSOLE_WITH_EXAMPLE «Add examples to console» ON)
option(BUILD_EXAMPLES «Build cpprt examples» ${BUILD_ALL})
#-----------------------------------------------------------------------------------------------
### â cpprt code
ïŒ
project(cpprt_projects)
set(CPPRT_ROOT_PATH .)
set(CPPRT_SOURCES_PATH ${CPPRT_ROOT_PATH}/src)
set(CPPRT_INCLUDE_PATH ${CPPRT_ROOT_PATH}/include)
file(GLOB_RECURSE CPPRT_SOURCES
${CPPRT_SOURCES_PATH}/*.h
${CPPRT_SOURCES_PATH}/*.cpp
ïŒ
file(GLOB_RECURSE CPPRT_HEADERS
${CPPRT_INCLUDE_PATH}/*.h
ïŒ
include_directories(${CPPRT_INCLUDE_PATH})
add_library(cpprt STATIC ${CPPRT_SOURCES} ${CPPRT_HEADERS})
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â # Global examples setup
ïŒ
set(EXAMPLE_HIERARCHIES_ROOT ${CPPRT_ROOT_PATH}/examples/__example_hierarchies__)
file(GLOB_RECURSE EXAMPLE_HIERARCHY_PATHES
${EXAMPLE_HIERARCHIES_ROOT}/*.h
${EXAMPLE_HIERARCHIES_ROOT}/*.cpp
ïŒ
#-----------------------------------------------------------------------------------------------
### â Tools
ïŒ
if(BUILD_TOOLS)
set(TOOLS_ROOT ${CPPRT_ROOT_PATH}/tools)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â ### â Console project
set(CONSOLE_ROOT ${TOOLS_ROOT}/console)
if (CONSOLE_WITH_EXAMPLE)
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
${EXAMPLE_HIERARCHY_PATHES}
ïŒ
target_include_directories(cpprt_console
PUBLIC
${EXAMPLE_HIERARCHIES_ROOT}
ïŒ
target_link_libraries(cpprt_console cpprt)
else(CONSOLE_WITH_EXAMPLE)
add_executable(cpprt_console
${CONSOLE_ROOT}/CPPRTConsole.cpp
ïŒ
target_link_libraries(cpprt_console cpprt)
endif(CONSOLE_WITH_EXAMPLE)
endif(BUILD_TOOLS)
#-----------------------------------------------------------------------------------------------
###- Examples
ïŒ
if(BUILD_EXAMPLES)
#- â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â - â ### â Simple examples
set(SIMPLE_EXAMPLE_ROOT examples/simple_examples)
include_directories(${CPPRT_INCLUDE_PATH})
add_executable(simple_examples
${SIMPLE_EXAMPLE_ROOT}/SimpleExamples.cpp
${CPPRT_SOURCES}
ïŒ
target_link_libraries(simple_examples cpprt)
endif(BUILD_EXAMPLES)
#============================================================
ãããã£ãŠãCMakeãŠãŒãã£ãªãã£ã䜿çšããŠãåºæ¬çãªã¬ãã«ã®å®çšçãªã¬ãã«ã®çŽç²ãªæéã4æéã§ç°¡åã«ããããŠäœãããã«èŠã€ããŸãããç§ã®æèŠã§ã¯ãCMakeã®åŒ·åãªç¥èã身ã«ä»ããããšã¯4æéã®äŸ¡å€ããããŸãã
çµè«ãšããŠãCMakeïŒ
ç§ãæ°ã«å ¥ã£ããã®ïŒ
匷åãªãŠãŒãã£ãªãã£ã«ã€ããŠã話ããŸããããã¯ãå€ãã®ãã©ãããã©ãŒã ãšã³ã³ãã€ã©ãŒã®ããã®æ§æã§èžæ°ãçºããå¿ èŠãæ¬åœã«åãé€ããŸããã¹ã¿ãžãªã®åŸã«ãCMakeã§mingw32-make + Eclipse IDEã®ã¡ã€ã¯ãã¡ã€ã«ãçæãã以åã®Visual Studioã§è¡ã£ãã®ãšåããããç°¡åã«ãœãŒã¹ãçµã¿ç«ãŠããšãã«ããããæããŸããã
æ°ã«å ¥ããªãã£ãç¹ïŒ
éåžžã«å¥åŠãªèšèªèšèšãåºåãæåãšããŠç©ºçœã䜿çšããåŒæ°ãååä»ãåŒæ°ã䜿çšããå¥åŠãªåçããããžã§ã¯ãããããã£ãšã¢ã»ã³ããªç®æšãèšå®ããããã®ééçãªã¡ã«ããºã ã§ã¯ãªãïŒããããã£ã¯ãã¹ãŠã®ã¢ã»ã³ããªç®æšã«å¯ŸããŠã°ããŒãã«ã«èšå®ãããå ŽåããããŸãããç¹å®ã®ç®æšã«å¯ŸããŠããŒã«ã«ã«èšå®ãããããšããããŸãïŒå®éããã¹ãŠã®æäœããã¡ã€ã«ã·ã¹ãã ãšçµã¿åãããç¹å®ã®æäœã¯ã³ãã³ãåŒæ°ã䜿çšããŠéä¿¡ãããŸãïŒã
ããç¬éããšã€ãªã¢ã³ã¯CMakeã®èšèªãæžããããã«æããŸããããšãŠãè³¢ãã§ãããå°ãéã£ãèãæ¹ãããŠããŸãã
5.ããã¥ã¡ã³ãã«ã€ããŠ

ããã«èšããªããã°ãªããªã-ç§ã¯cpprtã©ã€ãã©ãªã®è±èªã®ããã¥ã¡ã³ããç·šéããåæ°ãæã£ãŠããŸããã§ãããçŸåšããã¹ãŠã®ããã¥ã¡ã³ãã¯ããã®äžé£ã®èšäºãèªãã ãã§éä¿¡ãããŸããããã¯ãããããããã¥ã¡ã³ãããªãããšãæå³ããŸãã4é±éã®ãã©ãœã³ã®åŸãäžæ¯ã€ãããããã«ãã®æ¬ é¥ãä¿®æ£ããããšããŸãããã®çµæããã®ã·ãªãŒãºã®èšäºãå·çãããŸããã
å®éã«ã¯ããã¥ã¡ã³ããäœæããªãã£ããšããäºå®ã«ãããããããããã¥ã¡ã³ããäœæããããã®æè¯ã®åºç€ãšãªããã®ã«ã€ããŠçè«çãªç 究ãè¡ããŸãããããã§èŠã€ããæ å ±ãæäŸããŸããæ å ±ã¯äž»ã«ãã®èšäºãšãã®ã³ã¡ã³ãããååŸãããŸããã
Wiki
Googleããã¥ã¡ã³ã
.
:
â .
â , , .
â ( ).
â .
â ( ).
â doc, pdf html.
çæïŒ
â goolge. sistemshik : « google».
â . , , . googledocs?
:
â .
â , , .
â ( ).
â .
â ( ).
â doc, pdf html.
çæïŒ
â goolge. sistemshik : « google».
â . , , . googledocs?
é
žçŽ
å¹³æ
ã¯ã â , .
: « . <...> . , plaintext. ». , Plain text .
:
â , . â .
â .
çæïŒ
â . Plain text , , .
â .
: « . <...> . , plaintext. ». , Plain text .
:
â , . â .
â .
çæïŒ
â . Plain text , , .
â .
ãããããåç¥ã®ããã«ããã®ãããªãªãŒãã³ãœãŒã¹ããã¥ã¡ã³ãã®ãããã¯ãžã®æåã®çŽ¹ä»ã®åŸãDoxygenã¯ãããŸã§ã®ãšãããæ°ã«å ¥ãã§ããããšãå€æããŸãããããã¯ãããããç§ãã³ãŒããæžãã®ã奜ãã§ãããããçš®é¡ã®éå±ãªããã¥ã¡ã³ãã«ç®ãéãããšã奜ãŸãªãããã°ã©ããŒã§ãããšããäºå®ã«ãããã®ã§ãã
ããã«ãããããããç§ã«ãšã£ãŠã¯ãè¯ãããã¥ã¡ã³ãã¯Doxygenã ãã§ã¯ã§ããŸãããããã¯ãAPIã«ç²Ÿéããå Žåã«ãã£ãŠã¯ããã€ãã®ç°¡åãªå³ã衚瀺ããããã®åªãããœãªã¥ãŒã·ã§ã³ã§ããããããå€ãã®å ŽåãUMLã®ã»ãã«å€§ãããŠè€éãªç»åãã€ã©ã¹ãã䜿çšããŠãã³ãŒãã®åäœã詳ãã説æãããã詳现ãªèšäºãå¿ èŠã§ãããšã«ãããããªãã¯èªåã§ãããªããã°ãªããªãã§ãããããã³ããœãŒã¹ã³ãŒãã«é¢ããã³ã¡ã³ãã ãã§ã¯ããŸããããŸããã
ããã¥ã¡ã³ãã«ã€ããŠã¯ãã以äžèšãããšã¯ãããŸãããæžã蟌ã¿-è£è¶³ã
6.å³æžé€šæ¯èã«ã€ããŠ

ããã§ã¯ããã®äžé£ã®èšäºãé€ããŠããŸã çµéšããããŸãããããã¯ãã©ã€ãã©ãªãä¿é²ããããã®å®éšçãªè©Šã¿ã§ããããªãã®çµéšã«ã€ããŠäººã ã«è©±ããŠãã ããããã®ã¢ãããŒããã©ãã»ã©åªããŠãããèŠãŠã¿ãŸãããã
ãã®åºçç©ããã³å³æžé€šèªäœã«å¯Ÿããèªè ã®è¯å®çãªåå¿ãããå Žåããã®ã·ãªãŒãºã®èšäºãè±èªã話ãèŽè¡ã«åãããŠãã©ããã«å ¬éããããšããŸãïŒredditãããããšã¯ç¥ã£ãŠããŸã...誰ããè¯ããªãœãŒã¹ãç¥ã£ãŠãããããããŸããïŒïŒãããŠãæã ã¯è¡šç€ºãããŸã...
ããã¢ãŒã·ã§ã³ã«ã€ããŠã¯ãä»ã®ãšããããããããç§ã¯ãã以äžèšãããšã¯ãããŸããã
7.çµè«
ç§ã®ç 究ãéã¡ããããŠæãéèŠãªããšãšããŠãä»ã®äººã ã®çŽ æŽãããã³ã¡ã³ããšåœŒãã®ãããã§ãªãããå€æŽããèªè ã®çãããç§ãããæ©ããã®éãé²ãããšãé¡ã£ãŠããŸãã
éåçãªåµé æ§ã®ã¢ã€ãã¢
, .