[ogre3d] Build with CMake by 신동호

본 문서는, Ogre3d 최신 버전인 1.7(Cthugha) 에서 바뀐 빌드 시스템에 대하여 설명합니다.

원본: http://www.ogre3d.org/wiki/index.php/Building_With_CMake

** 2009.10.31 다시 받아서 돌려보니 오거 실행 방식이 바뀌어서 한참 어리둥절 했네요; 아래 내용은 CMake 에 대한 내용이라 여전히 동일한데요, Sample/Common/$(ConfigurationFile) 폴더에 있어야 할 예제들이 가장 상위 bin 에 몽땅 dll 형태로 들어가 버렸네요. 여러 예제를 하나에 프로그램에서 보여주기 위해 예제 자체를 플러그인 형태로 만들고 각 예제를 한 프로그램에서 실행해 볼 수 있도록 SampleBrowser.exe 를 제공하게 되었습니다.

빠른 시작 가이드

빠르게 시작하고 싶은 분들을 위해 2분만에 CMake 를 사용하여 Ogre 를 어떻게 빌드하는지 알아보도록 하겠습니다. 만약 빌드에 문제가 있거나 추가적인 작업을 하고 싶다면 아래 나오는 나머지 섹션을 읽어 보시기 바랍니다.

서문

이 가이드는 여러분이 가능한 빠른 시간에 기본 설정으로 Ogre 소스를 빌드할 수 있도록 돕는데 목적을 두고 만들어 졌고, CMake 의 가장 기본적인 기능만을 사용하여 실제적인 내용에 대한 검토는 하지 않습니다. 절차를 어떻게 왜 하는 지에 대하여 설명이 거의 없다는 점은 기억해 두셔야 합니다. 자세한 내용을 알고 싶으시다면 CMake 시작하기 페이지로 가서 자세한 내용을 읽어 두시는 것도 좋은 생각입니다.
우리는 여러분이 이미 Ogre 소스를 다운로드 받았고 압축을 풀어 로컬 컴퓨터에 있는 폴더에 복사해 두셨다고 가정합니다. 자, 이제 아래 있는 섹션 중에 여러분의 플렛폼에 맞는 문서를 읽어 보시기 바랍니다.(역주: Windows 만 설명합니다 -_-)

Windows

1. CMake 를 다운로드 합니다. 여러분은 바이너리 섹션의 'Win32 installer' 릴리즈를 다운로드 받으셔야 할 겁니다.
2. CMake 인스톨러를 실행하여 여러분이 원하는 곳에 설치합니다.
3. 시작 > 모든 프로그램 > CMake 2.6 >CMake 에서 CMake 를 실행합니다.
4. "Where is the source code" 박스에다가 OGRE 소스의 루트 디렉토리를 입력합니다. (OgreMain 폴더 등을 담고 있는 폴더죠)
5. "Where to build the binaries" 박스에 여러분이 원하는 폴더를 입력합니다. - 이 폴더에 빌드된 결과(라이브러리, 헤더파일, dll, 예제 exe)가 저장될 것입니다. 이 폴더는 아직 존재하지 않습니다. 빌드 결과를 저장할 폴더는 하나 이상 설정할 수 있습니다만, 설정이 복잡해 지므로 생략합니다.
6. 화면 아래 있는 'Configure' 버튼을 클릭합니다.
7. 빌드할 컴파일러를 선택합니다. 예를 들어 vs2005 로 빌드하실 경우 "Visual Studio 8 2005" 를 선택하면 됩니다.
8. 빌드 디렉토리를 생성할 것이냐고 물어보면 "Ok" 라고 하면 됩니다.
9. 설정 작업이 끝날때 까지 기다립니다.
10. 스크린에 빨간색으로 설정 옵션이 늘어나 있을 겁니다. 여기서 여러분의 입맛에 맛는 설정을 좀 더 추가할 수 있습니다만, 지금은 그냥 'Configure' 버튼을 한번 두 눌러 주도록 합시다.
11. 값이 회색으로 변하고 'Ok' 버튼이 활성화 될 것입니다. 'Ok' 버튼을 누릅니다.
12. 빌드 파일이 이제 여러분이 설정한 폴더에 생성되었습니다. CMake 를 종료합니다.

CMake 작업은 이게 다 입니다! 이제 여러분은 이전 버전의 OGRE 에서 사용했던 것과 같은 프로젝트 파일을 여러분이 원하는 폴더에 출력할 수 있는 프로젝트 파일들을 가지게 되었습니다. 탐색기에서 확인해 보시고, 메인 프로젝트 파일(Ogre.sln) 을 엽니다. 이제 빌드를 하시면 됩니다. 단, "ALL_BUILD" 라고 불리우는 특별한 타겟의 경우 빠른 방법으로 모든 타겟을 빌드할 수 있습니다.

CMake 시작하기

이번 섹션에서는 CMake 에 대하여 알아보고 어떻게 CMake 를 구할 수 있는지, 어떻게 사용할 수 있는지에 대한 개념을 설명할 것 입니다.

CMake 에 관하여

CMake 는 이기종 빌드 시스템 입니다. CMake 를 사용하길 원한다면 어떤 프로젝트라도 특별한 CMake 커멘드를 수행할 수 있도록 간단한 텍스트를 만들어서 빌드 프로세스를 명시할 수 있습니다. CMake 는 프로젝트의 소스 디렉토리를 입력받고 빌드 프로세스를 명시한 텍스트 파일을 분석한 후 사용자가 원하는 플렛폼과 컴파일러를 위한 빌드 파일을 생성합니다. CMake 는 또한 사용자가 빌드 프로세스를 수정할 수 있도록 여러가지 옵션을 제공합니다.
만약 Linux 에서 소프트웨어를 빌드하고 싶은 경우, 다음과 같이 익숙한 방법으로 빌드 파일을 만들 수 있습니다.
    ./configure && make && make install
첫 번째 표현식은 CMake 가 무엇을 하는 지(configure) 설명합니다. CMake 는 이제 이 프로젝트와 관련된 모든 종속성 있는 라이브러리를 찾고 빌드 옵션을 수정합니다. - 물론 예제와 같이 복잡한 커멘드를 사용하기 싫은 사용자를 위해 GUI 로 된 CMake 를 사용할 수도 있습니다. 한번 CMake 로 Makefiles 를 생성했다면, 컴파일을 하거나 소프트웨어의 설치본을 만들 수 있습니다.

윈도우 OS 와 비주얼 스튜디오의 경우, 보통 설정 단계가 필요가 없습니다. 프로젝트는 보통 여러분이 열거나 소프트웨어를 컴파일 할 때 사용한 비주얼 스튜디오의 솔루션 파일을 제공합니다. 단, VS 솔루션은 빌드 설정에 약간의 도움을 줄 수 있습니다. 예를 들어, Ogre 를 빌드할 때 쓰레드 모드와 쓰레드 모드를 사용하지 않는 것을 바꾸는 것은 쉽지가 않습니다. 특히, 디렉토리혹은 링크된 종속 라이브러를 포함시키는 것은 매우 고정적인 일입니다. 또한 만약 여러분의 디렉토리 구조와 라이브러리 제공자가 정의한 구조가 다른 경우, 설정을 수정하기 위해서 매우 고통스럽게 하나 하나의 프로젝트 설정을 수동으로 해주어야 할 것입니다. CMake 는 이런 과정을 없애 줍니다. 프로젝트를 더 이상 VS 솔루션 파일에 담아두는 대신 CMake 를 통해 VS 솔루션의 사용자 설정 파일을 생성해 낼 수 있습니다. CMake 는 필요한 종속성 있는 파일을 찾아주고, 개발자들이 제공한 여러가지 방법의 빌드를 쉽게 수정할 수 있도록 도와줄 것입니다. 한번 CMake 를 실행하는 것 만으로, 프로젝트를 빌드할 수 있는 VS 솔루션 파일을 얻게 될 것입니다.

CMake 구하기, 설치하기

역주: 생략, 빠른 시작가이드에서 언급하였음

CMake 의 기본

우선 CMake 가 어떻게 동작하는지에 대한 간단한 개념을 살펴보도록 하겠습니다. 약간 재미없는 이야기가 될 수도 있겠습니다만, CMake 기반의 빌드 프로세스를 이해하는 것을 도와줄 겁니다.

생성기

다른 빌드 시스템처럼 CMake 에게도 빌드할 타겟의 이름과 타입(실행파일, 라이브러리, 테스트..), 각 타겟에 속한 소스파일을 알려 주어야 합니다. 소스를 컴파일하고 타겟을 빌드하는 방법은 컴파일러와 플렛폼에 종속적입니다. CMake 는 이러한 종속성을 추상화하여 빌드 파일 생성을 도와줍니다.
CMake 에 입력된 플렛폼에 종속적이지 않은 설정값으로 프로젝트를 컴파일할 수 있는 플렛폼에 종속적인 빌드 시스템을 얻을 수 있습니다. 예를 들어, 윈도우 시스템의 경우 CMake 는 비주얼 스튜디어 2005/2008 을 위한 비주얼 스튜디오 IDE 의 솔루션 파일을 만들어 주거나, nmake 를 위한 Makefile 을 생성합니다. GCC 기반의 빌드 시스템의 겨우  MinGW 를 위한 생성기와 유닉스 플렛폼을 위한 Makefiles 생성기를 지원하고 있습니다. 뿐만 아니라 Code::Blocks 를 위한 렙퍼를 만들어 내는 생성기와 이클립스를 위한 Makefiles 를 생성하는 생성기도 제공합니다.
여기서 기억해야 할 점은 CMake 는 프로젝트를 직접 빌드하지 않는다는 점입니다. 대신 CMake 는 여러분이 선택한 생성기로 여러분의 컴파일러와 플렛폼에 맞는 빌드 시스템을 생성합니다.

빌드 옵션, CMake 케쉬

이미 언급했습니다만, CMake 는 빌드 타겟의 간단한 설정만을 필요로 합니다. CMake 는 종속성 파일을 직접찾을 수 있으며, 조건별 빌드를 수행하고 심지어 컴파일러 설정 또는 사용자가 선택한 종속성 플레그를 수행합니다. CMake 는 이런 설정 옵션을 사용자가 수정할 수 있도록 제공합니다. 이러한 옵션들은 보통 PACKAGE_SOME_OPTION 으로 변수 테이블로 제공되며 bool 부터, 숫자, 문자열 등 어떤 형태도 포함할 수 있습니다. 사용자는 특별한 케쉬에 저장된 CMake 의 저장소에서 이 변수들을 수정할 수 있습니다. 케쉬 변수의 내용과 빌드 프로세스에 나타나는 효과들은 생성기가 빌드 시스템을 생성하기 전에 선택할 수 있습니다.

디렉토리

CMake 로 빌드를 하고 나면 세 가지 디렉토리가 생성됩니다. 소스 디렉토리, 빌드 디렉토리, 인스톨 디렉토리 입니다.

소스 디렉토리



CMake 로 Ogre 빌드하기

이번 섹션에서는 어떻게 CMake 를 사용하여 Ogre 소스를 빌드할 수 있는지 설명하고 있습니다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://aronze.egloos.com/tb/1473600 [도움말]

덧글

  • 2009/09/07 10:53 # 삭제 답글

    비공개 덧글입니다.
  • 신동호 2009/09/23 02:25 # 답글

    ㅎㅎ;누군지 한참 생각했삼:D방가요
덧글 입력 영역