diff --git a/ports/kf6syntaxhighlighting/001_fix_lnk2005_windows_static.patch b/ports/kf6syntaxhighlighting/001_fix_lnk2005_windows_static.patch new file mode 100644 index 00000000000000..3ccd48f83412c6 --- /dev/null +++ b/ports/kf6syntaxhighlighting/001_fix_lnk2005_windows_static.patch @@ -0,0 +1,46 @@ +diff --git a/examples/codeeditor/CMakeLists.txt b/examples/codeeditor/CMakeLists.txt +--- a/examples/codeeditor/CMakeLists.txt ++++ b/examples/codeeditor/CMakeLists.txt +@@ -1,4 +1,7 @@ + if(TARGET Qt6::Widgets) + add_executable(codeeditor codeeditor.cpp main.cpp) + target_link_libraries(codeeditor Qt6::Widgets KF6SyntaxHighlighting) ++ if(MSVC AND NOT BUILD_SHARED_LIBS) ++ target_link_options(codeeditor PRIVATE /FORCE:MULTIPLE) ++ endif() + endif() +diff --git a/examples/codepdfprinter/CMakeLists.txt b/examples/codepdfprinter/CMakeLists.txt +--- a/examples/codepdfprinter/CMakeLists.txt ++++ b/examples/codepdfprinter/CMakeLists.txt +@@ -1,4 +1,7 @@ + if(TARGET Qt6::Widgets AND TARGET Qt6::PrintSupport) + add_executable(codepdfprinter codepdfprinter.cpp main.cpp) + target_link_libraries(codepdfprinter Qt6::Widgets Qt6::PrintSupport KF6SyntaxHighlighting) ++ if(MSVC AND NOT BUILD_SHARED_LIBS) ++ target_link_options(codepdfprinter PRIVATE /FORCE:MULTIPLE) ++ endif() + endif() +diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt +--- a/src/cli/CMakeLists.txt ++++ b/src/cli/CMakeLists.txt +@@ -2,4 +2,8 @@ + ecm_mark_nongui_executable(ksyntaxhighlighter6) + target_link_libraries(ksyntaxhighlighter6 KF6SyntaxHighlighting) + ++if(MSVC AND NOT BUILD_SHARED_LIBS) ++ target_link_options(ksyntaxhighlighter6 PRIVATE /FORCE:MULTIPLE) ++endif() ++ + install(TARGETS ksyntaxhighlighter6 ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +diff --git a/src/indexer/CMakeLists.txt b/src/indexer/CMakeLists.txt +--- a/src/indexer/CMakeLists.txt ++++ b/src/indexer/CMakeLists.txt +@@ -33,4 +33,8 @@ + else() + target_link_libraries(katehighlightingindexer Qt6::Core) + endif() ++ ++ if(MSVC AND NOT BUILD_SHARED_LIBS) ++ target_link_options(katehighlightingindexer PRIVATE /FORCE:MULTIPLE) ++ endif() + endif() diff --git a/ports/kf6syntaxhighlighting/portfile.cmake b/ports/kf6syntaxhighlighting/portfile.cmake new file mode 100644 index 00000000000000..b5b36bbbbbe9b2 --- /dev/null +++ b/ports/kf6syntaxhighlighting/portfile.cmake @@ -0,0 +1,45 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/syntax-highlighting + REF "v${VERSION}" + SHA512 a1ff5ae92624000baee9eea8e5d48040a967fd085482e6648c913d343a1d9d67b142c0867ad308100f0b7645237de15e78889b480d76ca25fad44b228aa0d957 + HEAD_REF master + PATCHES + 001_fix_lnk2005_windows_static.patch +) + +# Prevent KDEClangFormat from writing to source effectively blocking parallel configure +file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + INVERTED_FEATURES + translations KF_SKIP_PO_PROCESSING +) + +vcpkg_find_acquire_program(PERL) +get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +vcpkg_add_to_path("${PERL_EXE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_TESTING=OFF + -DKDE_INSTALL_QMLDIR=qml + ${FEATURE_OPTIONS} +) + +vcpkg_cmake_install(ADD_BIN_TO_PATH) +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF6SyntaxHighlighting) +vcpkg_copy_pdbs() + +vcpkg_copy_tools( + TOOL_NAMES ksyntaxhighlighter6 + AUTO_CLEAN +) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") +vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) diff --git a/ports/kf6syntaxhighlighting/vcpkg.json b/ports/kf6syntaxhighlighting/vcpkg.json new file mode 100644 index 00000000000000..808c85d30e8ef5 --- /dev/null +++ b/ports/kf6syntaxhighlighting/vcpkg.json @@ -0,0 +1,45 @@ +{ + "name": "kf6syntaxhighlighting", + "version": "6.23.0", + "description": "Syntax highlighting engine for Kate syntax definitions", + "homepage": "https://invent.kde.org/frameworks/syntax-highlighting", + "documentation": "https://api.kde.org/ksyntaxhighlighting-index.html", + "supports": "!android & !(windows & arm64)", + "dependencies": [ + "ecm", + { + "name": "qtbase", + "default-features": false + }, + { + "name": "qttools", + "host": true, + "default-features": false, + "features": [ + "linguist" + ] + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "translations": { + "description": "Build and install translation files", + "dependencies": [ + { + "name": "qttools", + "host": true, + "features": [ + "linguist" + ] + } + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index 46883066b988f8..9b6e3ca948639f 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4424,6 +4424,10 @@ "baseline": "6.22.0", "port-version": 0 }, + "kf6syntaxhighlighting": { + "baseline": "6.23.0", + "port-version": 0 + }, "kfr": { "baseline": "6.3.1", "port-version": 0 diff --git a/versions/k-/kf6syntaxhighlighting.json b/versions/k-/kf6syntaxhighlighting.json new file mode 100644 index 00000000000000..151a3a6805659e --- /dev/null +++ b/versions/k-/kf6syntaxhighlighting.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "c3530a130de8f576a35391554f42a36b730bce78", + "version": "6.23.0", + "port-version": 0 + } + ] +}