[webui] Add new port (#43052)

Co-authored-by: jyu49 <yu_jack@apple.com>
This commit is contained in:
Jack·Boos·Yu 2025-01-07 09:08:21 +08:00 committed by GitHub
parent 3aebd5b88b
commit 1faad557cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,53 @@
cmake_minimum_required(VERSION 3.10)
# Project name
project(WebUILibrary)
# Set C++ standard
set(CMAKE_CXX_STANDARD 11)
# Variables for library names, source files, etc.
set(WEBUI_OUT_LIB_NAME "webui-2")
# Conditional compilation for TLS
option(WEBUI_USE_TLS "Enable TLS support" OFF)
if(WEBUI_USE_TLS)
find_package(OpenSSL REQUIRED)
set(WEBUI_OUT_LIB_NAME "webui-2-secure")
endif()
# Source files (already filled)
set(SOURCE_FILES
src/civetweb/civetweb.c
src/webui.c
)
add_library(webui ${SOURCE_FILES})
target_include_directories(webui PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
target_compile_definitions(webui PUBLIC NDEBUG NO_CACHING NO_CGI USE_WEBSOCKET)
if(BUILD_SHARED_LIBS AND WIN32)
target_compile_definitions(webui PRIVATE CIVETWEB_DLL_EXPORTS PUBLIC CIVETWEB_DLL_IMPORTS)
endif()
if(WEBUI_USE_TLS)
target_compile_definitions(webui PUBLIC WEBUI_TLS WEBUI_TLS NO_SSL_DL OPENSSL_API_1_1)
target_link_libraries(webui PRIVATE OpenSSL::SSL OpenSSL::Crypto)
else()
target_compile_definitions(webui PUBLIC NO_SSL)
endif()
set_target_properties(webui PROPERTIES
OUTPUT_NAME ${WEBUI_OUT_LIB_NAME}
PREFIX "")
install(FILES include/webui.h include/webui.hpp DESTINATION include)
# Install targets
install(TARGETS webui
EXPORT unofficial-webui
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(EXPORT unofficial-webui
FILE unofficial-webui-config.cmake
NAMESPACE unofficial::webui::
DESTINATION share/unofficial-webui
)

View File

@ -0,0 +1,28 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO webui-dev/webui
REF "${VERSION}"
SHA512 b82321195d0684c11380691ec07e359b348c7a73c649f3f55c45e2748051b7fdd17925bdc96dc32824eb8fde74bf54bb7d778ac5384c1bb47c7841586fe54033
HEAD_REF master
)
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tls WEBUI_USE_TLS
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-webui)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

26
ports/webui/vcpkg.json Normal file
View File

@ -0,0 +1,26 @@
{
"name": "webui",
"version": "2.4.2",
"description": "Use any web browser or WebView as GUI, with your preferred language in the backend and modern web technologies in the frontend, all in a lightweight portable library.",
"homepage": "https://github.com/webui-dev/webui",
"license": "MIT",
"supports": "!uwp & !(arm32 & android)",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
],
"features": {
"tls": {
"description": "Enable TLS support",
"dependencies": [
"openssl"
]
}
}
}

View File

@ -9644,6 +9644,10 @@
"baseline": "1.0.5",
"port-version": 1
},
"webui": {
"baseline": "2.4.2",
"port-version": 0
},
"webview2": {
"baseline": "1.0.2277.86",
"port-version": 0

9
versions/w-/webui.json Normal file
View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "ecb4ddbc58fde612c9aeb6003f11c057460eb4c3",
"version": "2.4.2",
"port-version": 0
}
]
}