Ctags: Windows์šฉ ํŒจํ‚ค์ง€

์— ๋งŒ๋“  2015๋…„ 11์›” 06์ผ  ยท  13์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: universal-ctags/ctags

Universal Ctags๊ฐ€ ์ง„์ •์œผ๋กœ ๋ณดํŽธ์ ์ด๋ ค๋ฉด Windows ๋นŒ๋“œ๋„ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Appveyor๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋œ ์•ผ๊ฐ„/ํƒœ๊ทธ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ๋ฅผ ๋นŒ๋“œ ํŠธ๋ฆฌ๊ฑฐ๋กœ ์ง€์›ํ•œ๋‹ค๊ณ  _์ƒ๊ฐ_ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ctag๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์— ํŒจํ‚ค์ง•ํ•˜๊ณ  ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ Github ๋ฆด๋ฆฌ์Šค์— ์—…๋กœ๋“œํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜๋Š” Windows์šฉ Homebrew์™€ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ทธ์œˆ, ์•„๋งˆ๋„? ์—ฌ๊ธฐ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://cygwin.com/faq.html#faq.programming.packages

์ž‘์—…ํ•  Windows ์ƒ์ž๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Packaging Windows

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์ดˆ์ฝœ๋ฆฟ ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  13 ๋Œ“๊ธ€

์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ctags๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ด๋ฏ€๋กœ exe๊ฐ€ ํฌํ•จ๋œ ๊ฐ„๋‹จํ•œ .zip, ๋ชจ๋“  ์ ์ ˆํ•œ ๋ฌธ์„œ ๋ฐ ๋ผ์ด์„ผ์Šค ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ readme์™€ ์œ ์‚ฌํ•œ ๋ฌธ์„œ๋กœ ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ appveyor๋Š” ๊ทธ๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹œ๋„ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ctags(๊ต์ฐจ)๋Š” Linux์—์„œ ์ž˜ ๋นŒ๋“œ๋˜๋ฏ€๋กœ travis๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํŠนํžˆ ๋ฆด๋ฆฌ์Šค์šฉ์œผ๋กœ ์ด๋Ÿฌํ•œ zip๋„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ผ๊ฐ„ ๋นŒ๋“œ๋ฅผ ์›ํ•˜๋ฉด ํ•ด๋‹น ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Cygwin์€ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. Cygwin์—๋Š” ์ž์ฒด ํŒจํ‚ค์ง• ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ctags ํŒจํ‚ค์ง€์˜ ํ˜„์žฌ ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฒ”์šฉ์œผ๋กœ ์ „ํ™˜ํ•˜๋„๋ก ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ํŒจํ‚ค์ง€๋ฅผ ์ธ์ˆ˜ํ•˜๋„๋ก ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ €๋Š” Cygwin "์ข…๋ฃŒ" ํŒจํ‚ค์ง€์˜ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค). ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€๊ฐ€ ๋ฐ›์•„๋“ค์—ฌ์ง€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฃผ์š” Linux ๋ฐฐํฌํŒ ์ค‘ ํ•˜๋‚˜๋ผ๋„ universal-ctags ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋ฉด ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์•„, ์ข‹์Šต๋‹ˆ๋‹ค. ๊ต์ฐจ ์ปดํŒŒ์ผ์ด ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ์ƒˆ ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ Travis์—์„œ Windows ๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ํ™”๋Š” :+1์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” Universal Ctags๋ฅผ cygwin์— ๋„ฃ๋Š” ๊ฒƒ์„ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ๋ฐ›์•„๋“ค์ผ ์˜ํ–ฅ์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ Linux ๋ฐฐํฌํŒ์šฉ ํŒจํ‚ค์ง€๋ฅผ ๋ณด์œ ํ•˜๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ์ถ”์ง„๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‹จ์ง€ ์šฐ๋ฆฌ๊ฐ€ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ œ๊ฐ€ ์•„๋Š” ๊ฒƒ์€ Debian, Gentoo, Arch์ž…๋‹ˆ๋‹ค. RPM์„ ํŒจํ‚ค์ง•ํ•˜์—ฌ RHEL/Fedora/OpenSuse ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋„ฃ์„ ์‚ฌ๋žŒ๋“ค์„ ์—ฌ์ „ํžˆ ์ถ”์ ํ•ด์•ผ ํ•˜์ง€๋งŒ 1.0.0 ๋ฆด๋ฆฌ์Šค ์ „์— ํ™•์ธํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชฉํ‘œ๋Š” Universal Ctags๋ฅผ ํŒจํ‚ค์ง€ํ™”ํ•˜์—ฌ ์ถœ์‹œ์ผ์— ์›ํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ฆ‰์‹œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๊ทธ ๋‚ ์งœ ์ „์— Linux, Mac ๋ฐ Windows ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ž์œผ๋กœ๋„ ๊ณ„์† ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@ffes ๋ฐ @k-takata, bash๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ(ctagst)๋ฅผ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ๋„์ž…ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.
#614 ์ฐธ์กฐ. ctagst๋Š” something.ctags๋ฅผ something.c๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋ฉ๋‹ˆ๊นŒ?
์ด๊ฒƒ์ด ํฐ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•œ๋‹ค๋ฉด, ๋‚˜๋Š” ๋ฌด์–ธ๊ฐ€.ctags๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ฌด์–ธ๊ฐ€.ctags์™€ ์ƒ์„ฑ๋œ something.c๋ฅผ git ์ €์žฅ์†Œ์— ๋ชจ๋‘ ์ปค๋ฐ‹ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@cweagans , Fedora์— ๋Œ€ํ•ด ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ํ’๋ถ€ํ•œ ctags์˜ Fedora/RHEL ํŒจํ‚ค์ง€ ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์—ฐ๋ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์†Œ์Šค ํƒ€๋ฅด ๋ณผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@masatake C์— ๋Œ€ํ•œ ์ง€์‹์ด ํ•„์š”ํ•œ ๋ฌธ์ œ์— ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ffes ๋ฐ @k-takata, bash๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ(ctagst)๋ฅผ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ๋„์ž…ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ MSVC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Windows์—์„œ bash๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ์‰ฝ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (Python์ด๋‚˜ Perl์€ ๋‹ค์†Œ ์‰ฝ์Šต๋‹ˆ๋‹ค.)

@k-takata, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ 64๋น„ํŠธ ๋‹จ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ €์—๊ฒŒ ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ œ AppVeyor๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ž๋™ํ™”๋œ Windows๋Š” iconv, JSON, XML ๋ฐ YAML์„ ์ง€์›ํ•˜๋Š” ๋‹จ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
MSYS2๋Š” mingw-w64-{i686,x86_64}-universal-ctags-git ํŒจํ‚ค์ง€๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ msys/universal-ctags-git ํŒจํ‚ค์ง€๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)
Cygwin์€ ์•„์ง ๋ฒ”์šฉ ctag๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์ดˆ์ฝœ๋ฆฟ ์ž…๋‹ˆ๋‹ค.

cygwin ๊ฒฝ๋กœ์— ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

  • pkg-config
  • libiconv
  • libiconv-devel

autotools ๋กœ ์„ค์น˜ํ•˜๊ธฐ ์ „์— cygwin ์•„๋ž˜์— ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฐ€๋Šฅํ•œ dep์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@fommil : ์ผ์ผ ๋นŒ๋“œ๊ฐ€ ์—ฌ๊ธฐ์—์„œ ๋ฆด๋ฆฌ์Šค๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค: https://github.com/universal-ctags/ctags-win32/releases

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰