상위 질문
타임라인
채팅
관점

CMake

빌드 자동화 도구 위키백과, 무료 백과사전

CMake
Remove ads

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

간략 정보 발표일, 안정화 버전 ...
Remove ads

기능

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()
Remove ads

CMake를 채택한 프로젝트

같이 보기

참조

외부 링크

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads