Skip to main content

Link

directorytarget
LINK_DIRECTORIESTARGET_LINK_DIRECTORIES
LINK_LIBRARIESTARGET_LINK_LIBRARIES

directories

directory

LINK_DIRECTORIES(libpath/lib)

target

# from CMake-3.13
TARGET_LINK_DIRECTORIES(${TARGET_NAME} PRIVATE libpath)

libraries

directory

LINK_LIBRARIES(libpath)

target

TARGET_LINK_LIBRARIES(MediaSessionPlaybackExample PRIVATE
Mf
Mfplat
Mfuuid
strmiids
)

Public & Private

public 指定した設定は、link した外にも伝搬するぽい。

例えば、ライブラリに対して include パスを設定するときに、 ライブラリのビルドのみで使う場合は private 、 ライブラリのユーザーにも公開したい場合は public とする。

# library

TARGET_INCLUDE_DIRECTORIES(SOME_LIB
PRIVATE
private_include_dir # user には不要
PUBLIC
public_include_dir # user の include path にも追加したい
)
# library user

TARGET_LINK_LIBRARIES(USER
SOME_LIB # public 設定を取り込むことができる
)

ビルド済みや HeaderOnly に対して ADD_LIBRARY する場合向けに interface がある。