blender/intern/cycles
Ray molenkamp eff9e2f4ce CMake: plumbing for modern CMake usage
This is the minimal change required to start using modern CMake in the
blender build system. This change is designed to allow small
incremental changes to the build system rather than doing it in one
big bang which would be unmaintainable (for me)

The biggest functional change is, previously all libraries in the
`LIB` section of a `blender_add_lib` call had the `INTERFACE` scope,
which is rarely, if ever the correct scope. This diff changes this to
`PRIVATE`

Concrete implications of this diff :

The `LIB`, `INC` and `INC_SYS` sections of an `blender_add_lib` call
now allow scoping keywords (`PUBLIC`, `PRIVATE,` `INTERFACE`) to
declare the scope of the dependency.

Right now the only library using any modern cmake is
`bf_intern_atomic` which is an header only interface library that will
just advertise its include directories.

This allows us to clean up any `CMakeLists.txt` that adds
`../../../intern/atomic` to its `INC` section to remove it in `INC` by
adding a `PRIVATE bf_intern_atomic` to the `LIB` section.

Pull Request: https://projects.blender.org/blender/blender/pulls/107858
2023-06-27 20:57:50 +02:00
..
app License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
blender I18n: disambiguate a few messages 2023-06-26 15:07:06 +02:00
bvh License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
cmake Merge branch 'blender-v3.6-release' 2023-06-14 18:21:09 +02:00
device Merge branch 'blender-v3.6-release' 2023-06-23 13:12:58 +02:00
doc License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
graph License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
hydra License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
integrator License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
kernel Cleanup make format 2023-06-26 14:20:31 +02:00
scene Cleanup: pre-scale spot light axes to avoid unnecessary division 2023-06-23 15:45:45 +02:00
session License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
subd License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
test CMake: plumbing for modern CMake usage 2023-06-27 20:57:50 +02:00
util Cycles: remove clamping of area lights at small spread angles 2023-06-22 17:52:41 +02:00
CMakeLists.txt License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00