Page MenuHome

Build: change CMake option defaults to match "make full"
ClosedPublic

Authored by Brecht Van Lommel (brecht) on Mon, Nov 25, 6:09 PM.

Details

Summary

Previously a somewhat arbitrary subset of features was enabled by default.
This seems like a leftover from a time when we didn't automatically disable
options when the library is not found, and has caused a fair amount of
confusion.

I checked that the newly enabled option all use find_package and disable
the option if the library is not found, so this should not be disruptive
change.

This makes "make full" obsolete, but it's kept to not break docs or shell
scripts that people may have, and the .cmake config file remains useful to
modify an existing build folder.

This also changes WITH_JACK and WITH_TBB_MALLOC_PROXY options to only be
available on platforms where they are supported, rather than just being
disabled by default.

Ref T69742: Build all features when running "make" or manually using CMake

Diff Detail

Repository
rB Blender

Event Timeline

Changes LGTM, and here quick test went smoothly (besides some unrelated llvm issue, as Debian testing currently have no llvm-config executable in its path...). Nice cleanup/update!

This revision is now accepted and ready to land.Tue, Nov 26, 3:15 PM

One of the reasons this change was made was because some of these libraries often give problems on Linux (from memory ffmpeg, openexr, jack ...).

This wasn't great for developers grabbing the source and getting a build up and running - to have to troubleshoot obscure linking errors or some header version mis-match which others typically can't help with.

While these changes seem OK, if we get new developers in blender.chat running into issues like this, I wouldn't mind disabling those libraries by default on Linux again.

LazyDodo (LazyDodo) added a comment.EditedTue, Nov 26, 3:34 PM
set(WITH_X11_XINPUT          ON  CACHE BOOL "" FORCE)
set(WITH_X11_XF86VMODE       ON  CACHE BOOL "" FORCE)
set(WITH_GHOST_XDND          ON  CACHE BOOL "" FORCE)

still show up in the full profile on windows so these can probably be moved into a platform specific guard as well

One of the reasons this change was made was because some of these libraries often give problems on Linux (from memory ffmpeg, openexr, jack ...).
This wasn't great for developers grabbing the source and getting a build up and running - to have to troubleshoot obscure linking errors or some header version mis-match which others typically can't help with.
While these changes seem OK, if we get new developers in blender.chat running into issues like this, I wouldn't mind disabling those libraries by default on Linux again.

I think new developers generally use install_deps.sh following the build instructions, which turns on most of those options already.

But really I think we should start recommending the precompiled Linux libraries in the build docs, to avoid that problem entirely.

Only set X11 options when needed.