qmake

Posted 2006. 10. 16. 10:29
make 프로그램을 사용하면서 느낀 불편함 중에 하나는 사용이 쉽지 않다는 것이다. 간단한 어플리케이션 하나 컴파일하기 위해서도 복잡한 makefile 룰이 필요한 경우가 종종 있다. makefile은 또한 가독성이 떨어져서 남이 만들어놓은 makefile을 읽고 원하는데로 수정하기란 쉬운 일이 아니다.

프로그램이 윈도우즈와 유닉스 등 두 가지 이상의 환경에서 수행되도록 작성되어 있다면, makefile의 복잡도도 그만큼 올라가기 마련이다. 하지만 대부분의 경우, 라이브러리(CFLAGS, LIBS)를 지정하고 소스, 헤더 파일만 원하는대로 포함시킬 수 있으면 된다. 플랫폼에 따라서 몇 개 정도 파일이 바뀌는 것이 전부이다.

이런 요구사항을 쉽게 작성한 후에, 유닉스에서는 makefile, 윈도에서는 Visual Stduio Project 파일을 자동으로 생성할 수 있으면 좋겠다는 생각을 했는데, QT의 qmake가 비슷한 일을 이미 해주고 있었다. qmake 룰에 대한 특별한 설명 없이도 다음 룰을 보면 쉽게 이해할 수 있다.


    CONFIG += qt debug
    HEADERS += hello.h
    SOURCES += hello.cpp
    SOURCES += main.cpp
    win32 {
  SOURCES += hello_win.cpp
    }
    unix {
  SOURCES += hello_unix.cpp
    }
    !exists( main.cpp ) {
  error( "No main.cpp file found" )
    }
    win32:debug {
  CONFIG += console
    }