1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
[](https://github.com/uriparser/uriparser/actions/workflows/build-and-test.yml)
[](https://ci.appveyor.com/project/uriparseradmin/uriparser)
# uriparser
uriparser is a
strictly [RFC 3986](http://tools.ietf.org/html/rfc3986) compliant
URI parsing and handling library
written in C89 ("ANSI C").
uriparser is cross-platform,
fast,
supports both `char` and `wchar_t`, and
is licensed under the [New BSD license](https://github.com/uriparser/uriparser/blob/master/COPYING).
To learn more about uriparser,
please check out [https://uriparser.github.io/](https://uriparser.github.io/).
# Example use from an existing CMake project
```cmake
cmake_minimum_required(VERSION 3.3)
project(hello VERSION 1.0.0)
find_package(uriparser 0.9.2 CONFIG REQUIRED char wchar_t)
add_executable(hello
hello.c
)
target_link_libraries(hello PUBLIC uriparser::uriparser)
```
# Compilation
## Compilation (standalone, GNU make, Linux)
```console
# mkdir build
# cd build
# cmake -DCMAKE_BUILD_TYPE=Release .. # see CMakeLists.txt for options
# make
# make test
# make install
```
## Available CMake options (and defaults)
```console
# rm -f CMakeCache.txt ; cmake -LH . | grep -B1 ':.*=' | sed 's,--,,'
// Build shared libraries (rather than static ones)
BUILD_SHARED_LIBS:BOOL=ON
// Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=
// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
// Path to qhelpgenerator program (default: auto-detect)
QHG_LOCATION:FILEPATH=
// Build code supporting data type 'char'
URIPARSER_BUILD_CHAR:BOOL=ON
// Build API documentation (requires Doxygen, Graphviz, and (optional) Qt's qhelpgenerator)
URIPARSER_BUILD_DOCS:BOOL=ON
// Build test suite (requires GTest >=1.8.0)
URIPARSER_BUILD_TESTS:BOOL=ON
// Build tools (e.g. CLI "uriparse")
URIPARSER_BUILD_TOOLS:BOOL=ON
// Build code supporting data type 'wchar_t'
URIPARSER_BUILD_WCHAR_T:BOOL=ON
// Enable installation of uriparser
URIPARSER_ENABLE_INSTALL:BOOL=ON
// Use of specific runtime library (/MT /MTd /MD /MDd) with MSVC
URIPARSER_MSVC_RUNTIME:STRING=
// Treat all compiler warnings as errors
URIPARSER_WARNINGS_AS_ERRORS:BOOL=OFF
```
|