CMake

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
CMake
Cmake.svg
최근 버전 2.8.11 / 2013년 5월 17일
프로그래밍 언어 C++[1]
운영 체제 크로스 플랫폼
라이선스 3항 BSD 라이선스

CMake(Cross Platform Make)는 멀티플랫폼으로 사용할 수 있는 Make의 대용품을 만들기 위한 오픈소스 프로젝트로 키트웨어인사이트 콘솔티엄에서 만들었다. 스스로 기존의 Make의 과정을 수행하지는 않고 지정한 운영 체제에 맞는 Make 파일(마이크로소프트 윈도에서는 솔루션 파일)의 생성만을 수행하기 때문에 Meta Make라고도 불린다. 가장 큰 이점은 유닉스 계열 OS 중심이던 기존의 Make와는 달리 한번 작성해 두면 유닉스 계열은 물론, 마이크로소프트 윈도 계열의 프로그래밍 도구도 지원한다는 것이다.

기능[편집]

CMake 파일 예제[편집]

if (${UNIX})
  set (DESKTOP $ENV{HOME})
else()
  set (DESKTOP $ENV{USERPROFILE}/Desktop)
endif()
 
set  (PRJ      ${DESKTOP}/common/svn )
set  (FILELIST ${PRJ}/src/source.txt )
 
message(STATUS "CMAKE_GENERATOR : ${CMAKE_GENERATOR}")
message(STATUS "DESKTOP         : ${DESKTOP}")
message(STATUS "PRJ             : ${PRJ}")
message(STATUS "FILELIST        : ${FILELIST}")
message(STATUS "SYSTEM_NAME     : ${CMAKE_SYSTEM_NAME}")
 
project(project_name)
 
include_directories(
  ${PRJ}/src
  ${PRJ}/includes
)
 
# Load SRC Variable from file
file(READ ${FILELIST} SRC)
string(REGEX REPLACE  "#.*$"  ""  SRC  ${SRC})
string(REPLACE        "\n"    ";" SRC  ${SRC})
 
add_executable(${PROJECT_NAME} ${SRC} )
 
foreach (f ${SRC})
  set_source_files_properties(${f} PROPERTIES LANGUAGE       CXX)
endforeach(f)
 
if (${WIN32})
  link_directories(
  )
 
  add_definitions(
    -DDEFINE1
  )
 
  target_link_libraries(
    ${PROJECT_NAME} 
    wsock32.lib 
  )
endif()

CMake를 채택한 프로젝트[편집]

같이 보기[편집]

참조[편집]

  1. Ohloh Analysis Summary - CMake. Ohloh. 2009년 12월 25일에 확인.

바깥 고리[편집]