diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/uriparser | |
Diffstat (limited to 'vcpkg/ports/uriparser')
| -rw-r--r-- | vcpkg/ports/uriparser/portfile.cmake | 69 | ||||
| -rw-r--r-- | vcpkg/ports/uriparser/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/uriparser/vcpkg.json | 22 |
3 files changed, 95 insertions, 0 deletions
diff --git a/vcpkg/ports/uriparser/portfile.cmake b/vcpkg/ports/uriparser/portfile.cmake new file mode 100644 index 0000000..e728e8f --- /dev/null +++ b/vcpkg/ports/uriparser/portfile.cmake @@ -0,0 +1,69 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO uriparser/uriparser + REF uriparser-${VERSION} + SHA512 0ab98e3172d9767ec0a62018c70190efb5aec813c310e7305fb4ffeb187976734d35ba2f83f6ea0b3f390f13740491d9538e5960b93ca1bbb848a1fe41c559a3 + HEAD_REF master +) + +if("tool" IN_LIST FEATURES) + set(URIPARSER_BUILD_TOOLS ON) +else() + set(URIPARSER_BUILD_TOOLS OFF) +endif() + +# On Android, we need to set C standard to C99 (headers on ndk uses `inline`) +if(VCPKG_TARGET_IS_ANDROID) + vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "set(CMAKE_C_STANDARD 90)" "set(CMAKE_C_STANDARD 99)") +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DURIPARSER_BUILD_DOCS=OFF + -DURIPARSER_BUILD_TESTS=OFF + OPTIONS_DEBUG + -DURIPARSER_BUILD_TOOLS=OFF + OPTIONS_RELEASE + -DURIPARSER_BUILD_TOOLS=${URIPARSER_BUILD_TOOLS} +) + +vcpkg_cmake_install() + +vcpkg_copy_pdbs() + +if(URIPARSER_BUILD_TOOLS) + vcpkg_copy_tools( + TOOL_NAMES uriparse + AUTO_CLEAN + ) +endif() + +set(_package_version_re "#define[ ]+PACKAGE_VERSION[ ]+\"([0-9]+.[0-9]+.[0-9]+)\"") +file(STRINGS + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/UriConfig.h" + _package_version_define REGEX "${_package_version_re}" +) +string(REGEX REPLACE "${_package_version_re}" "\\1" _package_version ${_package_version_define}) + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}-${_package_version}) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + vcpkg_replace_string( + "${CURRENT_PACKAGES_DIR}/include/uriparser/UriBase.h" + "defined(URI_STATIC_BUILD)" + "1 // defined(URI_STATIC_BUILD)" + ) +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") + +vcpkg_install_copyright(FILE_LIST + "${SOURCE_PATH}/COPYING.Apache-2.0" + "${SOURCE_PATH}/COPYING.BSD-3-Clause" + "${SOURCE_PATH}/COPYING.LGPL-2.1" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +vcpkg_fixup_pkgconfig() diff --git a/vcpkg/ports/uriparser/usage b/vcpkg/ports/uriparser/usage new file mode 100644 index 0000000..d3fb0cd --- /dev/null +++ b/vcpkg/ports/uriparser/usage @@ -0,0 +1,4 @@ +The package uriparser provides CMake targets: + + find_package(uriparser CONFIG REQUIRED char wchar_t) + target_link_libraries(main PUBLIC uriparser::uriparser) diff --git a/vcpkg/ports/uriparser/vcpkg.json b/vcpkg/ports/uriparser/vcpkg.json new file mode 100644 index 0000000..6b69c34 --- /dev/null +++ b/vcpkg/ports/uriparser/vcpkg.json @@ -0,0 +1,22 @@ +{ + "name": "uriparser", + "version": "0.9.9", + "description": "Strictly RFC 3986 compliant URI parsing and handling library written in C89.", + "homepage": "https://uriparser.github.io/", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tool": { + "description": "Builds CLI tool uriparse." + } + } +} |