Build Specification and Usage Requirements (PUBLIC/PRIVATE/INTERFACE)
I request to clarify (add explanation on) the differences between `INTERFACE|PUBLIC|PRIVATE` values qualifiers per explanation given here: https://cmake.org/pipermail/cmake/2016-May/063400.html and relevant policies. I propose to add links referring to to the said explanation into the listed below commands documentation. #### Existing docs These can be used for additional references: * [Transitive Usage Requirements](https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#transitive-usage-requirements) - Gives the best explanation, worth linking from other commands * [CMake Tutorial: Step 3: Adding Usage Requirements for a Library](https://cmake.org/cmake/help/latest/guide/tutorial/Adding%20Usage%20Requirements%20for%20a%20Library.html) - Good on `INTERFACE` * [Build Specification and Usage Requirements](https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements) - This one is rather vague. #### List of commands The keywords `INTERFACE|PUBLIC|PRIVATE` are used in the following commands (list is not complete): - [install](https://cmake.org/cmake/help/latest/command/install.html) - [target_compile_definitions](https://cmake.org/cmake/help/latest/command/target_compile_definitions.html) - [target_compile_features](https://cmake.org/cmake/help/latest/command/target_compile_features.html) - [target_compile_options](https://cmake.org/cmake/help/latest/command/target_compile_options.html) - [target_include_directories](https://cmake.org/cmake/help/latest/command/target_include_directories.html) - [target_link_directories](https://cmake.org/cmake/help/latest/command/target_link_directories.html) - [target_link_libraries](https://cmake.org/cmake/help/latest/command/target_link_libraries.html) - [target_link_options](https://cmake.org/cmake/help/latest/command/target_link_options.html) - [target_precompile_headers](https://cmake.org/cmake/help/latest/command/target_precompile_headers.html) - [target_sources](https://cmake.org/cmake/help/latest/command/target_sources.html) ##### Quick edit To quickly edit the above list, run in the `bash`/`zsh` shell: ```bash EDITOR=echo # Replace `echo` by editor name, e.g. kate readarray -d $'\n' rsts <<<$(fgrep -l 'PRIVATE' ./Help/command/*rst) $EDITOR ${rsts[@]}" ```
issue