When URL was configured with cmake `-D BUILD_TESTING=ON` and then reconfigured with cmake `-D BUILD_TESTING=OFF`, tests would remain enabled. That's because `BUILD_TESTING` was only used once as the default value of `BOOST_URL_BUILD_TESTS` being cached. That's not how all other Boost libraries work.
This commit makes tests rely on `BUILD_TESTING` and, for backwards compatibility, `BOOST_URL_BUILD_TESTS` is only available as an extra option to enable Boost.URL tests even if `BUILD_TESTING` is `OFF`.
fix#805
The updated CI workflows include building Boost.URL with the Boost super-project as the project root, with Boost.URL as the project root, building a project that adds the Boost super-project as a subdirectory, a project that adds Boost.URL as a subdirectory, that finds Boost as a package and that finds Boost.URL as a package.
fix#796
Although c518dbaa already included BOOST_SRC_DIR and removed support for standalone installation, this PR enforces that appropriate BOOST_INCLUDE_LIBRARIES are set according to the build options.
fix#679
The Rule concept is changed:
* rules are stateful values
* nested value_type holds the result of parsing
* member function `Rule::parse` is the algorithm
* parse returns `result<value_type>`
And:
* All rfc3986 rules are reimplemented
* New grammar non-terminal elements introduced:
- char_rule
- not_empty_rule
- optional_rule
- sequence_rule
- variant_rule