aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/uriparser
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/uriparser')
-rw-r--r--vcpkg/ports/uriparser/portfile.cmake69
-rw-r--r--vcpkg/ports/uriparser/usage4
-rw-r--r--vcpkg/ports/uriparser/vcpkg.json22
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."
+ }
+ }
+}