diff --git a/ports/libalkimia/dll_names.diff b/ports/libalkimia/dll_names.diff new file mode 100644 index 0000000000..3fb5a3a364 --- /dev/null +++ b/ports/libalkimia/dll_names.diff @@ -0,0 +1,21 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 643ffcf3d7b4ce59285343f92a1407927c111881..382d3c6ed244e24dec9f144c02e0c3459e8369a9 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -156,10 +156,12 @@ install( + + generate_export_header(alkimia BASE_NAME alk EXPORT_FILE_NAME alkimia/alk_export.h) + +-if(WIN32) +- set_target_properties(alkimia PROPERTIES SUFFIX "-${ALKIMIA_LIB_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") +-else() +- set_target_properties(alkimia PROPERTIES VERSION ${ALKIMIA_LIB_VERSION} SOVERSION ${ALKIMIA_LIB_SOVERSION}) ++if(BUILD_SHARED_LIBS) ++ if(WIN32) ++ set_target_properties(alkimia PROPERTIES SUFFIX "-${ALKIMIA_LIB_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") ++ else() ++ set_target_properties(alkimia PROPERTIES VERSION ${ALKIMIA_LIB_VERSION} SOVERSION ${ALKIMIA_LIB_SOVERSION}) ++ endif() + endif() + set_target_properties(alkimia PROPERTIES OUTPUT_NAME alkimia${ALKIMIA_LIB_SUFFIX}) + set(INCLUDE_INSTALL_DIR include/alkimia/${ALKIMIA_INCLUDE_SUFFIX}) diff --git a/ports/libalkimia/fix_explicit_shared_lib.diff b/ports/libalkimia/fix_explicit_shared_lib.diff new file mode 100644 index 0000000000..598ee3d60f --- /dev/null +++ b/ports/libalkimia/fix_explicit_shared_lib.diff @@ -0,0 +1,70 @@ +diff --git a/qml/CMakeLists.txt b/qml/CMakeLists.txt +index f74449b591bafd4ad0c41627139a08e29028ab21..a317307a438542e4cf26d50643057b5e9b649594 100644 +--- a/qml/CMakeLists.txt ++++ b/qml/CMakeLists.txt +@@ -22,7 +22,7 @@ else() + endif() + + configure_file(qmldir ${IMPORTS_DIR}/qmldir) +-add_library(qmlalkimia SHARED qmlalkimiaplugin.cpp) ++add_library(qmlalkimia qmlalkimiaplugin.cpp) + target_link_libraries(qmlalkimia ${LIBS} alkimia) + + install(TARGETS qmlalkimia +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index e57c94adf6c3785e5c646c7c95b586392737d686..b467849c7ff25d2ce424b30591cfe9a1e9357a46 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -103,7 +103,7 @@ endforeach() + add_definitions(-DKNSRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}") + + ki18n_wrap_ui(alkimia_LIB_SRCS ${alkimia_UI} ) +-add_library(alkimia SHARED ${alkimia_LIB_SRCS} ${alkimia_INTERNAL_SRCS} ${alkimia_LIB_HEADERS} ${alkimia_LIB_PRIVATE_HEADERS}) ++add_library(alkimia ${alkimia_LIB_SRCS} ${alkimia_INTERNAL_SRCS} ${alkimia_LIB_HEADERS} ${alkimia_LIB_PRIVATE_HEADERS}) + + kde_target_enable_exceptions(alkimia PUBLIC) + if(BUILD_QT4) +@@ -164,7 +164,13 @@ endif() + set_target_properties(alkimia PROPERTIES OUTPUT_NAME alkimia${ALKIMIA_LIB_SUFFIX}) + set(INCLUDE_INSTALL_DIR include/alkimia/${ALKIMIA_INCLUDE_SUFFIX}) + +-install(TARGETS alkimia ++if(${BUILD_SHARED_LIBS}) ++ set(alkimia_export_targets alkimia) ++else() ++ set(alkimia_export_targets alkimia alkimia-internal) ++endif() ++ ++install(TARGETS ${alkimia_export_targets} + EXPORT alkimiaTargets + ${INSTALL_TARGETS_DEFAULT_ARGS} + ) +@@ -228,7 +234,7 @@ configure_package_config_file( + + ########### install files ############### + +-export(TARGETS alkimia ++export(TARGETS ${alkimia_export_targets} + FILE "${CMAKE_CURRENT_BINARY_DIR}/LibAlkimia${ALKIMIA_PATH_SUFFIX}Targets.cmake" + NAMESPACE Alkimia:: + ) +diff --git a/src/LibAlkimiaConfig.cmake.in b/src/LibAlkimiaConfig.cmake.in +index a8893c6fe347ce2d2fe1e0a2854a206e0e41901c..8dcfdf8c13f4306a349052d1c4194e65725a50b4 100644 +--- a/src/LibAlkimiaConfig.cmake.in ++++ b/src/LibAlkimiaConfig.cmake.in +@@ -12,6 +12,15 @@ else() + endif() + find_dependency(@MP_CMAKE_MODULE@) + ++if (NOT @BUILD_SHARED_LIBS@) ++ find_dependency(KF5Completion) ++ find_dependency(KF5I18n) ++ find_dependency(KF5NewStuff) ++ find_dependency(KF5IconThemes) ++ find_dependency(KF5TextWidgets) ++ find_dependency(KF5KIO) ++endif() ++ + include("${CMAKE_CURRENT_LIST_DIR}/LibAlkimia@ALKIMIA_PATH_SUFFIX@Targets.cmake") + + set_and_check(LIBALKIMIA_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") diff --git a/ports/libalkimia/portfile.cmake b/ports/libalkimia/portfile.cmake new file mode 100644 index 0000000000..4d12566d2f --- /dev/null +++ b/ports/libalkimia/portfile.cmake @@ -0,0 +1,50 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/alkimia + REF 595186bee8409f30e5db091fffa245fc53ad92e8 + SHA512 509082e22bc0a2ce0586e1167df14fd42ac85321315c1ee2914f60e695d1e2e8beae4fc93d16d0053edb520fc391a3dbe30777638285b295e761ad70512688ca + HEAD_REF master + PATCHES + fix_explicit_shared_lib.diff + dll_names.diff # https://invent.kde.org/office/alkimia/-/commit/0ff901025a747ab31ab7efba9f8899b06774f60a +) + +# 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 + FEATURES + webengine BUILD_WITH_WEBENGINE + tools BUILD_TOOLS +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DKDE_INSTALL_QMLDIR=qml + -DBUNDLE_INSTALL_DIR=bin + -DBUILD_TESTING=OFF + -DBUILD_DOXYGEN_DOCS=OFF + -DBUILD_WITH_WEBKIT=OFF + -DBUILD_APPLETS=OFF + ${FEATURE_OPTIONS} + MAYBE_UNUSED_VARIABLES + BUNDLE_INSTALL_DIR +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(PACKAGE_NAME LibAlkimia5 CONFIG_PATH lib/cmake/LibAlkimia5-8.1) +vcpkg_copy_pdbs() + +if ("tools" IN_LIST FEATURES) + vcpkg_copy_tools(TOOL_NAMES onlinequoteseditor5 AUTO_CLEAN) +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/libalkimia/vcpkg.json b/ports/libalkimia/vcpkg.json new file mode 100644 index 0000000000..4c1e965d81 --- /dev/null +++ b/ports/libalkimia/vcpkg.json @@ -0,0 +1,47 @@ +{ + "name": "libalkimia", + "version": "8.1.70", + "description": "Common functionality for finance applications.", + "homepage": "https://community.kde.org/Alkimia/libalkimia", + "dependencies": [ + "ecm", + { + "name": "gettext", + "host": true, + "features": [ + "tools" + ] + }, + "gmp", + "kf5completion", + "kf5config", + "kf5coreaddons", + "kf5i18n", + "kf5iconthemes", + "kf5kio", + "kf5newstuff", + "kf5textwidgets", + "kf5xmlgui", + "qt5-base", + "qt5-tools", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tools": { + "description": "Enables tools, including Online Quotes Editor" + }, + "webengine": { + "description": "Enables JavaScript support for parsing feature-rich websites", + "dependencies": [ + "qt5-webengine" + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index 8801bf05ac..89e9da93c6 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3292,6 +3292,10 @@ "baseline": "5.0", "port-version": 7 }, + "libalkimia": { + "baseline": "8.1.70", + "port-version": 0 + }, "libarchive": { "baseline": "3.5.2", "port-version": 2 diff --git a/versions/l-/libalkimia.json b/versions/l-/libalkimia.json new file mode 100644 index 0000000000..4b64a7e129 --- /dev/null +++ b/versions/l-/libalkimia.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "6cf107a0e18ea3b0238500ece6257e212a6ddd2b", + "version": "8.1.70", + "port-version": 0 + } + ] +}