在CMake项目中指定项目依赖项 [英] Specifying project dependencies in a CMake project

查看:127
本文介绍了在CMake项目中指定项目依赖项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚开始在C项目中使用CMake进行构建.

I have just started using CMake for my builds on a C project.

我的项目目录结构如下:

My project dir structure looks like this:

MainProject
   module1/
        src/
        include/
        CMakeLists.txt
   module1/
        src/
        include/
        CMakeLists.txt

....
   moduleN/
        src/
        include/
        CMakeLists.txt

目前,我正在正确地构建模块,但是,现在,我希望能够指定模块间的依赖关系,以便在创建模块时,将重新构建其所有依赖的模块(如果已更改).

At the moment, I am building my modules correctly, However, I now want to be able to specify intermodule dependencies so that when I make a module, all of its dependent modules are rebuilt (if changed).

我的CMakeLists.txt文件通常如下所示:

My CMakeLists.txt file typically looks like this:

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文件以指定其他从属项目?

How can I modify such a CMakeLists file to specify other dependent project(s)?

推荐答案

尝试

Try target_link_libraries command. However, it need to know module names, so I've suggest you to write one globale CMakeLists file, that include modules by add_subdirectory command.

这篇关于在CMake项目中指定项目依赖项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆