Skip to content

Commit

Permalink
[webui] Add new port (microsoft#43052)
Browse files Browse the repository at this point in the history
Co-authored-by: jyu49 <[email protected]>
  • Loading branch information
JackBoosY and jyu49 authored Jan 7, 2025
1 parent 3aebd5b commit 1faad55
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 0 deletions.
53 changes: 53 additions & 0 deletions ports/webui/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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
)
28 changes: 28 additions & 0 deletions ports/webui/portfile.cmake
Original file line number Diff line number Diff line change
@@ -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 changes: 26 additions & 0 deletions ports/webui/vcpkg.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
}
}
4 changes: 4 additions & 0 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions versions/w-/webui.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "ecb4ddbc58fde612c9aeb6003f11c057460eb4c3",
"version": "2.4.2",
"port-version": 0
}
]
}

0 comments on commit 1faad55

Please sign in to comment.