target_XXX() の PRIVATE とかって何?
例えばコンパイルオプションを指定するときは set(CMAKE_CXX_FLAGS -Wall) とかではなく target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -Wall) のように target_ prefix をもつ関数を使うのがモダンな記述だと言われている
じゃあ PRIVATE ってなんだよ
The
PUBLIC,PRIVATEandINTERFACEscope keywords can be used to specify both the link dependencies and the link interface in one command.
(スコープキーワードであるPUBLIC・PRIVATE・INTERFACEはリンクの依存関係とインタフェースを1コマンドで指定するために使える)
https://cmake.org/cmake/help/latest/command/target_link_libraries.html
?
| キーワード | ターゲットに必要 | そのターゲットに依存するターゲットに必要 |
|---|---|---|
| PRIVATE | o | x |
| PUBLIC | o | o |
| INTERFACE | x | o |
CMakeの使い方(その1) C++ - Qiita