CMake

빌드 자동화 도구

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

CMake
발표일2000년(24년 전)(2000)
안정화 버전
3.31.2[1] 위키데이터에서 편집하기 / 2024년 12월 5일(22일 전)(2024년 12월 5일)
미리보기 버전
3.21.0-rc1[2] 위키데이터에서 편집하기 / 2021년 6월 23일; 2021년 6월 30일; 2021년 7월 8일(3년 전)(2021년 6월 23일; 2021년 6월 30일; 2021년 7월 8일)
저장소
프로그래밍 언어C++[3]
운영 체제크로스 플랫폼
라이선스제3항 BSD 라이선스
웹사이트cmake.org/ 위키데이터에서 편집하기

기능

편집

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. “CMake 3.31.2 available for download” (영어). 2024년 12월 5일. 2024년 12월 20일에 확인함. 
  2. “CMake 3.21.0-rc1 is ready for testing”. 2021년 6월 23일. 
  3. “Ohloh Analysis Summary - CMake”. Ohloh. 2014년 1월 22일에 원본 문서에서 보존된 문서. 2009년 12월 25일에 확인함. 

외부 링크

편집