2008년 7월 7일 월요일

cmake 로 pkg-config 사용하기 ( CFLAGS, LDFLAGS 설정하기 )

이전위키에 적은글

씨바 cmake 깝깝하네.
걍 CFLAGS, LDFLAGS 만 세팅하는게 뭐이리 중구난방인지
급히 여기 적어두고 나중에 몰아서 새위키에 정리하자.


# cmake 에 딸려오는 UsePkgConfig 를 쓰기로 했다.
# EXECUTE_PROCESS 를 써볼려고 헀는데 영 지저분해지길래 이놈을 쓴다.
INCLUDE(UsePkgConfig)
# UsePkgConfig.cmake 에 나온 예제 그대로
PKGCONFIG(gstreamer-0.10 GSTREAMER_INCLUDEDIR GSTREAMER_LIBDIR GSTREAMER_LDFLAGS GSTREAMER_CFLAGS)
# 인클루드 디렉토리 추가
INCLUDE_DIRECTORIES(${GSTREAMER_INCLUDEDIR})
# 링크 디렉토리 추가
LINK_DIRECTORIES(${GSTREAMER_LIBDIR})
# cflags 추가. cflag 에 -d 나 /D 만 있는게 아닌데 이딴 이름을 쓰는건 좀
# 아니라고 보는데.. 이 방법 말고 cmake 가 세팅하는 모든 CFLAGS,
# CXXFLAGS 를 수정하는 수단을 못찾겠다.
ADD_DEFINITIONS(${GSTREAMER_CFLAGS})


# 바이너리 하나 추가.
ADD_EXECUTABLE(a a.c)
# 그 바이너리에 LDFLAGS 적용. 이것도 절라 쓰레기 같은데.. 그냥
# 글로벌하게 LDFLAGS 를 수정하고 싶은데 깔끔한 방법이
# 안보인다. CMAKE_MODULE_LINKER_FLAGS 를 바꾸면 된다는데 SET 으로 저걸
# 바꾸는게 그다지 깔끔해 보이진 않는다.
SET_TARGET_PROPERTIES(a PROPERTIES LINK_FLAGS ${GSTREAMER_LDFLAGS})


댓글 없음: