目录结构
├── CMakeLists.txt
├── build
├── custom
│ ├── CMakeLists.txt
│ ├── add.c
│ └── add.h
├── log
│ ├── CMakeLists.txt
│ ├── log.c
│ └── log.h
└── main.c
顶层CMakeLists.txt
cmake_minimum_required (VERSION 3.1) # cmake版本最低要求
message("cur dir = ${CMAKE_CURRENT_LIST_DIR}") # 打印当前路径
include_directories(${CMAKE_CURRENT_LIST_DIR}) # 增加头文件搜索路径
aux_source_directory(${CMAKE_CURRENT_LIST_DIR} PROJ_SRC_LIST) # 增加源文件
#list(APPEND PROJ_SRC_LIST ${CMAKE_CURRENT_LIST_DIR}/reset_user_init.S) # 增加.S源文件
include(${CMAKE_CURRENT_LIST_DIR}/log/CMakeLists.txt) # 包含指定文件夹中的CMakeLists.txt文件
include(${CMAKE_CURRENT_LIST_DIR}/custom/CMakeLists.txt)
project(example_test1)
add_executable(example_test1 ${PROJ_SRC_LIST})
${CMAKE_CURRENT_LIST_DIR}:获取当前CMakeLists.txt文件所在绝对路径
custom和log目录中的CMakeLists.txt
cmake_minimum_required (VERSION 3.1) # cmake版本最低要求
message("cur dir = ${CMAKE_CURRENT_LIST_DIR}")
include_directories(${CMAKE_CURRENT_LIST_DIR})
aux_source_directory(${CMAKE_CURRENT_LIST_DIR} PROJ_SRC_LIST)
若项目中需要增加第三方库:
子目录中增加:
list(APPEND CUR_PROJ_LIB ${CMAKE_CURRENT_LIST_DIR}/libxxx.a)
项目顶层目录中增加:
target_link_libraries(example_test1 ${CUR_PROJ_LIB})
另外一种方式,在add_executable之前添加
LINK_LIBRARIES(libm.a)
若项目中需要调用bat文件
add_custom_command(TARGET example_test1
POST_BUILD
COMMAND cmd /c xxx.bat
)