Files
test2/source/blender/python/intern/CMakeLists.txt
Ray Molenkamp 54604efdfd Cleanup: CMake: Modernize bf_windowmanager dependencies
Pretty straightforward

- Remove any bf_windowmanager paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/132310
2024-12-24 22:40:38 +01:00

381 lines
7.2 KiB
CMake

# SPDX-FileCopyrightText: 2006 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
..
../../blenloader
../../blentranslation
../../editors/include
../../imbuf
../../imbuf/intern/oiio
../../makesrna
../../../../intern/mantaflow/extern
../../../../intern/opencolorio
# RNA_prototypes.hh
${CMAKE_BINARY_DIR}/source/blender/makesrna
)
set(INC_SYS
${PYTHON_INCLUDE_DIRS}
)
set(SRC
bpy.cc
bpy_app.cc
bpy_app_alembic.cc
bpy_app_build_options.cc
bpy_app_ffmpeg.cc
bpy_app_handlers.cc
bpy_app_icons.cc
bpy_app_ocio.cc
bpy_app_oiio.cc
bpy_app_opensubdiv.cc
bpy_app_openvdb.cc
bpy_app_sdl.cc
bpy_app_timers.cc
bpy_app_translations.cc
bpy_app_usd.cc
bpy_capi_utils.cc
bpy_cli_command.cc
bpy_driver.cc
bpy_gizmo_wrap.cc
bpy_interface.cc
bpy_interface_atexit.cc
bpy_interface_run.cc
bpy_intern_string.cc
bpy_library_load.cc
bpy_library_write.cc
bpy_msgbus.cc
bpy_operator.cc
bpy_operator_wrap.cc
bpy_path.cc
bpy_props.cc
bpy_rna.cc
bpy_rna_anim.cc
bpy_rna_array.cc
bpy_rna_callback.cc
bpy_rna_context.cc
bpy_rna_data.cc
bpy_rna_driver.cc
bpy_rna_gizmo.cc
bpy_rna_id_collection.cc
bpy_rna_operator.cc
bpy_rna_text.cc
bpy_rna_types_capi.cc
bpy_rna_ui.cc
bpy_traceback.cc
bpy_utils_previews.cc
bpy_utils_units.cc
stubs.cc
bpy.hh
bpy_app.hh
bpy_app_alembic.hh
bpy_app_build_options.hh
bpy_app_ffmpeg.hh
bpy_app_handlers.hh
bpy_app_icons.hh
bpy_app_ocio.hh
bpy_app_oiio.hh
bpy_app_opensubdiv.hh
bpy_app_openvdb.hh
bpy_app_sdl.hh
bpy_app_timers.hh
bpy_app_translations.hh
bpy_app_usd.hh
bpy_capi_utils.hh
bpy_cli_command.hh
bpy_driver.hh
bpy_gizmo_wrap.hh
bpy_intern_string.hh
bpy_library.hh
bpy_msgbus.hh
bpy_operator.hh
bpy_operator_wrap.hh
bpy_path.hh
bpy_props.hh
bpy_rna.hh
bpy_rna_anim.hh
bpy_rna_callback.hh
bpy_rna_context.hh
bpy_rna_data.hh
bpy_rna_driver.hh
bpy_rna_gizmo.hh
bpy_rna_id_collection.hh
bpy_rna_operator.hh
bpy_rna_text.hh
bpy_rna_types_capi.hh
bpy_rna_ui.hh
bpy_traceback.hh
bpy_utils_previews.hh
bpy_utils_units.hh
../BPY_extern.hh
../BPY_extern_clog.hh
../BPY_extern_python.hh
../BPY_extern_run.hh
)
set(LIB
PRIVATE bf::blenkernel
PRIVATE bf::blenlib
PRIVATE bf::depsgraph
PRIVATE bf::dna
bf_editor_animation
bf_editor_interface
bf_editor_space_api
PRIVATE bf::gpu
PRIVATE bf::intern::clog
PRIVATE bf::intern::guardedalloc
PRIVATE bf::animrig
bf_python_gpu
${PYTHON_LINKFLAGS}
${PYTHON_LIBRARIES}
PRIVATE bf::windowmanager
)
# Only to check if `buildinfo` is available.
if(WITH_BUILDINFO)
add_definitions(-DBUILD_DATE)
endif()
if(WITH_PYTHON_MODULE)
add_definitions(-DWITH_PYTHON_MODULE)
endif()
# Find the SSL certificate for the portable Blender installation.
# Without this, the absolute path on the builder is used, causing HTTPS access to fail.
# For example `urllib.request.urlopen("https://projects.blender.org")` fails
# (or any other HTTPS site). see: #102300 for details.
# NOTE: that this isn't necessary on WIN32.
if(WITH_PYTHON AND WITH_PYTHON_INSTALL AND (APPLE OR WITH_INSTALL_PORTABLE) AND (NOT WIN32))
# - `PYTHON_SSL_CERT_FILE` absolute path to the PEM file.
find_python_module_file("certifi/cacert.pem" PYTHON_SSL_CERT_FILE _python_ssl_cert_file_relative)
mark_as_advanced(PYTHON_SSL_CERT_FILE)
if(PYTHON_SSL_CERT_FILE)
add_definitions(-DPYTHON_SSL_CERT_FILE="${_python_ssl_cert_file_relative}")
else()
message(WARNING
"Unable to find \"certifi/cacert.pem\" within \"${PYTHON_LIBPATH}\", "
"this build will not be able to use bundled certificates with the \"ssl\" module!"
)
endif()
unset(_python_ssl_cert_file_relative)
endif()
if(WITH_PYTHON_SAFETY)
add_definitions(-DWITH_PYTHON_SAFETY)
endif()
if(WITH_AUDASPACE)
# It's possible to build with AUDASPACE (for file IO) but without the `aud` Python API,
# when building without NUMPY so define both `WITH_AUDASPACE` & `DWITH_AUDASPACE_PY`.
add_definitions(-DWITH_AUDASPACE)
if(WITH_PYTHON_NUMPY)
add_definitions(-DWITH_AUDASPACE_PY)
endif()
endif()
if(WITH_BULLET)
add_definitions(-DWITH_BULLET)
endif()
if(WITH_CODEC_FFMPEG)
list(APPEND INC_SYS
${FFMPEG_INCLUDE_DIRS}
)
list(APPEND LIB
${FFMPEG_LIBRARIES}
)
add_definitions(-DWITH_FFMPEG)
endif()
if(WITH_CODEC_SNDFILE)
add_definitions(-DWITH_SNDFILE)
endif()
if(WITH_CYCLES)
list(APPEND INC
../../../../intern/cycles/blender
)
list(APPEND LIB
bf_intern_cycles
)
add_definitions(-DWITH_CYCLES)
endif()
if(WITH_CYCLES_OSL)
add_definitions(-DWITH_CYCLES_OSL)
endif()
if(WITH_CYCLES_EMBREE)
add_definitions(-DWITH_CYCLES_EMBREE)
endif()
if(WITH_FREESTYLE)
list(APPEND INC
../../freestyle/intern/python
)
add_definitions(-DWITH_FREESTYLE)
endif()
if(WITH_IMAGE_CINEON)
add_definitions(-DWITH_CINEON)
endif()
if(WITH_IMAGE_OPENEXR)
add_definitions(-DWITH_OPENEXR)
endif()
if(WITH_IMAGE_OPENJPEG)
add_definitions(-DWITH_OPENJPEG)
endif()
if(WITH_WEBP)
add_definitions(-DWITH_WEBP)
endif()
if(WITH_INPUT_NDOF)
add_definitions(-DWITH_INPUT_NDOF)
endif()
if(WITH_INTERNATIONAL)
add_definitions(-DWITH_INTERNATIONAL)
endif()
if(WITH_OPENAL)
add_definitions(-DWITH_OPENAL)
endif()
if(WITH_OPENSUBDIV)
add_definitions(-DWITH_OPENSUBDIV)
endif()
if(WITH_SDL)
list(APPEND INC_SYS
${SDL_INCLUDE_DIR}
)
list(APPEND LIB
${SDL_LIBRARY}
)
add_definitions(-DWITH_SDL)
endif()
if(WITH_JACK)
add_definitions(-DWITH_JACK)
endif()
if(WITH_COREAUDIO)
add_definitions(-DWITH_COREAUDIO)
endif()
if(WITH_LIBMV)
add_definitions(-DWITH_LIBMV)
endif()
if(WITH_PULSEAUDIO)
add_definitions(-DWITH_PULSEAUDIO)
endif()
if(WITH_WASAPI)
add_definitions(-DWITH_WASAPI)
endif()
if(WITH_MOD_OCEANSIM)
add_definitions(-DWITH_OCEANSIM)
endif()
if(WITH_MOD_REMESH)
add_definitions(-DWITH_MOD_REMESH)
endif()
if(WITH_MOD_FLUID)
add_definitions(-DWITH_FLUID)
endif()
if(WITH_OPENCOLLADA)
add_definitions(-DWITH_COLLADA)
endif()
if(WITH_IO_WAVEFRONT_OBJ)
add_definitions(-DWITH_IO_WAVEFRONT_OBJ)
endif()
if(WITH_IO_PLY)
add_definitions(-DWITH_IO_PLY)
endif()
if(WITH_IO_STL)
add_definitions(-DWITH_IO_STL)
endif()
if(WITH_IO_GREASE_PENCIL)
add_definitions(-DWITH_IO_GREASE_PENCIL)
endif()
if(WITH_ALEMBIC)
add_definitions(-DWITH_ALEMBIC)
endif()
if(WITH_OPENCOLORIO)
add_definitions(-DWITH_OCIO)
endif()
if(WITH_OPENVDB)
add_definitions(-DWITH_OPENVDB)
list(APPEND INC
../../../../intern/openvdb
)
endif()
if(WITH_ALEMBIC)
add_definitions(-DWITH_ALEMBIC)
list(APPEND INC
../../io/alembic
)
endif()
if(WITH_USD)
add_definitions(-DWITH_USD)
list(APPEND INC
../../io/usd
)
endif()
if(WITH_OPENSUBDIV)
add_definitions(-DWITH_OPENSUBDIV)
list(APPEND INC
../../../../intern/opensubdiv
)
endif()
if(WITH_XR_OPENXR)
add_definitions(-DWITH_XR_OPENXR)
endif()
if(WITH_POTRACE)
add_definitions(-DWITH_POTRACE)
endif()
if(WITH_PUGIXML)
add_definitions(-DWITH_PUGIXML)
endif()
if(WITH_HARU)
add_definitions(-DWITH_HARU)
endif()
if(WITH_HYDRA)
list(APPEND LIB
bf_render_hydra
)
add_definitions(-DWITH_HYDRA)
endif()
blender_add_lib(bf_python "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
# RNA_prototypes.hh
add_dependencies(bf_python bf_rna)