diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ce5e3275..f5be324a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,7 +4,14 @@
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
name: CI
-on: [ push, pull_request ]
+on:
+ push:
+ branches:
+ - master
+ - develop
+ pull_request:
+ release:
+ types: [published, created, edited]
jobs:
ubuntu-focal:
runs-on: ubuntu-20.04
@@ -27,7 +34,7 @@ jobs:
- name: Add repository
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
- run: sudo apt install g++-9 g++-10 clang-9 clang-10
+ run: sudo apt install g++-9 g++-10 clang-9 clang-10 libicu-dev
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
@@ -78,7 +85,7 @@ jobs:
- name: Add repository
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
- run: sudo apt install g++-7 g++-8 clang-7 clang-8
+ run: sudo apt install g++-7 g++-8 clang-7 clang-8 libicu-dev
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
@@ -331,6 +338,8 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: '0'
+ - name: Install packages
+ run: sudo apt install libicu-dev
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
@@ -352,3 +361,17 @@ jobs:
cmake ..
cmake --build .
cmake --build . --target check
+ rm -rf *
+ echo Standalone configuration
+ cmake -DBOOST_REGEX_STANDALONE=on ..
+ cmake --build .
+ cmake --build . --target check
+ cd ../../cmake_subdir_test_icu && mkdir __build__ && cd __build__
+ cmake ..
+ cmake --build .
+ cmake --build . --target check
+ rm -rf *
+ echo Standalone configuration
+ cmake -DBOOST_REGEX_STANDALONE=on ..
+ cmake --build .
+ cmake --build . --target check
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2fc093ef..ccd42230 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,11 +13,57 @@ add_library(Boost::regex ALIAS boost_regex)
target_include_directories(boost_regex INTERFACE include)
-target_link_libraries(boost_regex
- INTERFACE
- Boost::config
- Boost::throw_exception
- Boost::predef
- Boost::assert
-)
+option(BOOST_REGEX_STANDALONE "Boost.Regex: Enable Standalone Mode (i.e. no Boost dependencies)")
+
+if(NOT BOOST_REGEX_STANDALONE)
+
+ target_link_libraries(boost_regex
+ INTERFACE
+ Boost::config
+ Boost::throw_exception
+ Boost::predef
+ Boost::assert
+ )
+
+else()
+
+ target_compile_definitions(boost_regex
+ INTERFACE BOOST_REGEX_STANDALONE
+ )
+
+endif()
+
+find_package(ICU COMPONENTS data i18n uc QUIET)
+#option(BOOST_REGEX_ENABLE_ICU "Boost.Regex: enable ICU support" ${ICU_FOUND})
+
+if(ICU_FOUND)
+
+ add_library(boost_regex_icu INTERFACE)
+ add_library(Boost::regex_icu ALIAS boost_regex_icu)
+
+ target_include_directories(boost_regex_icu INTERFACE include)
+
+ if(NOT BOOST_REGEX_STANDALONE)
+
+ target_link_libraries(boost_regex_icu
+ INTERFACE
+ Boost::config
+ Boost::throw_exception
+ Boost::predef
+ Boost::assert
+ )
+
+ else()
+
+ target_compile_definitions(boost_regex_icu
+ INTERFACE BOOST_REGEX_STANDALONE
+ )
+
+ endif()
+
+ find_package(ICU COMPONENTS data i18n uc REQUIRED)
+
+ target_link_libraries(boost_regex_icu INTERFACE ICU::data ICU::i18n ICU::uc)
+
+endif()
diff --git a/doc/html/boost_regex/background.html b/doc/html/boost_regex/background.html
index 426e00dc..56e8ac4e 100644
--- a/doc/html/boost_regex/background.html
+++ b/doc/html/boost_regex/background.html
@@ -4,8 +4,8 @@
Background Information
-
-
+
+
diff --git a/doc/html/boost_regex/background/acknowledgements.html b/doc/html/boost_regex/background/acknowledgements.html
index af25e802..a129b3ff 100644
--- a/doc/html/boost_regex/background/acknowledgements.html
+++ b/doc/html/boost_regex/background/acknowledgements.html
@@ -4,7 +4,7 @@
Acknowledgements
-
+
diff --git a/doc/html/boost_regex/background/examples.html b/doc/html/boost_regex/background/examples.html
index 4c8fb18f..5222e586 100644
--- a/doc/html/boost_regex/background/examples.html
+++ b/doc/html/boost_regex/background/examples.html
@@ -4,7 +4,7 @@
Test and Example Programs
-
+
diff --git a/doc/html/boost_regex/background/faq.html b/doc/html/boost_regex/background/faq.html
index c5c60367..9928883c 100644
--- a/doc/html/boost_regex/background/faq.html
+++ b/doc/html/boost_regex/background/faq.html
@@ -4,7 +4,7 @@
FAQ
-
+
diff --git a/doc/html/boost_regex/background/futher.html b/doc/html/boost_regex/background/futher.html
index 14f59e3f..6501b1be 100644
--- a/doc/html/boost_regex/background/futher.html
+++ b/doc/html/boost_regex/background/futher.html
@@ -4,7 +4,7 @@
References and Further Information
-
+
diff --git a/doc/html/boost_regex/background/headers.html b/doc/html/boost_regex/background/headers.html
index 88707122..ea964e17 100644
--- a/doc/html/boost_regex/background/headers.html
+++ b/doc/html/boost_regex/background/headers.html
@@ -4,7 +4,7 @@
Headers
-
+
diff --git a/doc/html/boost_regex/background/history.html b/doc/html/boost_regex/background/history.html
index 8421ab54..f329fd41 100644
--- a/doc/html/boost_regex/background/history.html
+++ b/doc/html/boost_regex/background/history.html
@@ -4,7 +4,7 @@
History
-
+
@@ -36,6 +36,33 @@
+
+-
+ Breaking Change: Change \B to be the
+ opposite of \b as per Perl behaviour.
+
+-
+ Change w32_regex_traits.hpp so that windows.h is no longer included.
+
+
+
+
+-
+ Big change to header only library.
+
+-
+ Deprecate C++03 support.
+
+
+
@@ -43,7 +70,7 @@
Minor build fixes, see #89.
@@ -57,7 +84,7 @@
@@ -78,7 +105,7 @@
@@ -86,7 +113,7 @@
Change to lockfree implementation of memory cache, see PR#23.
@@ -109,7 +136,7 @@
@@ -142,7 +169,7 @@
@@ -175,14 +202,14 @@
Fixed issue #8569.
@@ -190,7 +217,7 @@
#7644.
@@ -200,7 +227,7 @@
#6346.
@@ -209,7 +236,7 @@
expression.
@@ -219,7 +246,7 @@
#5736.
@@ -232,7 +259,7 @@
#5504.
@@ -251,7 +278,7 @@
#3890
@@ -280,7 +307,7 @@
@@ -289,7 +316,7 @@
branch resets and recursive regular expressions.
@@ -317,7 +344,7 @@
@@ -340,7 +367,7 @@
@@ -410,7 +437,7 @@
@@ -465,7 +492,7 @@
@@ -473,7 +500,7 @@
Fixed bug in partial matches of bounded repeats of '.'.
diff --git a/doc/html/boost_regex/background/locale.html b/doc/html/boost_regex/background/locale.html
index e679a550..5d5f0cd2 100644
--- a/doc/html/boost_regex/background/locale.html
+++ b/doc/html/boost_regex/background/locale.html
@@ -4,7 +4,7 @@
Localization
-
+
diff --git a/doc/html/boost_regex/background/performance.html b/doc/html/boost_regex/background/performance.html
index 3a0ca9ad..e84f6465 100644
--- a/doc/html/boost_regex/background/performance.html
+++ b/doc/html/boost_regex/background/performance.html
@@ -4,7 +4,7 @@
Performance
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id1378460593.html b/doc/html/boost_regex/background/performance/section_id1378460593.html
index 872020dc..60b9852e 100644
--- a/doc/html/boost_regex/background/performance/section_id1378460593.html
+++ b/doc/html/boost_regex/background/performance/section_id1378460593.html
@@ -4,7 +4,7 @@
Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 6.3.0)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id1675827111.html b/doc/html/boost_regex/background/performance/section_id1675827111.html
index 72b2bc8c..43cafa56 100644
--- a/doc/html/boost_regex/background/performance/section_id1675827111.html
+++ b/doc/html/boost_regex/background/performance/section_id1675827111.html
@@ -4,7 +4,7 @@
Testing Perl searches (platform = linux, compiler = GNU C++ version 6.3.0)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id3141719723.html b/doc/html/boost_regex/background/performance/section_id3141719723.html
index 129834c6..b9c91f9d 100644
--- a/doc/html/boost_regex/background/performance/section_id3141719723.html
+++ b/doc/html/boost_regex/background/performance/section_id3141719723.html
@@ -4,7 +4,7 @@
Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id3258595385.html b/doc/html/boost_regex/background/performance/section_id3258595385.html
index 716f62b9..ecc996e6 100644
--- a/doc/html/boost_regex/background/performance/section_id3258595385.html
+++ b/doc/html/boost_regex/background/performance/section_id3258595385.html
@@ -4,7 +4,7 @@
Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id3261825021.html b/doc/html/boost_regex/background/performance/section_id3261825021.html
index b71be600..b243694a 100644
--- a/doc/html/boost_regex/background/performance/section_id3261825021.html
+++ b/doc/html/boost_regex/background/performance/section_id3261825021.html
@@ -4,7 +4,7 @@
Testing simple Perl matches (platform = linux, compiler = GNU C++ version 6.3.0)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id3752650613.html b/doc/html/boost_regex/background/performance/section_id3752650613.html
index 67b83440..ac11c594 100644
--- a/doc/html/boost_regex/background/performance/section_id3752650613.html
+++ b/doc/html/boost_regex/background/performance/section_id3752650613.html
@@ -4,7 +4,7 @@
Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id4128344975.html b/doc/html/boost_regex/background/performance/section_id4128344975.html
index 89720415..d77b3ae2 100644
--- a/doc/html/boost_regex/background/performance/section_id4128344975.html
+++ b/doc/html/boost_regex/background/performance/section_id4128344975.html
@@ -4,7 +4,7 @@
Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)
-
+
diff --git a/doc/html/boost_regex/background/performance/section_id4148872883.html b/doc/html/boost_regex/background/performance/section_id4148872883.html
index 8495bf1a..f9876309 100644
--- a/doc/html/boost_regex/background/performance/section_id4148872883.html
+++ b/doc/html/boost_regex/background/performance/section_id4148872883.html
@@ -4,7 +4,7 @@
Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 6.3.0)
-
+
diff --git a/doc/html/boost_regex/background/redist.html b/doc/html/boost_regex/background/redist.html
index ef12c43f..4f85a62a 100644
--- a/doc/html/boost_regex/background/redist.html
+++ b/doc/html/boost_regex/background/redist.html
@@ -4,7 +4,7 @@
Redistributables
-
+
diff --git a/doc/html/boost_regex/background/standards.html b/doc/html/boost_regex/background/standards.html
index aeecebf3..817b51fb 100644
--- a/doc/html/boost_regex/background/standards.html
+++ b/doc/html/boost_regex/background/standards.html
@@ -4,7 +4,7 @@
Standards Conformance
-
+
diff --git a/doc/html/boost_regex/background/thread_safety.html b/doc/html/boost_regex/background/thread_safety.html
index 1f1fb819..7ba59e9a 100644
--- a/doc/html/boost_regex/background/thread_safety.html
+++ b/doc/html/boost_regex/background/thread_safety.html
@@ -4,7 +4,7 @@
Thread Safety
-
+
diff --git a/doc/html/boost_regex/captures.html b/doc/html/boost_regex/captures.html
index 55e59822..ef532ae5 100644
--- a/doc/html/boost_regex/captures.html
+++ b/doc/html/boost_regex/captures.html
@@ -4,8 +4,8 @@
Understanding Marked Sub-Expressions and Captures
-
-
+
+
diff --git a/doc/html/boost_regex/configuration.html b/doc/html/boost_regex/configuration.html
index bfc70b20..0f2e9468 100644
--- a/doc/html/boost_regex/configuration.html
+++ b/doc/html/boost_regex/configuration.html
@@ -4,9 +4,9 @@
Configuration
-
-
-
+
+
+
@@ -28,6 +28,8 @@