[libalkimia] new port (#20207)

* Add libalkimia port

* [libalkimia] convert manifest to JSON

* [libalkimia] use gettext port

* [libalkimia] update to HEAD

* [libalkimia] remove unused options

* [libalkimia] use current spec

* [libalkimia] only remove what's needed

* [libalkimia] use KDE_INSTALL_QMLDIR instead of manual renaming

* [libalkimia] wrap paths in quotes

* [libalkimia] update versions

* [libalkimia] enable parallel builds

* [libalkimia] update versions

* [libalkimia] enable extra features

* [libalkimia] update versions

* [libalkimia] update versions

* [libalkimia] static build fixes

* [libalkimia] update versions

* [libalkimia] only copy tools if feature enabled

* [libalkimia] update versions

* [libalkimia] mark BUNDLE_INSTALL_DIR as maybe unused

* [libalkimia] cleanup leftover static DLLs

* [libalkimia] update versions

* [libalkimia] limit DLL cleanup to Windows

* [libalkimia] update versions

* [libalkimia] DLL leftovers patched upstream

* [libalkimia] update versions

* [libalkimia] AUTO_CLEAN tools after copying

* [libalkimia] update versions
This commit is contained in:
Dawid Wróbel 2021-11-19 06:40:22 +01:00 committed by GitHub
parent 94b2a07762
commit b40dcaad95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 201 additions and 0 deletions

View File

@ -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})

View File

@ -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@")

View File

@ -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)

View File

@ -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"
]
}
}
}

View File

@ -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

View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "6cf107a0e18ea3b0238500ece6257e212a6ddd2b",
"version": "8.1.70",
"port-version": 0
}
]
}