Фаза 6: просмотр Markdown — MdParser (cmark-gfm AST→HTML: таблицы/ссылки/вики/картинки data-URI/задачи-чекбоксы), подсветка кода KSyntaxHighlighting (алиасы «С»/«С++»/python), RichText-просмотр в EditorPane (onLinkActivated); тест mdparser (15/15)
This commit is contained in:
Vendored
+51
@@ -98,4 +98,55 @@ if(TARGET libgit2package AND NOT TARGET Flora_libgit2_static)
|
||||
target_link_libraries(Flora_libgit2_static INTERFACE libgit2package)
|
||||
target_include_directories(Flora_libgit2_static INTERFACE
|
||||
"${libgit2_SOURCE_DIR}/include")
|
||||
endif()
|
||||
|
||||
# --- KSyntaxHighlighting (подсветка кода) + Extra CMake Modules ---
|
||||
FetchContent_Declare(extra-cmake-modules
|
||||
GIT_REPOSITORY https://github.com/KDE/extra-cmake-modules.git
|
||||
GIT_TAG v6.19.0
|
||||
GIT_SHALLOW TRUE
|
||||
)
|
||||
set(ENABLE_BSYMBOLICFUNCTIONS OFF CACHE BOOL "" FORCE)
|
||||
set(BUILD_TESTING OFF) # локально для подпроекта ECM (не трогаем глобальное)
|
||||
FetchContent_MakeAvailable(extra-cmake-modules)
|
||||
unset(BUILD_TESTING)
|
||||
list(APPEND CMAKE_MODULE_PATH "${extra-cmake-modules_SOURCE_DIR}/modules")
|
||||
set(ECM_ENABLE_SANITIZERS OFF CACHE BOOL "" FORCE)
|
||||
# ECMConfig из build-дерева ссылается на установку — собираем префикс вручную.
|
||||
set(ECM_PREFIX "${CMAKE_BINARY_DIR}/_ecm_prefix" CACHE PATH "ECM temp prefix" FORCE)
|
||||
file(COPY "${extra-cmake-modules_SOURCE_DIR}/modules" DESTINATION "${ECM_PREFIX}/share/ECM")
|
||||
file(COPY "${extra-cmake-modules_SOURCE_DIR}/find-modules" DESTINATION "${ECM_PREFIX}/share/ECM")
|
||||
if(EXISTS "${extra-cmake-modules_SOURCE_DIR}/kde-modules")
|
||||
file(COPY "${extra-cmake-modules_SOURCE_DIR}/kde-modules" DESTINATION "${ECM_PREFIX}/share/ECM")
|
||||
endif()
|
||||
file(MAKE_DIRECTORY "${ECM_PREFIX}/share/ECM/cmake")
|
||||
file(COPY "${extra-cmake-modules_BINARY_DIR}/ECMConfig.cmake"
|
||||
"${extra-cmake-modules_BINARY_DIR}/ECMConfigVersion.cmake"
|
||||
DESTINATION "${ECM_PREFIX}/share/ECM/cmake")
|
||||
set(ECM_DIR "${ECM_PREFIX}/share/ECM/cmake" CACHE PATH "ECM config dir" FORCE)
|
||||
list(APPEND CMAKE_PREFIX_PATH "${ECM_PREFIX}")
|
||||
|
||||
set(BUILD_TESTING OFF) # локально для подпроекта syntax-highlighting
|
||||
FetchContent_Declare(syntax-highlighting
|
||||
GIT_REPOSITORY https://github.com/KDE/syntax-highlighting.git
|
||||
GIT_TAG v6.19.0
|
||||
GIT_SHALLOW TRUE
|
||||
)
|
||||
set(KSYNTAXHIGHLIGHTING_BUILD_TESTING OFF CACHE BOOL "" FORCE)
|
||||
FetchContent_MakeAvailable(syntax-highlighting)
|
||||
unset(BUILD_TESTING)
|
||||
|
||||
# Индексатор использует std::strong_ordering → требует C++20 (lib остаётся на 17,
|
||||
# чтобы не спотыкаться о qfloat16 в Qt 6.11).
|
||||
if(TARGET katehighlightingindexer)
|
||||
set_target_properties(katehighlightingindexer PROPERTIES
|
||||
CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
|
||||
# КФ6 не добавляет BUILD_INTERFACE include при сборке как подпроектом.
|
||||
if(TARGET KF6SyntaxHighlighting)
|
||||
target_include_directories(KF6SyntaxHighlighting INTERFACE
|
||||
"$<BUILD_INTERFACE:${syntax-highlighting_SOURCE_DIR}/src/lib>"
|
||||
"$<BUILD_INTERFACE:${syntax-highlighting_BINARY_DIR}/src/lib>"
|
||||
"$<BUILD_INTERFACE:${syntax-highlighting_BINARY_DIR}/src/lib/KSyntaxHighlighting>")
|
||||
endif()
|
||||
Reference in New Issue
Block a user