一个cmake的简单例子:来自github

版权声明:This article is a blogger original article, only for study reference, reprint please indicate the source, thank you! https://blog.csdn.net/Rong_Toa/article/details/88675870

 Copyright © 2013-2014, Rafał Słota, Konrad Zemek

Table of Contents

根CMakeLists.txt

文件结构

doc/CMakeLists.txt

doc/Doxyfile.in

src/CMakeLists.txt


根CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
project(TCPIPStack C)

# The version number.
set(TCPIPStack_VERSION_MAJOR 0)
set(TCPIPStack_VERSION_MINOR 1)
set(TCPIPStack_VERSION_PATCH 1)
set(TCPIPStack_VERSION $(TCPIPStack_VERSION_MAJOR).$(TCPIPStack_VERSION_MINOR).$(TCPIPStack_VERSION_PATCH))

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11 -pthread")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")

add_subdirectory(src)
add_subdirectory(doc)

文件结构

software root directory
 |
 +---doc
 |    |
 |    +---CMakeList.txt
 |    |
 |    +---Doxyfile.in
 |
 +---src
      |
      +---CMakeList.txt
      |
      +---some other source code file

doc/CMakeLists.txt

find_package(Doxygen)
if(DOXYGEN_FOUND)

    configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
        ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY
    )

    add_custom_target(doc
        ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
        COMMENT "Generating API documentation with Doxygen" VERBATIM
    )

endif(DOXYGEN_FOUND)

doc/Doxyfile.in

这是一个一libconfig格式的文件。

src/CMakeLists.txt

add_library( tcpip
    eth.c
    hw.c
    icmp.c
    ip.c
    ndp_daemon.c
    net.c
    tcp.c
    udp.c
)

add_executable( test main.c )

target_link_libraries( test tcpip )

详情请见:GitHub's TCPIPv6 project

猜你喜欢

转载自blog.csdn.net/Rong_Toa/article/details/88675870
今日推荐