# SPDX-License-Identifier: GPL-2.0-or-later # defaults for building blender as a python module 'bpy' # # Example usage: # cmake -C../blender/build_files/cmake/config/bpy_module.cmake ../blender # set(WITH_PYTHON_MODULE ON CACHE BOOL "" FORCE) # ----------------------------------------------------------------------------- # Installation Configuration. # # NOTE: `WITH_INSTALL_PORTABLE` always defaults to ON when building as a Python module and # isn't set here as it makes changing the setting impractical. # Python-developers could prefer either ON/OFF depending on their usage: # # - When using the system's Python, disabling will install into their `site-packages`, # allowing them to run Python from any directory and `import bpy`. # - When using Blender's bundled Python in `./../lib/` it will install there # which isn't especially useful as it requires running Python from this directory too. # # So default `WITH_INSTALL_PORTABLE` to ON, and developers who don't use Python from `./../lib/` # can disable it if they wish to install into their systems Python. # There is no point in copying python into Python. set(WITH_PYTHON_INSTALL OFF CACHE BOOL "" FORCE) # Depends on Python install, do this to quiet warning. set(WITH_DRACO OFF CACHE BOOL "" FORCE) if(WIN32) set(WITH_WINDOWS_BUNDLE_CRT OFF CACHE BOOL "" FORCE) endif() # ----------------------------------------------------------------------------- # Library Compatibility. # JEMALLOC does not work with `dlopen()` of Python modules: # https://github.com/jemalloc/jemalloc/issues/1237 set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE) # ----------------------------------------------------------------------------- # Application Support. # Not useful to include with the Python module. # Although a way to extract this from Python could be handle, # this would be better exposed directly via the Python API. set(WITH_BLENDER_THUMBNAILER OFF CACHE BOOL "" FORCE) # ----------------------------------------------------------------------------- # Audio Support. # Disable audio, its possible some developers may want this but for now disable # so the Python module doesn't hold the audio device and loads quickly. set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE) set(WITH_JACK OFF CACHE BOOL "" FORCE) set(WITH_OPENAL OFF CACHE BOOL "" FORCE) set(WITH_SDL OFF CACHE BOOL "" FORCE) if(UNIX AND NOT APPLE) set(WITH_PULSEAUDIO OFF CACHE BOOL "" FORCE) endif() if(WIN32) set(WITH_WASAPI OFF CACHE BOOL "" FORCE) endif() if(APPLE) set(WITH_COREAUDIO OFF CACHE BOOL "" FORCE) endif() # ----------------------------------------------------------------------------- # Input Device Support. # Other features which are not especially useful as a python module. set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE) if(WIN32 OR APPLE) set(WITH_INPUT_IME OFF CACHE BOOL "" FORCE) endif() # ----------------------------------------------------------------------------- # Language Support. set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)