1

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 ファイルを変更して、他の依存プロジェクトを指定するにはどうすればよいですか?

4

1 に答える 1

1

コマンドを試してくださいtarget_link_libraries。ただし、モジュール名を知る必要があるため、コマンドによってモジュールを含む 1 つのグローバル CMakeLists ファイルを作成することをお勧めしますadd_subdirectory

于 2012-11-23T14:37:23.210 に答える