준호씨의 블로그
C - 기존 Makefile 프로젝트를 CMake 로 컨버팅 하기. 그리고 CLion 본문
CMake 를 적용 하면 좋은점?
여러 장점이 있지만 개인적으로 느끼는 최고의 장점은 바로 CLion 에서 잘 지원 한다는 점이다. CMake 설정을 안한 CLion 개발 환경은 그냥 조금 더 좋은 에디터 정도이다. CMake 설정을 하면 IntelliJ 에서 Java 프로그래밍을 할 때의 기분으로 C 나 C++ 개발을 할 수 있게 된다. 요즘 레거시 C 코드 작업을 많이 하고 있는데 CLion 이 없었다면 끔찍 했을 거 같다.
간단하게 시작하자
프로젝트 최상위 디렉토리에 CMakeLists.txt 를 만든다.
project(myproject C)
를 지정하면 디렉토리명으로 나오던 프로젝트명이 내가 지정한 프로젝트명으로 나온다.
하위 디렉토리에와 연결
lib 디렉토리가 있다고 가정하자. lib 디렉토리에도 CMakeLists.txt 를 만들어 준다.
그리고 최상위 디렉토리의 CMakeLists.txt 에 다음과 같이 추가한다.
add_subdirectory(lib)
코드가 있는 디렉토리가 많다면 위와 같은 순서로 계속 작업 해 준다. 디렉토리 안에 CMakeLists.txt 를 만들어 주고, 상위 디렉토리의 CMakeLists.txt 에다가 add_subdirectory 를 계속 추가 해 준다.
만약 lib 디렉토리에 mylib.c, mylib2.c, mylib.h, mylib2.h 파일들이 있다면 lib/CMakeLists.txt 에 다음과 같이 작성해 준다. 파일이 더 많이 있다면 다 추가 해 준다.
set(HEADER_FILES
mylib.h
mylib2.h
)
set(SOURCE_FILES
mylib.c
mylib2.c
)
add_library(mylib ${SOURCE_FILES} ${HEADER_FILES})
이렇게 설정한 파일들은 CLion 이 자동으로 인덱싱 하고, 서로간에 find usage 라던지, 함수의 사용 여부 확인 등을 해 주게 된다.
여담
자세한 CMake 의 사용법은 https://cmake.org/ 에서 찾아 보도록 한다. Makefile 을 직접 작성하는 것 보다 작고 깔끔하게 CMake 설정을 해 주고, cmake 커맨드로 Makefile 파일을 생성하거나 CLion 에서 Makefile 신경 쓰지 않고 C 언어로 프로그램을 개발 할 수 있게 될 것이다.
'개발이야기' 카테고리의 다른 글
perl - lib 경로 관련 (0) | 2018.08.01 |
---|---|
C Standards. C표준. C11, C99, C90, 등. 그리고 gcc (0) | 2018.08.01 |
osx - brew 로 mysql 5.7 설치 (0) | 2018.07.19 |
java - 홀수, 짝수 구분하기. check even, odd number (0) | 2018.07.19 |
perl - template toolkit (tt) 반복문 (0) | 2018.07.16 |