mirror of
https://github.com/blender/blender
synced 2026-10-25 03:07:01 +03:00
This implements a new `layout.label_markdown(text="...")` function which supports drawing a subset of Markdown in the Blender UI. The original motivation for this was to support markdown in a new Comment node (#163168). However, the functionality is more useful more generally. For example it could be used to draw extension descriptions or maybe tooltips in the future etc. It uses the [md4c](https://github.com/mity/md4c) library for the actual markdown parsing. It has the MIT license. It's a very simple to integrate C library, just on .c and one .h file. The following markdown features are supported currently: * Headers * Paragraphs * Bold/italics/monospace text * Clickable links * Code blocks * Inline code Intentionally omitted: * Tables: Could be added later. * Images: Could be added later, but needs design regarding internet access. * Footnotes: Could be added later if needed. * Latex math Could be added but requires more work to render such text in the first place. * Underlined and striked through text: Could be added if our font system supports it. * Syntax highlighting in code blocks: Could be added later. * Raw HTML: Unlikely that this will be supported. All the various margins etc. are hard-coded but there is a UI to be able to find the right values by using `4002` in the `Debug Menu`. The settings could be theme settings but it seems overkill to add that many right now. Pull Request: https://projects.blender.org/blender/blender/pulls/163254
112 lines
2.9 KiB
CMake
112 lines
2.9 KiB
CMake
# SPDX-FileCopyrightText: 2006 Blender Authors
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
# Libs that adhere to strict flags
|
|
add_subdirectory(curve_fit_nd)
|
|
add_subdirectory(fast_float)
|
|
add_subdirectory(json)
|
|
add_subdirectory(toml11)
|
|
if(WITH_IO_FBX)
|
|
add_subdirectory(ufbx)
|
|
endif()
|
|
|
|
# Otherwise we get warnings here that we can't fix in external projects
|
|
remove_strict_flags()
|
|
|
|
# Not a strict flag, but noisy for code we don't maintain
|
|
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
|
remove_c_and_cxx_flag(
|
|
"-Wextra"
|
|
"-Wmisleading-indentation"
|
|
)
|
|
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|
remove_c_and_cxx_flag(
|
|
"-Weverything"
|
|
"-Wextra"
|
|
"-Wnull-pointer-subtraction"
|
|
"-Wcast-function-type-mismatch"
|
|
"-Wignored-qualifiers"
|
|
)
|
|
endif()
|
|
|
|
if(WITH_COMPILER_ASAN AND NOT WITH_COMPILER_ASAN_EXTERN)
|
|
# Not only does MSVC not have an -fno-sanitize=all option, if you remove the /fsanitize=address
|
|
# flag at this point, it will give a linker error as it generates an ODR violation for some
|
|
# vector classes, for details see :
|
|
# https://learn.microsoft.com/en-us/cpp/sanitizers/error-container-overflow?view=msvc-170
|
|
if(NOT MSVC)
|
|
# Disable ASAN for extern dependencies, as it can lead to linking issues due to too large binaries.
|
|
string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -fno-sanitize=all")
|
|
string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " -fno-sanitize=all")
|
|
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -fno-sanitize=all")
|
|
string(APPEND CMAKE_C_FLAGS_DEBUG " -fno-sanitize=all")
|
|
endif()
|
|
endif()
|
|
|
|
|
|
add_subdirectory(rangetree)
|
|
add_subdirectory(nanosvg)
|
|
add_subdirectory(wcwidth)
|
|
add_subdirectory(xxhash)
|
|
add_subdirectory(md4c)
|
|
|
|
if(WITH_BULLET)
|
|
if(NOT WITH_SYSTEM_BULLET)
|
|
add_subdirectory(bullet2)
|
|
endif()
|
|
endif()
|
|
|
|
if(WITH_BINRELOC)
|
|
add_subdirectory(binreloc)
|
|
endif()
|
|
|
|
if(WITH_CYCLES OR WITH_OPENSUBDIV)
|
|
if((WITH_CYCLES_DEVICE_CUDA OR WITH_CYCLES_DEVICE_OPTIX) AND WITH_CUDA_DYNLOAD)
|
|
add_subdirectory(cuew)
|
|
endif()
|
|
if(WITH_CYCLES_DEVICE_HIP AND WITH_HIP_DYNLOAD)
|
|
add_subdirectory(hipew)
|
|
endif()
|
|
endif()
|
|
|
|
if(WITH_GHOST_X11 AND WITH_GHOST_XDND)
|
|
add_subdirectory(xdnd)
|
|
endif()
|
|
|
|
if(WITH_LIBMV OR WITH_GTESTS)
|
|
if(NOT WITH_SYSTEM_GFLAGS)
|
|
add_subdirectory(gflags)
|
|
endif()
|
|
add_subdirectory(glog)
|
|
endif()
|
|
|
|
if(WITH_GTESTS)
|
|
add_subdirectory(gtest)
|
|
add_subdirectory(gmock)
|
|
endif()
|
|
|
|
if(WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)
|
|
set(AUDASPACE_CMAKE_CFG ${CMAKE_CURRENT_SOURCE_DIR}/audaspace/blender_config.cmake)
|
|
set(LIB_SUFFIX "") # Quiet uninitialized warning.
|
|
add_subdirectory(audaspace)
|
|
unset(LIB_SUFFIX)
|
|
endif()
|
|
|
|
if(WITH_QUADRIFLOW)
|
|
set(QUADRIFLOW_CMAKE_CFG ${CMAKE_CURRENT_SOURCE_DIR}/quadriflow/blender_config.cmake)
|
|
add_subdirectory(quadriflow)
|
|
endif()
|
|
|
|
if(WITH_MOD_FLUID)
|
|
add_subdirectory(mantaflow)
|
|
endif()
|
|
|
|
if(WITH_VULKAN_BACKEND)
|
|
add_subdirectory(vulkan_memory_allocator)
|
|
add_subdirectory(volk)
|
|
endif()
|
|
|
|
if(WITH_TRACY)
|
|
add_subdirectory(tracy_profiler)
|
|
endif()
|