2013-02-05 2 views
1

우분투 용 uci 패키지를 만들고 싶습니다. cmake로 패키지를 만드는 방법은?

나는 소스 패키지를 다운로드하고 나는 C 파일로 발견 header 파일과

CMakeLists.txt 어떻게 cmake와 UCI 프로젝트를 빌드?

CMakeLists.txt 다음과 같이 나는이 특정 사건에 대해 모르는

cmake_minimum_required(VERSION 2.6) 

PROJECT(uci C) 

SET(CMAKE_INSTALL_PREFIX /usr) 

ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -I. -DUCI_PREFIX="${CMAKE_INSTALL_PREFIX}") 

OPTION(UCI_PLUGIN_SUPPORT "plugin support" ON) 
OPTION(UCI_DEBUG "debugging support" OFF) 
OPTION(UCI_DEBUG_TYPECAST "typecast debugging support" OFF) 
OPTION(BUILD_LUA "build Lua plugin" ON) 

CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/uci_config.h.in ${CMAKE_SOURCE_DIR}/uci_config.h) 

SET(LIB_SOURCES libuci.c file.c util.c delta.c parse.c) 

ADD_LIBRARY(uci-shared SHARED ${LIB_SOURCES}) 
SET_TARGET_PROPERTIES(uci-shared PROPERTIES OUTPUT_NAME uci) 
TARGET_LINK_LIBRARIES(uci-shared dl) 

ADD_LIBRARY(uci-static STATIC ${LIB_SOURCES}) 
SET_TARGET_PROPERTIES(uci-static PROPERTIES OUTPUT_NAME uci) 

ADD_EXECUTABLE(cli cli.c) 
SET_TARGET_PROPERTIES(cli PROPERTIES OUTPUT_NAME uci) 
TARGET_LINK_LIBRARIES(cli uci-shared dl) 

ADD_EXECUTABLE(cli-static cli.c) 
SET_TARGET_PROPERTIES(cli-static PROPERTIES OUTPUT_NAME uci-static) 
TARGET_LINK_LIBRARIES(cli-static uci-static dl) 

ADD_LIBRARY(ucimap STATIC ucimap.c) 

ADD_EXECUTABLE(ucimap-example ucimap-example.c) 
TARGET_LINK_LIBRARIES(ucimap-example uci-static ucimap dl) 

ADD_SUBDIRECTORY(lua) 

INSTALL(FILES uci.h uci_config.h ucimap.h 
    DESTINATION include 
) 

INSTALL(TARGETS uci-shared uci-static cli cli-static 
    ARCHIVE DESTINATION lib 
    LIBRARY DESTINATION lib 
    RUNTIME DESTINATION bin 
) 

답변

2

하지만, CMake와 운영의 일반 모드입니다. CMakeList가 /some/path/to/source/CMakeLists.txt에 위치하도록 패키지 소스를 풀 었다고 가정합니다. 그런 다음 :

> make 
> make install 

: 당신은 설정에 만족 한

> ccmake 

:

> cd /path/where/you/want/to/build 
> mkdir package_name 
> cd package_name 
> cmake /some/path/to/source 

다음, 선택적인 단계가 필요한 경우 옵션을 편집 (콘솔) GUI를 시작합니다 CMake는 또한 콘솔이 아닌 GUI를 가지고 있지만 유닉스에서는 사용하지 않았다. 그래서 나는 거기에 대해 언급 할 수 없다. 기본 아이디어는 다음과 같다. 빌드 디렉토리를 설정하고, GUI를 소스 디렉토리 (CMakeLists.txt를 포함하는 디렉토리)로 지정하고, 필요에 따라 구성하고, 수정하고, 재구성하고, Makefile을 생성하고, GUI를 종료하고 make을 실행한다.

+0

설치 경로를 'cmake -DCMAKE_INSTALL_PREFIX =/path/to/install/path/to/src'로 설정하고 싶을 수도 있습니다. – Bort

+0

@Bort 예. 그러나 CMakeList도 설정합니다. – Angew

+0

예. 커맨드 라인에서 설정하면 기본값이나 CMakeLists.txt에 설정된 값을 덮어 씁니다. 여기서는 언급하지 않을 것이다. 왜냐하면 비 루트로서/usr/local (리눅스에서는 디폴트)에 쓸 수 없기 때문이다. 또한, cmake에 익숙하지만 자동 도구 ./configure에 친숙한 사람들은 대개 '--prefix'와 동등한 것을 찾습니다. – Bort

관련 문제