diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/.gitignore | 3 | ||||
-rw-r--r-- | cmake/test_find_package/.gitignore | 5 | ||||
-rw-r--r-- | cmake/test_find_package/CMakeLists.txt | 77 | ||||
-rw-r--r-- | cmake/test_find_package/hello.c | 50 | ||||
-rw-r--r-- | cmake/uriparser-config.cmake.in | 57 |
5 files changed, 192 insertions, 0 deletions
diff --git a/cmake/.gitignore b/cmake/.gitignore new file mode 100644 index 0000000..3142a21 --- /dev/null +++ b/cmake/.gitignore @@ -0,0 +1,3 @@ +/uriparser-config.cmake +/uriparser-config-version.cmake +/uriparser-targets.cmake diff --git a/cmake/test_find_package/.gitignore b/cmake/test_find_package/.gitignore new file mode 100644 index 0000000..e41efe9 --- /dev/null +++ b/cmake/test_find_package/.gitignore @@ -0,0 +1,5 @@ +/CMakeCache.txt +/CMakeFiles/ +/Makefile +/cmake_install.cmake +/hello diff --git a/cmake/test_find_package/CMakeLists.txt b/cmake/test_find_package/CMakeLists.txt new file mode 100644 index 0000000..9bb4ebc --- /dev/null +++ b/cmake/test_find_package/CMakeLists.txt @@ -0,0 +1,77 @@ +# uriparser - RFC 3986 URI parsing library +# +# Copyright (C) 2018, Sebastian Pipping <sebastian@pipping.org> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# * Neither the name of the <ORGANIZATION> nor the names of its +# contributors may be used to endorse or promote products +# derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +# OF THE POSSIBILITY OF SUCH DAMAGE. +# +cmake_minimum_required(VERSION 3.0) + +project(test-find-package VERSION 1.0) + + +# Cover version mismatch +find_package(uriparser 9999 CONFIG QUIET) +if (uriparser_FOUND) + message(SEND_ERROR "Was not expecting for find uriparser 9999.x.x") +endif() + + +# Cover invalid required component +find_package(uriparser 0.9.1 CONFIG QUIET + COMPONENTS + invalid123 +) +if (uriparser_FOUND) + message(SEND_ERROR "Was not expecting for find uriparser with component \"invalid123\"") +endif() + + +# Cover invalid optional component +find_package(uriparser 0.9.1 CONFIG REQUIRED + COMPONENTS + char + wchar_t + OPTIONAL_COMPONENTS + invalid123 +) +if (NOT uriparser_FOUND) + message(SEND_ERROR "Was expecting to find uriparser. Something is off.") +endif() + + +# Compile and link some hello world using uriparser +add_executable(hello + hello.c +) + +target_link_libraries(hello PUBLIC uriparser::uriparser) diff --git a/cmake/test_find_package/hello.c b/cmake/test_find_package/hello.c new file mode 100644 index 0000000..d442297 --- /dev/null +++ b/cmake/test_find_package/hello.c @@ -0,0 +1,50 @@ +/* + * uriparser - RFC 3986 URI parsing library + * + * Copyright (C) 2018, Sebastian Pipping <sebastian@pipping.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * * Neither the name of the <ORGANIZATION> nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdio.h> +#include <uriparser/Uri.h> + +int main() { + char toUnescape[] = "one%20two"; + + printf("original: \"%s\"\n", toUnescape); + uriUnescapeInPlaceA(toUnescape); + printf("unescaped: \"%s\"\n", toUnescape); + + return 0; +} diff --git a/cmake/uriparser-config.cmake.in b/cmake/uriparser-config.cmake.in new file mode 100644 index 0000000..77a2550 --- /dev/null +++ b/cmake/uriparser-config.cmake.in @@ -0,0 +1,57 @@ +# uriparser - RFC 3986 URI parsing library +# +# Copyright (C) 2018, Sebastian Pipping <sebastian@pipping.org> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# * Neither the name of the <ORGANIZATION> nor the names of its +# contributors may be used to endorse or promote products +# derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +# OF THE POSSIBILITY OF SUCH DAMAGE. +# +if(NOT _uriparser_config_included) + # Protect against multiple inclusion + set(_uriparser_config_included TRUE) + + +include("${CMAKE_CURRENT_LIST_DIR}/uriparser.cmake") + +@PACKAGE_INIT@ + +# +# Supported components +# +macro(_register_component _NAME _AVAILABE) + set(uriparser_${_NAME}_FOUND ${_AVAILABE}) +endmacro() +_register_component(char @URIPARSER_BUILD_CHAR@) +_register_component(wchar_t @URIPARSER_BUILD_WCHAR_T@) +check_required_components(uriparser) + + +endif(NOT _uriparser_config_included) |