我刚刚开始在C项目中使用CMake进行构建。
我的项目目录结构如下:
MainProject
module1/
src/
include/
CMakeLists.txt
module1/
src/
include/
CMakeLists.txt
....
moduleN/
src/
include/
CMakeLists.txt
目前,我正在正确构建模块,但是,我现在希望能够指定模块间依赖关系,以便在创建模块时,重建所有相关模块(如果已更改)。
我的CMakeLists.txt文件通常如下所示:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT( basetypes )
FIND_PACKAGE( Threads )
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-pthread")
ADD_DEFINITIONS(-DE4C_THREADSAFE )
INCLUDE_DIRECTORIES ("include/")
SET( basetypes_SRCS
src/btypes_1.c
src/btypes_2.c
src/btypes_3.c
src/btypes_4.c
src/btypes_5.c
src/vfuncs.c
src/btypes_6.c
src/btypes_7.c
src/btypes_8.c
src/btypes_8.c
src/e4c.c )
ADD_LIBRARY(basetypes SHARED ${basetypes_SRCS})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "bin/")
如何修改此类CMakeLists文件以指定其他相关项目?
答案 0 :(得分:1)
尝试target_link_libraries
命令。但是,它需要知道模块名称,因此我建议您编写一个全局CMakeLists文件,其中包含add_subdirectory
命令的模块。