KDE, autotools를 버리고 CMake로 전향할듯...

권순선의 이미지

KDE에서 기존에 빌드 시스템으로 사용해 오던 autotools를 더이상 사용하지 않고 CMake로 전환할 것으로 보입니다. 빌드 과정에서 자동으로 생성해 내어야 했던 파일들이 많았는데 autotools를 사용하면서 이러한 자동 생성 파일들을 정확하게 처리하는 것이 까다로워서 심지어는 소스 상에서 디렉토리를 옮기는 것도 쉽지 않았다고 합니다.

그래서 autotools의 대안을 찾다가 정착한 것이 CMake라는군요. CMake는 http://cmake.org 에서 받으실 수 있습니다. BSD 스타일의 라이센스로 개발/배포되는 오픈소스 소프트웨어입니다. 소스 디렉토리에 CMakeLists.txt 라는 파일을 CMake 문법(?)에 맞게 작성하기만 하면 되기 때문에 기존에 이미 autotools 등의 다른 빌드 시스템을 사용하고 있는 중이라도 충돌이 일어나지 않는다고 합니다. 테스트해 보다가 필요하면 전환하면 되겠지요.

특히 리눅스 뿐만 아니라 윈도우즈, 매킨토시 등 다양한 플랫폼을 지원하는 크로스 빌드 시스템이기 때문에 멀티플랫폼을 지원하는 SW의 빌드시에 유용하게 활용될 것으로 생각됩니다. 혹 CMake라는 툴을 사용해 보신 분 있나요? 좀더 자세한 이야기는 아래를 참고하시기 바랍니다. 한번쯤 시간을 내어서 읽어볼만 합니다.

- http://dot.kde.org/1172083974/
- http://lwn.net/Articles/188693/

p.s. KDE가 CMake로 전환하는 과정에서 KDE 개발자들이 CMake의 버그도 많이 발견하고 좋은 요구사항들을 많이 도출하였고, 이를 CMake 개발자들의 적극적으로 받아들여 서로에게 유익한 결과가 나왔다고 하는군요.

댓글

익명입니다의 이미지

예전에 의료용 이미지 포맷인 DICOM 라이브러리, dcmtk를 포팅하는 일을 좀 했었었는데, 거기서 CMake를 사용하더군요.

segfault의 이미지

KDE가 빌드 시스템을 CMake로 전환한지는 상당히 오래 된 걸로 알고 있습니다. 작년 여름부턴가 KDE4 SVN trunk가 CMake 기반으로 바뀌었으니..
KDE SVN을 컴파일해보면서 가장 뚜렷하게 느낄 수 있었던 차이점은 컴파일 전 configure 단계가 상당히 간소화되었고 (1~2분 내에 완료됩니다) 현재 컴파일 상황이 퍼센트로 표시된다는 점입니다.
CMake가 멀티플랫폼이기 때문에 KDE 프로젝트에 큰 도움이 될 수 있을 듯 합니다. (KDE4부터는 Mac OS X와 윈도우를 공식적으로 지원합니다)
KDE가 빌드시스템을 CMake로 옮긴 건 잘 한 결정이라고 생각합니다. KDevelop이 CMake를 지원하게 되면 저도 제 프로젝트를 CMake 기반으로 옮길 계획입니다.

----
http://www.planetmono.org

권순선의 이미지

엄밀히 말하자면 CMake는 KDE4에서 적용하기 위해 작년 여름부터 노력이 진행되어 왔고, KDE4는 아직 안 나왔으니 KDE가 CMake로 이미 전환했다고 보기는 좀 어렵지 않을까요. :-) KDE3도 CMake로 전환되었던가요?

segfault의 이미지

아뇨. 적용되는건 KDE4부터인걸로 알고 있습니다.

----
http://www.planetmono.org

nahs777의 이미지

지금도 kde pim 이나 koffice는 윈도우로 있는걸로 아는데 윈도우를 공식적으로 지원하면 shell 자체를 kde식으로 바꾸는건가요?

segfault의 이미지

윈도 환경에서 KDE3은 현재 cygwin 위에서 작동하고 있습니다. kdelibs3을 win32로 포팅하는 프로젝트가 있긴 하지만 불완전한데다가 그걸 이용하여 성공적으로 빌드한 win32 어플리케이션은 kexi밖에 없는걸로 알고 있습니다. KDE4부터는 다른 외부 프로젝트 없이 자체적으로 win32를 지원하게 될 것 같습니다.

shell까지 덮어씌우는건지는 잘 모르겠지만 일단 KDE 어플리케이션을 윈도에서도 돌릴수 있게 된다는 점에 의미를 둬야 되겠습니다.

----
http://www.planetmono.org

환상경의 이미지

아마록의 윈도우 버전이 나올수도 있게 되는건가요? ^^;;
만일 그렇게 된다면 리눅스 / 윈도우 모든 OS에서 아마록이 제 멀티미디어 사운드 재생기 자리를 독차지 하게 되겠군요 ^^;;

젠투여 영원하라......~! http://blog.naver.com/khmirage.do http://khmirage.tistory.com/

==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/

segfault의 이미지

얼마 전에 KDE4 기반의 Amarok 2.0의 개발이 시작되었는데, 이게 맥 위에서 돌아가는 스크린샷이 있군요.
윈도우즈 포팅 이야기도 예전에 여러 번 나온 적이 있고.. Amarok 2.0은 아마 윈도에서도 돌아갈 겁니다.

Amarok on Mac

----
http://www.planetmono.org

Darkcircle의 이미지

사실.. 머.. 건드릴 것도 없을텐데 말이죠...
그냥 소스들 쭉 작성한 다음에 특별히 수정과정 없이

> qmake -project
> qmake -o Makefile any_project
> make

하기만 하면... 건드릴게 없는데 말이예요...

CMAKE도 이런 간단한 절차 과정 같은게 있을까요??
흠... 물론 찾다보면 있기도 하겠네요... :)
==============================================
니네 군대에서 멀쩡한 몸으로 18시간 자봤어? ㅋㅋㅋ

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

bugiii의 이미지

어케 편하게 빌드할까 하면서 여기저기 찾다보니 이만한게 없더라고요. 게을러서...

설정파일만 조금 만들어주면 그냥 주루룩 만들어지고, 또하나의 장점은 소스와 빌드시 중간파일 등이 완전히 분리되어서 디렉토리 관리도 깔끔하고요. 좀 신경써서 만들어주면 포팅도 쉽고요.

한번씩 해보세요. 전 CMake 없이는 빌드하기가 이젠 난감할 지경이에요. :)

aero의 이미지

cvs,svn,svk,bazaar,darcs등등 코드관리 시스템에 이어 빌드툴에서도 춘추전국 시대가 도래한것인가요?

전통적인 GNU autotools 이후에
java는 ant,maven등이 있는걸로 알고 있고
요즘에는 python으로 만든 scons,waf 같은것도 보이고
ruby쪽에서는 rake라는 자체 빌딩 시스템을 쓰는것 같고
openoffice에서는 dmake 라는걸 쓰고
Perl쪽에서는 Module::Build 로 넘어가는 분위기고

요즘 크로스플랫폼, 각 언어별로 쓰이는 빌드툴이 우후죽순격으로 쏟아져 나오는것 같습니다.
다 나름대로의 장단점이 있겠지만...
빌드툴의 춘추전국시대로 접어든것 같네요.

익명 사용자의 이미지

그래 봤다 다 make ㅋㅋ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.