Refactor library translation units

This commit is contained in:
Vinnie Falco 2023-04-06 23:23:20 -07:00 committed by Alan de Freitas
parent d769abedb5
commit 963bf5a4b7
93 changed files with 222 additions and 359 deletions

View File

@ -317,6 +317,11 @@ elif [ "$DRONE_JOB_BUILDTYPE" == "cmake-install" ]; then
# cp -r $DRONE_WORKSPACE/* libs/$SELF
# git submodule update --init tools/boostdep
git submodule update --init --recursive
if [ ! -d "libs/$SELF" ]; then
mkdir -p "libs/$SELF"
fi
find "libs/$SELF" -mindepth 1 -delete
mkdir -p "libs/$SELF"
cp -r "$DRONE_WORKSPACE"/* "libs/$SELF"

View File

@ -8,11 +8,13 @@ name: CI
on:
pull_request:
push:
branches:
- master
- develop
- feature/**
push:
branches:
- '*'
concurrency:
group: ${{format('{0}:{1}', github.repository, github.ref)}}
@ -324,7 +326,10 @@ jobs:
# cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
# git submodule update --init tools/boostdep
git submodule update --init --recursive
mkdir -p libs/$LIBRARY
if [ ! -d "libs/$LIBRARY" ]; then
mkdir -p libs/$LIBRARY
fi
find libs/$LIBRARY -mindepth 1 -delete
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
DEPINST_ARGS+=("$LIBRARY")
@ -453,6 +458,8 @@ jobs:
- { os: ubuntu-22.04, build_shared: OFF, build_type: Debug, generator: 'Unix Makefiles' }
- { os: windows-2019, build_shared: ON, build_type: Debug, generator: 'Visual Studio 16 2019' }
- { os: windows-2019, build_shared: OFF, build_type: Debug, generator: 'Visual Studio 16 2019' }
- { os: windows-2022, build_shared: ON, build_type: Debug, generator: 'Visual Studio 17 2022' }
- { os: windows-2022, build_shared: OFF, build_type: Debug, generator: 'Visual Studio 17 2022' }
timeout-minutes: 120
runs-on: ${{matrix.os}}

View File

@ -95,6 +95,13 @@ function(boost_url_setup_properties target)
Boost::variant2
)
endif()
if(BUILD_SHARED_LIBS)
target_compile_definitions(${target} PUBLIC BOOST_URL_DYN_LINK=1)
else()
target_compile_definitions(${target} PUBLIC BOOST_URL_STATIC_LINK=1)
endif()
target_compile_definitions(${target} PRIVATE BOOST_URL_SOURCE)
endfunction()
@ -104,13 +111,12 @@ file(GLOB_RECURSE BOOST_URL_HEADERS CONFIGURE_DEPENDS
include/boost/*.natvis
)
set(BOOST_URL_SOURCES src/src.cpp)
file(GLOB_RECURSE BOOST_URL_SOURCES CONFIGURE_DEPENDS src/*.cpp)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include/boost PREFIX "" FILES ${BOOST_URL_HEADERS})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/src PREFIX "" FILES ${BOOST_URL_SOURCES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/src PREFIX "url" FILES ${BOOST_URL_SOURCES})
add_library(boost_url ${BOOST_URL_HEADERS} ${BOOST_URL_SOURCES})
add_library(Boost::url ALIAS boost_url)
@ -121,6 +127,8 @@ if(BUILD_SHARED_LIBS)
else()
target_compile_definitions(boost_url PUBLIC BOOST_URL_STATIC_LINK=1)
endif()
target_compile_definitions(boost_url PRIVATE BOOST_URL_SOURCE)
if(BOOST_URL_INSTALL AND NOT BOOST_SUPERPROJECT_VERSION)

3
antora/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
index.adoc
index.xml
compile_commands.json

2
antora/mrdox.yml Normal file
View File

@ -0,0 +1,2 @@
include:
- ../include

View File

@ -11,19 +11,17 @@
project boost/url
: requirements
$(c11-requires)
<link>shared:<define>BOOST_URL_DYN_LINK=1
<link>static:<define>BOOST_URL_STATIC_LINK=1
<define>BOOST_URL_SOURCE
<toolset>msvc-14.0:<build>no
<toolset>gcc-7:<cxxflags>"-Wno-maybe-uninitialized" # variant2
: usage-requirements
: common-requirements
<link>shared:<define>BOOST_URL_DYN_LINK=1
<link>static:<define>BOOST_URL_STATIC_LINK=1
: source-location ../src
;
alias url_sources
: src.cpp
: [ glob-tree-ex ../src : *.cpp ]
;
explicit url_sources ;

View File

@ -49,7 +49,6 @@ Boost.URL offers these features:
* Containers that maintain valid URLs
* Parsing algorithms that work without exceptions
* Control over storage and allocation for URLs
* Optionally header-only library, without linking
* Support for `-fno-exceptions`, detected automatically
* Features that work well on embedded devices
@ -69,19 +68,6 @@ The library requires a compiler supporting at least C++11.
Aliases for standard types, such as __error_code__ or __string_view__,
use their Boost equivalents.
[heading Header-Only]
To use the library as header-only; that is, to eliminate the requirement
to link a program to a static or dynamic Boost.URL library, simply place
the following line in [*exactly one] source file in your project.
[c++]
```
#include <boost/url/src.hpp>
```
[heading Embedded]
Boost.URL works great on embedded devices. It can be used in a
way that avoids all dynamic memory allocations. Furthermore it
offers alternative interfaces that work without exceptions if

View File

@ -22,8 +22,6 @@ and interface style of the library.
[snippet_headers_3]
]
[h4 Compiled library]
We begin by including the library header file which brings all the symbols into
scope.
@ -33,38 +31,12 @@ scope.
Alternatively, individual headers may be included to obtain the declarations
for specific types.
You need to link your program with the Boost.URL built library. You must install binaries
in a location that can be found by your linker.
Boost.URL is a compiled library. You need to link your program with the Boost.URL built library.
You must install binaries in a location that can be found by your linker.
If you followed the [@http://www.boost.org/doc/libs/release/more/getting_started/index.html Boost Getting Started]
instructions, that's already been done for you.
[h4 Header-only]
To use Boost.URL as header-only; that is, to eliminate the requirement to link
a program to a static or dynamic Boost.URL library, place the following line
in [*exactly one] new or existing source file in your project.
[c++]
```
// In exactly *one* source file
#include <boost/url/src.hpp>
```
Then define `BOOST_URL_NO_LIB` and include the library headers in any file that
might uses Boost.URL.
[c++]
```
// In any other source file
#define BOOST_URL_NO_LIB
#include <boost/url.hpp>
```
This "header-only" configuration needs `BOOST_URL_NO_LIB` defined when building
with compilers supporting auto-linking, such as Microsoft Visual C++. The macro
instructs Boost to deactivate auto-linking.
[h3 Parsing]
Say you have the following URL that you want to parse:

View File

@ -13,4 +13,4 @@ build-project suffix_list ;
build-project mailto ;
build-project magnet ;
build-project file_router ;
build-project router ;
# build-project router ;

View File

@ -7,13 +7,8 @@
# Official repository: https://github.com/boostorg/url
#
source_group("" FILES
router.cpp
)
add_executable(router
router.cpp
)
set_property(TARGET router PROPERTY FOLDER "Examples")
add_executable(router router.cpp impl/matches.cpp detail/impl/router.cpp)
target_link_libraries(router PRIVATE Boost::url Boost::beast)
source_group("" FILES router.cpp)
set_property(TARGET router PROPERTY FOLDER "Examples")

View File

@ -18,4 +18,4 @@ project
<toolset>gcc-7:<cxxflags>"-Wno-maybe-uninitialized"
;
exe router : router.cpp ;
exe router : router.cpp impl/matches.cpp detail/impl/router.cpp ;

View File

@ -11,6 +11,7 @@
#define BOOST_URL_DETAIL_ROUTER_IPP
#include "../router.hpp"
#include <boost/url/decode_view.hpp>
#include <boost/url/grammar/alnum_chars.hpp>
#include <boost/url/grammar/alpha_chars.hpp>
#include <boost/url/grammar/lut_chars.hpp>

View File

@ -11,6 +11,7 @@
#define BOOST_URL_DETAIL_ROUTER_HPP
#include <boost/url/pct_string_view.hpp>
#include <boost/url/segments_encoded_view.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/range_rule.hpp>

View File

@ -11,6 +11,7 @@
#define BOOST_URL_MATCHES_HPP
#include <boost/url/detail/config.hpp>
#include <boost/url/string_view.hpp>
namespace boost {
namespace urls {

View File

@ -20,7 +20,6 @@
#endif
#include "router.hpp"
#include "src.hpp"
#include <boost/beast/core.hpp>
#include <boost/beast/http.hpp>

View File

@ -1,22 +0,0 @@
//
// Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_ROUTER_SRC_HPP
#define BOOST_URL_ROUTER_SRC_HPP
#ifndef BOOST_URL_SOURCE
#define BOOST_URL_SOURCE
#endif
// include in one and no more than one source file
#include "detail/impl/router.ipp"
#include "impl/matches.ipp"
#endif

View File

@ -1,23 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_DETAIL_IMPL_PATH_IPP
#define BOOST_URL_DETAIL_IMPL_PATH_IPP
#include <boost/url/detail/path.hpp>
namespace boost {
namespace urls {
namespace detail {
} // detail
} // url
} // boost
#endif

View File

@ -12,6 +12,8 @@
#define BOOST_URL_DETAIL_NORMALIZED_HPP
#include <boost/url/string_view.hpp>
#include <boost/url/segments_encoded_view.hpp>
#include <boost/url/detail/normalize.hpp>
namespace boost {
namespace urls {

View File

@ -10,10 +10,6 @@
#ifndef BOOST_URL_DETAIL_PRINT_HPP
#define BOOST_URL_DETAIL_PRINT_HPP
#ifndef BOOST_URL_SOURCE
#error
#endif
#include <cstdint>
#include <type_traits>

View File

@ -1,81 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_GRAMMAR_DETAIL_IMPL_CI_STRING_IPP
#define BOOST_URL_GRAMMAR_DETAIL_IMPL_CI_STRING_IPP
#include <boost/url/grammar/detail/ci_string.hpp>
namespace boost {
namespace urls {
namespace grammar {
namespace detail {
//------------------------------------------------
// https://lemire.me/blog/2020/04/30/for-case-insensitive-string-comparisons-avoid-char-by-char-functions/
// https://github.com/lemire/Code-used-on-Daniel-Lemire-s-blog/blob/master/2020/04/30/tolower.cpp
bool
ci_is_equal(
string_view s0,
string_view s1) noexcept
{
auto n = s0.size();
auto p1 = s0.data();
auto p2 = s1.data();
char a, b;
// fast loop
while(n--)
{
a = *p1++;
b = *p2++;
if(a != b)
goto slow;
}
return true;
slow:
do
{
if( to_lower(a) !=
to_lower(b))
return false;
a = *p1++;
b = *p2++;
}
while(n--);
return true;
}
//------------------------------------------------
bool
ci_is_less(
string_view s0,
string_view s1) noexcept
{
auto p1 = s0.data();
auto p2 = s1.data();
for(auto n = s0.size();n--;)
{
auto c1 = to_lower(*p1++);
auto c2 = to_lower(*p2++);
if(c1 != c2)
return c1 < c2;
}
// equal
return false;
}
} // detail
} // grammar
} // urls
} // boost
#endif

View File

@ -72,6 +72,12 @@ struct BOOST_SYMBOL_VISIBLE
}
};
BOOST_URL_DECL extern
error_cat_type error_cat;
BOOST_URL_DECL extern
condition_cat_type condition_cat;
} // detail
inline
@ -79,11 +85,10 @@ system::error_code
make_error_code(
error ev) noexcept
{
static BOOST_SYSTEM_CONSTEXPR
detail::error_cat_type cat{};
return system::error_code{
static_cast<std::underlying_type<
error>::type>(ev), cat};
error>::type>(ev),
detail::error_cat};
}
inline
@ -91,11 +96,10 @@ system::error_condition
make_error_condition(
condition c) noexcept
{
static BOOST_SYSTEM_CONSTEXPR
detail::condition_cat_type cat{};
return system::error_condition{
static_cast<std::underlying_type<
condition>::type>(c), cat};
condition>::type>(c),
detail::condition_cat};
}
} // grammar

View File

@ -12,6 +12,7 @@
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/pct_encoded_rule.hpp>
#include <boost/url/rfc/sub_delim_chars.hpp>
#include <boost/url/rfc/unreserved_chars.hpp>
namespace boost {

View File

@ -1,120 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
// Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_SRC_HPP
#define BOOST_URL_SRC_HPP
/*
This file is meant to be included once,
in a translation unit of the program.
*/
// MUST COME FIRST
#ifndef BOOST_URL_SOURCE
#define BOOST_URL_SOURCE
#endif
// We include this in case someone is
// using src.hpp as their main header file
#include <boost/url.hpp>
//------------------------------------------------
//
// url
//
//------------------------------------------------
#include <boost/url/detail/impl/any_params_iter.ipp>
#include <boost/url/detail/impl/any_segments_iter.ipp>
#include <boost/url/detail/impl/decode.ipp>
#include <boost/url/detail/impl/except.ipp>
#include <boost/url/detail/impl/format_args.ipp>
#include <boost/url/detail/impl/normalize.ipp>
#include <boost/url/detail/impl/params_iter_impl.ipp>
#include <boost/url/detail/impl/path.ipp>
#include <boost/url/detail/impl/pattern.ipp>
#include <boost/url/detail/impl/pct_format.ipp>
#include <boost/url/detail/impl/replacement_field_rule.ipp>
#include <boost/url/detail/impl/segments_iter_impl.ipp>
#include <boost/url/detail/impl/url_impl.ipp>
#include <boost/url/impl/authority_view.ipp>
#include <boost/url/impl/decode_view.ipp>
#include <boost/url/impl/error.ipp>
#include <boost/url/impl/ipv4_address.ipp>
#include <boost/url/impl/ipv6_address.ipp>
#include <boost/url/impl/params_base.ipp>
#include <boost/url/impl/params_encoded_base.ipp>
#include <boost/url/impl/params_encoded_ref.ipp>
#include <boost/url/impl/params_encoded_view.ipp>
#include <boost/url/impl/params_ref.ipp>
#include <boost/url/impl/params_view.ipp>
#include <boost/url/impl/parse.ipp>
#include <boost/url/impl/parse_path.ipp>
#include <boost/url/impl/parse_query.ipp>
#include <boost/url/impl/pct_string_view.ipp>
#include <boost/url/impl/scheme.ipp>
#include <boost/url/impl/segments_base.ipp>
#include <boost/url/impl/segments_encoded_base.ipp>
#include <boost/url/impl/segments_encoded_ref.ipp>
#include <boost/url/impl/segments_encoded_view.ipp>
#include <boost/url/impl/segments_ref.ipp>
#include <boost/url/impl/segments_view.ipp>
#include <boost/url/impl/static_url.ipp>
#include <boost/url/impl/url.ipp>
#include <boost/url/impl/url_base.ipp>
#include <boost/url/impl/url_view.ipp>
#include <boost/url/impl/url_view_base.ipp>
//------------------------------------------------
//
// grammar
//
//------------------------------------------------
#include <boost/url/grammar/detail/impl/recycled.ipp>
#include <boost/url/grammar/impl/ci_string.ipp>
#include <boost/url/grammar/impl/dec_octet_rule.ipp>
#include <boost/url/grammar/impl/delim_rule.ipp>
#include <boost/url/grammar/impl/error.ipp>
#include <boost/url/grammar/impl/literal_rule.ipp>
#include <boost/url/grammar/impl/string_view_base.ipp>
//------------------------------------------------
//
// rfc
//
//------------------------------------------------
#include <boost/url/rfc/detail/impl/h16_rule.ipp>
#include <boost/url/rfc/detail/impl/hier_part_rule.ipp>
#include <boost/url/rfc/detail/impl/host_rule.ipp>
#include <boost/url/rfc/detail/impl/ip_literal_rule.ipp>
#include <boost/url/rfc/detail/impl/ipvfuture_rule.ipp>
#include <boost/url/rfc/detail/impl/port_rule.ipp>
#include <boost/url/rfc/detail/impl/relative_part_rule.ipp>
#include <boost/url/rfc/detail/impl/scheme_rule.ipp>
#include <boost/url/rfc/detail/impl/userinfo_rule.ipp>
#include <boost/url/rfc/impl/absolute_uri_rule.ipp>
#include <boost/url/rfc/impl/authority_rule.ipp>
#include <boost/url/rfc/impl/ipv4_address_rule.ipp>
#include <boost/url/rfc/impl/ipv6_address_rule.ipp>
#include <boost/url/rfc/impl/origin_form_rule.ipp>
#include <boost/url/rfc/impl/query_rule.ipp>
#include <boost/url/rfc/impl/relative_ref_rule.ipp>
#include <boost/url/rfc/impl/uri_rule.ipp>
#include <boost/url/rfc/impl/uri_reference_rule.ipp>
#endif

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_AUTHORITY_VIEW_IPP
#define BOOST_URL_IMPL_AUTHORITY_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/authority_view.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/rfc/authority_rule.hpp>
#include <boost/url/rfc/pct_encoded_rule.hpp>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_DECODE_VIEW_IPP
#define BOOST_URL_IMPL_DECODE_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <ostream>
namespace boost {

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_DETAIL_IMPL_ANY_PARAMS_ITER_IPP
#define BOOST_URL_DETAIL_IMPL_ANY_PARAMS_ITER_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/any_params_iter.hpp>
#include <boost/url/encode.hpp>
#include <boost/url/string_view.hpp>
#include <boost/url/rfc/detail/charsets.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_DETAIL_IMPL_ANY_SEGMENTS_ITER_IPP
#define BOOST_URL_DETAIL_IMPL_ANY_SEGMENTS_ITER_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/detail/any_segments_iter.hpp>
#include <boost/url/string_view.hpp>
#include <boost/url/encode.hpp>

View File

@ -10,8 +10,10 @@
#ifndef BOOST_URL_DETAIL_IMPL_DECODE_IPP
#define BOOST_URL_DETAIL_IMPL_DECODE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/decode.hpp>
#include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <memory>
namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_DETAIL_IMPL_EXCEPT_IPP
#define BOOST_URL_DETAIL_IMPL_EXCEPT_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/except.hpp>
#include <boost/throw_exception.hpp>
#include <boost/system/system_error.hpp>

View File

@ -10,9 +10,14 @@
#ifndef BOOST_URL_DETAIL_IMPL_FORMAT_ARGS_IPP
#define BOOST_URL_DETAIL_IMPL_FORMAT_ARGS_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/encode.hpp>
#include <boost/url/detail/format_args.hpp>
#include <boost/url/detail/replacement_field_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/grammar/unsigned_rule.hpp>
namespace boost {

View File

@ -11,9 +11,14 @@
#ifndef BOOST_URL_DETAIL_IMPL_NORMALIZE_IPP
#define BOOST_URL_DETAIL_IMPL_NORMALIZE_IPP
#include <boost/url/detail/normalize.hpp>
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/detail/decode.hpp>
#include <boost/url/segments_encoded_view.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <boost/assert.hpp>
#include <boost/core/ignore_unused.hpp>
#include <cstring>
namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_DETAIL_IMPL_PARAMS_ITER_IMPL_IPP
#define BOOST_URL_DETAIL_IMPL_PARAMS_ITER_IMPL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/params_iter_impl.hpp>
#include <boost/assert.hpp>

View File

@ -10,9 +10,14 @@
#ifndef BOOST_URL_DETAIL_IMPL_PATTERN_IPP
#define BOOST_URL_DETAIL_IMPL_PATTERN_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/pattern.hpp>
#include <boost/url/detail/pct_format.hpp>
#include <boost/url/detail/replacement_field_rule.hpp>
#include <boost/url/grammar/alpha_chars.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/token_rule.hpp>
#include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/rfc/detail/host_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/rfc/detail/port_rule.hpp>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_DETAIL_IMPL_PCT_FORMAT_IPP
#define BOOST_URL_DETAIL_IMPL_PCT_FORMAT_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/pct_format.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/unsigned_rule.hpp>
namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_DETAIL_IMPL_REPLACEMENT_FIELD_RULE_IPP
#define BOOST_URL_DETAIL_IMPL_REPLACEMENT_FIELD_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/replacement_field_rule.hpp>
#include <boost/url/grammar/alnum_chars.hpp>
#include <boost/url/grammar/alpha_chars.hpp>
@ -19,6 +20,7 @@
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/token_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/grammar/vchars.hpp>
namespace boost {
namespace urls {

View File

@ -11,6 +11,8 @@
#ifndef BOOST_URL_DETAIL_IMPL_SEGMENTS_ITER_IMPL_IPP
#define BOOST_URL_DETAIL_IMPL_SEGMENTS_ITER_IMPL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/path.hpp>
#include <boost/url/detail/segments_iter_impl.hpp>
#include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/assert.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_DETAIL_IMPL_URL_IMPL_IPP
#define BOOST_URL_DETAIL_IMPL_URL_IMPL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/path.hpp>
#include <boost/url/detail/url_impl.hpp>
#include <boost/url/authority_view.hpp>
#include <boost/assert.hpp>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_ERROR_IPP
#define BOOST_URL_IMPL_ERROR_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/error.hpp>
#include <boost/url/grammar/error.hpp>
namespace boost {
namespace urls {
@ -67,7 +69,7 @@ default_error_condition(
case error::bad_pct_hexdig:
case error::incomplete_encoding:
case error::missing_pct_hexdig:
return grammar::condition::fatal;
return grammar::condition::fatal;
}
}
@ -81,11 +83,7 @@ return grammar::condition::fatal;
# pragma warning( disable : 4592 )
#endif
#if defined(__cpp_constinit) && __cpp_constinit >= 201907L
constinit error_cat_type error_cat;
#else
error_cat_type error_cat;
#endif
#if defined(_MSC_VER) && _MSC_VER <= 1900
# pragma warning( pop )

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_CI_STRING_IPP
#define BOOST_URL_GRAMMAR_IMPL_CI_STRING_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/ci_string.hpp>
namespace boost {

View File

@ -10,8 +10,11 @@
#ifndef BOOST_URL_IMPL_GRAMMAR_DEC_OCTET_RULE_IPP
#define BOOST_URL_IMPL_GRAMMAR_DEC_OCTET_RULE_IPP
#include <boost/url/grammar/dec_octet_rule.hpp>
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/dec_octet_rule.hpp>
#include <boost/url/grammar/digit_chars.hpp>
#include <boost/url/grammar/error.hpp>
namespace boost {
namespace urls {

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_DELIM_RULE_IPP
#define BOOST_URL_GRAMMAR_IMPL_DELIM_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/delim_rule.hpp>
namespace boost {

View File

@ -7,9 +7,8 @@
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_GRAMMAR_DETAIL_IMPL_RECYCLED_IPP
#define BOOST_URL_GRAMMAR_DETAIL_IMPL_RECYCLED_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/detail/recycled.hpp>
#include <cstdlib>
#include <utility>
#include <atomic>
@ -98,5 +97,3 @@ recycled_remove_impl(
} // grammar
} // urls
} // boost
#endif

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_ERROR_IPP
#define BOOST_URL_GRAMMAR_IMPL_ERROR_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/error.hpp>
namespace boost {
@ -95,6 +96,23 @@ message(
}
}
//-----------------------------------------------
// msvc 14.0 has a bug that warns about inability
// to use constexpr construction here, even though
// there's no constexpr construction
#if defined(_MSC_VER) && _MSC_VER <= 1900
# pragma warning( push )
# pragma warning( disable : 4592 )
#endif
error_cat_type error_cat;
condition_cat_type condition_cat;
#if defined(_MSC_VER) && _MSC_VER <= 1900
# pragma warning( pop )
#endif
} // detail
} // grammar

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_LITERAL_RULE_IPP
#define BOOST_URL_GRAMMAR_IMPL_LITERAL_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/error.hpp>
#include <boost/url/grammar/literal_rule.hpp>
#include <boost/assert.hpp>
#include <cstring>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_IMPL_STRING_VIEW_BASE_IPP
#define BOOST_URL_IMPL_STRING_VIEW_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/string_view_base.hpp>
#include <ostream>

View File

@ -10,8 +10,10 @@
#ifndef BOOST_URL_IMPL_IPV4_ADDRESS_IPP
#define BOOST_URL_IMPL_IPV4_ADDRESS_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/ipv4_address.hpp>
#include <boost/url/detail/except.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp>
#include <cstring>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_IPV6_ADDRESS_IPP
#define BOOST_URL_IMPL_IPV6_ADDRESS_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/ipv6_address.hpp>
#include <boost/url/ipv4_address.hpp>
#include <boost/url/rfc/ipv6_address_rule.hpp>
#include <boost/url/detail/except.hpp>
#include <boost/url/grammar/parse.hpp>

View File

@ -11,7 +11,10 @@
#ifndef BOOST_URL_IMPL_PARAMS_BASE_IPP
#define BOOST_URL_IMPL_PARAMS_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_base.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <ostream>
namespace boost {

View File

@ -11,7 +11,10 @@
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_BASE_IPP
#define BOOST_URL_IMPL_PARAMS_ENCODED_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_encoded_base.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <ostream>
namespace boost {

View File

@ -11,6 +11,8 @@
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_REF_IPP
#define BOOST_URL_IMPL_PARAMS_ENCODED_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_encoded_ref.hpp>
#include <boost/url/params_encoded_view.hpp>
#include <boost/url/url_base.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_VIEW_IPP
#define BOOST_URL_IMPL_PARAMS_ENCODED_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/params_encoded_view.hpp>
#include <boost/url/parse_query.hpp>

View File

@ -11,6 +11,8 @@
#ifndef BOOST_URL_IMPL_PARAMS_REF_IPP
#define BOOST_URL_IMPL_PARAMS_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_ref.hpp>
#include <boost/url/params_view.hpp>
#include <boost/url/url_base.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARAMS_VIEW_IPP
#define BOOST_URL_IMPL_PARAMS_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/params_view.hpp>
#include <boost/url/parse_query.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARSE_IPP
#define BOOST_URL_IMPL_PARSE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse.hpp>
#include <boost/url/rfc/absolute_uri_rule.hpp>
#include <boost/url/rfc/relative_ref_rule.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARSE_PATH_IPP
#define BOOST_URL_IMPL_PARSE_PATH_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse_path.hpp>
#include <boost/url/error.hpp>
#include <boost/url/detail/path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARSE_QUERY_IPP
#define BOOST_URL_IMPL_PARSE_QUERY_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse_query.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/grammar/parse.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_IMPL_PCT_STRING_VIEW_IPP
#define BOOST_URL_IMPL_PCT_STRING_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/error.hpp>
#include <boost/url/pct_string_view.hpp>
#include <boost/url/detail/decode.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_IMPL_ABSOLUTE_URI_RULE_IPP
#define BOOST_URL_RFC_IMPL_ABSOLUTE_URI_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/absolute_uri_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,8 +10,10 @@
#ifndef BOOST_URL_RFC_IMPL_AUTHORITY_RULE_IPP
#define BOOST_URL_RFC_IMPL_AUTHORITY_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/authority_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/rfc/detail/host_rule.hpp>

View File

@ -10,9 +10,11 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_H16_RULE_HPP
#define BOOST_URL_RFC_DETAIL_IMPL_H16_RULE_HPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/h16_rule.hpp>
#include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/error.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <boost/assert.hpp>
namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_HIER_PART_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_HIER_PART_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/hier_part_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/grammar/parse.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_HOST_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_HOST_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp>
#include <boost/url/rfc/detail/host_rule.hpp>
#include <boost/url/rfc/detail/ip_literal_rule.hpp>
#include <boost/url/rfc/detail/reg_name_rule.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_IMPL_IP_LITERAL_RULE_IPP
#define BOOST_URL_IMPL_IP_LITERAL_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv6_address_rule.hpp>
#include <boost/url/rfc/detail/ip_literal_rule.hpp>
#include <boost/url/ipv6_address.hpp>
#include <boost/url/grammar/delim_rule.hpp>

View File

@ -10,11 +10,13 @@
#ifndef BOOST_URL_DETAIL_IMPL_IPVFUTURE_RULE_IPP
#define BOOST_URL_DETAIL_IMPL_IPVFUTURE_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/ipvfuture_rule.hpp>
#include <boost/url/error.hpp>
#include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/token_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_IMPL_PORT_RULE_IPP
#define BOOST_URL_IMPL_PORT_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/port_rule.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/token_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_RELATIVE_PART_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_RELATIVE_PART_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/relative_part_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/grammar/parse.hpp>

View File

@ -10,10 +10,13 @@
#ifndef BOOST_URL_IMPL_SCHEME_RULE_IPP
#define BOOST_URL_IMPL_SCHEME_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/scheme_rule.hpp>
#include <boost/url/grammar/alpha_chars.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/grammar/lut_chars.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
namespace boost {
namespace urls {

View File

@ -10,9 +10,12 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_USERINFO_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_USERINFO_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/userinfo_rule.hpp>
#include <boost/url/string_view.hpp>
#include <boost/url/rfc/pct_encoded_rule.hpp>
#include <boost/url/rfc/sub_delim_chars.hpp>
#include <boost/url/rfc/unreserved_chars.hpp>
#include <boost/url/grammar/parse.hpp>
namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_IMPL_IPV4_ADDRESS_RULE_IPP
#define BOOST_URL_RFC_IMPL_IPV4_ADDRESS_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/dec_octet_rule.hpp>

View File

@ -10,10 +10,12 @@
#ifndef BOOST_URL_RFC_IMPL_IPV6_ADDRESS_RULE_IPP
#define BOOST_URL_RFC_IMPL_IPV6_ADDRESS_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv6_address_rule.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp>
#include <boost/url/rfc/detail/h16_rule.hpp>
#include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/assert.hpp>
#include <cstring>

View File

@ -10,9 +10,11 @@
#ifndef BOOST_URL_RFC_IMPL_ORIGIN_FORM_RULE_IPP
#define BOOST_URL_RFC_IMPL_ORIGIN_FORM_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/origin_form_rule.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/rfc/detail/query_part_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/range_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_IMPL_QUERY_RULE_IPP
#define BOOST_URL_RFC_IMPL_QUERY_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/error.hpp>

View File

@ -10,9 +10,11 @@
#ifndef BOOST_URL_RFC_IMPL_RELATIVE_REF_RULE_IPP
#define BOOST_URL_RFC_IMPL_RELATIVE_REF_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/relative_ref_rule.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/fragment_part_rule.hpp>
#include <boost/url/rfc/detail/query_part_rule.hpp>
#include <boost/url/rfc/detail/relative_part_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,11 +10,13 @@
#ifndef BOOST_URL_RFC_IMPL_URI_REFERENCE_RULE_IPP
#define BOOST_URL_RFC_IMPL_URI_REFERENCE_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/uri_reference_rule.hpp>
#include <boost/url/rfc/uri_rule.hpp>
#include <boost/url/rfc/relative_ref_rule.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/variant_rule.hpp>
#include <boost/variant2/variant.hpp>
namespace boost {
namespace urls {
@ -38,9 +40,9 @@ parse(
{
default:
case 0:
return get<0>(*rv);
return boost::variant2::get<0>(*rv);
case 1:
return get<1>(*rv);
return boost::variant2::get<1>(*rv);
}
}

View File

@ -10,10 +10,12 @@
#ifndef BOOST_URL_RFC_IMPL_URI_RULE_IPP
#define BOOST_URL_RFC_IMPL_URI_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/uri_rule.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/fragment_part_rule.hpp>
#include <boost/url/rfc/detail/hier_part_rule.hpp>
#include <boost/url/rfc/detail/query_part_rule.hpp>
#include <boost/url/rfc/detail/scheme_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_IMPL_SCHEME_IPP
#define BOOST_URL_IMPL_SCHEME_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/scheme.hpp>
#include <boost/url/grammar/ci_string.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_BASE_IPP
#define BOOST_URL_IMPL_SEGMENTS_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_base.hpp>
#include <ostream>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_BASE_IPP
#define BOOST_URL_IMPL_SEGMENTS_ENCODED_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_encoded_base.hpp>
#include <boost/assert.hpp>
#include <ostream>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_REF_IPP
#define BOOST_URL_IMPL_SEGMENTS_ENCODED_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_encoded_ref.hpp>
#include <boost/url/url.hpp>
#include <boost/url/detail/path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_VIEW_IPP
#define BOOST_URL_IMPL_SEGMENTS_ENCODED_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_encoded_view.hpp>
#include <boost/url/parse_path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_REF_IPP
#define BOOST_URL_IMPL_SEGMENTS_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_ref.hpp>
#include <boost/url/url.hpp>
#include <boost/url/detail/path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_VIEW_IPP
#define BOOST_URL_IMPL_SEGMENTS_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_view.hpp>
#include <boost/url/parse_path.hpp>

View File

@ -1,10 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
#include <boost/url/src.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_IMPL_STATIC_URL_IPP
#define BOOST_URL_IMPL_STATIC_URL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse.hpp>
#include <boost/url/static_url.hpp>
#include <boost/url/url_view.hpp>
#include <boost/url/detail/except.hpp>

View File

@ -11,7 +11,9 @@
#ifndef BOOST_URL_IMPL_URL_IPP
#define BOOST_URL_IMPL_URL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url.hpp>
#include <boost/url/parse.hpp>
#include <boost/assert.hpp>
namespace boost {
@ -98,8 +100,7 @@ clear_impl() noexcept
}
else
{
BOOST_ASSERT(impl_.cs_ ==
detail::empty_c_str_);
BOOST_ASSERT(impl_.cs_[0] == 0);
}
}

View File

@ -11,17 +11,23 @@
#ifndef BOOST_URL_IMPL_URL_BASE_IPP
#define BOOST_URL_IMPL_URL_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url_base.hpp>
#include <boost/url/encode.hpp>
#include <boost/url/error.hpp>
#include <boost/url/host_type.hpp>
#include <boost/url/scheme.hpp>
#include <boost/url/url_view.hpp>
#include <boost/url/detail/any_params_iter.hpp>
#include <boost/url/detail/any_segments_iter.hpp>
#include <boost/url/detail/decode.hpp>
#include <boost/url/detail/encode.hpp>
#include <boost/url/detail/except.hpp>
#include <boost/url/detail/move_chars.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/detail/path.hpp>
#include <boost/url/detail/print.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <boost/url/rfc/authority_rule.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/charsets.hpp>

View File

@ -11,7 +11,9 @@
#ifndef BOOST_URL_IMPL_URL_VIEW_IPP
#define BOOST_URL_IMPL_URL_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url_view.hpp>
#include <boost/url/parse.hpp>
#include <boost/url/detail/except.hpp>
namespace boost {

View File

@ -11,8 +11,11 @@
#ifndef BOOST_URL_IMPL_URL_VIEW_BASE_IPP
#define BOOST_URL_IMPL_URL_VIEW_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url_view_base.hpp>
#include <boost/url/url_view.hpp>
#include <boost/url/detail/except.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/detail/over_allocator.hpp>
namespace boost {

View File

@ -11,13 +11,14 @@ set(SUITE_FILES ../../extra/test_main.cpp ../../extra/test_suite.hpp)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES limits.cpp Jamfile)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../extra PREFIX "_extra" FILES ${SUITE_FILES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../src PREFIX "_extra" FILES ../../src/src.cpp)
add_executable(boost_url_limits limits.cpp Jamfile ${SUITE_FILES} ../../src/src.cpp)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../src PREFIX "url" FILES ${BOOST_URL_SOURCES})
add_library(boost_url_small_limits ${BOOST_URL_HEADERS} ${BOOST_URL_SOURCES})
boost_url_setup_properties(boost_url_small_limits)
target_compile_definitions(boost_url_small_limits PUBLIC BOOST_URL_MAX_SIZE=16 BOOST_URL_NO_LIB=1)
add_executable(boost_url_limits limits.cpp Jamfile ${SUITE_FILES})
target_include_directories(boost_url_limits PRIVATE ../../include ../../extra ../../..)
target_compile_definitions(boost_url_limits PRIVATE
BOOST_URL_MAX_SIZE=16
BOOST_URL_NO_LIB=1
)
if (BOOST_URL_FIND_PACKAGE_BOOST)
target_link_libraries(boost_url_limits PRIVATE Boost::headers)
else()
@ -30,6 +31,6 @@ else()
Boost::system
Boost::variant2)
endif()
target_link_libraries(boost_url_limits INTERFACE Boost::url)
target_link_libraries(boost_url_limits PRIVATE boost_url_small_limits)
add_test(NAME boost_url_limits COMMAND boost_url_limits)
add_dependencies(boost_url_all_tests boost_url_limits)

View File

@ -104,10 +104,13 @@ set(BOOST_URL_TESTS_FILES
)
set(SUITE_FILES ../../extra/test_main.cpp ../../extra/test_suite.hpp)
set(EXAMPLE_FILES ../../example/router/impl/matches.cpp ../../example/router/detail/impl/router.cpp)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${BOOST_URL_TESTS_FILES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../extra PREFIX "_extra" FILES ${SUITE_FILES})
add_executable(boost_url_tests ${BOOST_URL_TESTS_FILES} ${SUITE_FILES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../example/router PREFIX "_router" FILES ${EXAMPLE_FILES})
add_executable(boost_url_tests ${BOOST_URL_TESTS_FILES} ${SUITE_FILES} ${EXAMPLE_FILES})
target_include_directories(boost_url_tests PRIVATE . ../../extra)
target_include_directories(boost_url_tests PRIVATE ../../example/router)
# The include dependencies are found in the CMakeLists.txt
@ -121,11 +124,15 @@ target_link_libraries(boost_url_tests PRIVATE
add_test(NAME boost_url_tests COMMAND boost_url_tests)
add_dependencies(boost_url_all_tests boost_url_tests)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(boost_url_tests PUBLIC -Wno-error=unused-but-set-variable)
target_compile_options(
boost_url_tests
PUBLIC
-Wno-unused-but-set-variable
-Wno-unused-function)
if (TARGET boost_filesystem AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
get_target_property(FS_IS_IMPORTED boost_filesystem IMPORTED)
if (FS_IS_IMPORTED)
target_compile_options(boost_filesystem PUBLIC -Wno-error=restrict)
target_compile_options(boost_filesystem PUBLIC -Wno-restrict)
endif()
endif()
endif()

View File

@ -100,7 +100,6 @@ local SOURCES =
rfc/unreserved_chars.cpp
rfc/uri_rule.cpp
rfc/uri_reference_rule.cpp
example/router/router.cpp
compat/ada.cpp
;
for local f in $(SOURCES)
@ -109,3 +108,4 @@ for local f in $(SOURCES)
}
run doc_grammar.cpp /boost/url//boost_url : : : <warnings>off ;
run doc_3_urls.cpp /boost/url//boost_url : : : <warnings>off ;
run example/router/router.cpp ../../example/router/impl/matches.cpp ../../example/router/detail/impl/router.cpp /boost/url//boost_url : : : <warnings>off ;

View File

@ -13,7 +13,6 @@
#endif
#include "router.hpp"
#include "src.hpp"
#include "test_suite.hpp"