• cmake模板


    工程的目录树如下所示

    $ tree
    .
    ├── bin
    │   └── test
    ├── CMakeLists.txt
    ├── include
    │   ├── cal.h
    │   └── syslog.h
    ├── lib
    │   └── libcal.a
    └── src
        ├── cal.c
        └── main.c

    cmake编译生成静态库和可执行文件

    $ cat CMakeLists.txt 
     1 # cmake for test
     2 # author : hancq
     3 # date   : 2016-03-24
     4  
     5 # set cmake mimimum version
     6 cmake_minimum_required(VERSION 2.8.0)
     7  
     8 # project name
     9 project(test)
    10  
    11 # set cmake cross compile
    12 #set(CMAKE_CROSEECOMPILING  TRUE)
    13 #set(CMKA_SYSTRM_NAME       Linux)
    14 #set(CMAKE_C_COMPILER       arm-hisiv300-linux-gcc)
    15 #set(CMAKE_CXX_COMPILER     arm-hisiv300-linux-g++)
    16 #set(CMAKE_AUTOCONF_OPTION "--host=arm-linux CC=${CMAKE_C_COMPILER}")
    17  
    18 # add message
    19 message(STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR})
    20 message(STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR})
    21 #message(SEND_ERROR "this is a SEND_ERROR")
    22 #message(FATAL_ERROR "this is a FATAL_ERROR")
    23  
    24 # set source files
    25 set(SRC 
    26     ${PROJECT_SOURCE_DIR}/src/main.c)
    27  
    28 # set library source files
    29 set(LIB_SRC ${PROJECT_SOURCE_DIR}/src/cal.c)
    30  
    31 # set bin file path
    32 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
    33 # set lib file path
    34 set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
    35  
    36 # add include directories
    37 include_directories(${PROJECT_SOURCE_DIR}/include)
    38 # library files path
    39 link_directories(${PROJECT_SOURCE_DIR}/lib)
    40  
    41 # add define value
    42 add_definitions(-Wall)
    43 add_definitions(-O2)
    44 add_definitions(-DCAL_ADD)
    45 add_definitions(-DCAL_SUB)
    46 add_definitions(-DCAL_MUL)
    47 add_definitions(-DCAL_DIV)
    48  
    49 # build static library
    50 add_library(cal STATIC ${LIB_SRC})
    51  
    52 # build for test
    53 add_executable(test ${SRC})
    54 target_link_libraries(test cal)
  • 相关阅读:
    手机分辨率对应表
    本地加密解密工具类
    缓存清理的工具类
    Javadoc常见的标记和含义
    Android 禁止进入activity自动弹出键盘
    ListView
    可以展开和收起的的LinearLayout
    Android 编码规范
    ToastUtils
    防微信左滑删除的效果
  • 原文地址:https://www.cnblogs.com/hancq/p/5319934.html
Copyright © 2020-2023  润新知