From 4b3af6b3d6a4369dbfb5daef584b43b0e2b21a22 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Sun, 6 Sep 2026 05:21:51 +1000 Subject: [PATCH 1/4] squash-commit (ss/cmake-fix) --- .github/workflows/ci.yml | 41 ++++++++++++++++++++++++++++++--- CHANGES.md | 1 + cmake/pantheios-config.cmake.in | 18 ++++++++++++++- projects/core/CMakeLists.txt | 14 +++++++---- 4 files changed, 66 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1864533..9841dcf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,7 @@ on: - rc1 - rc2 - rc3 + - cmake-fix pull_request: concurrency: @@ -100,13 +101,15 @@ jobs: mingw-w64-x86_64-cmake mingw-w64-x86_64-make - - name: Install STLSoft dependency + - name: Install STLSoft and b64 dependencies shell: bash run: | set -euo pipefail DEPS="${RUNNER_TEMP}/sis-deps" STLSRC="${RUNNER_TEMP}/stlsoft-src" STLBUILD="${RUNNER_TEMP}/stlsoft-build" + B64SRC="${RUNNER_TEMP}/b64-src" + B64BUILD="${RUNNER_TEMP}/b64-build" mkdir -p "$DEPS" git clone --depth 1 https://github.com/synesissoftware/STLSoft "$STLSRC" if [ "${{ matrix.c_compiler }}" = "cl" ]; then @@ -137,6 +140,38 @@ jobs: cmake --build "$STLBUILD" --parallel cmake --install "$STLBUILD" fi + git clone --depth 1 https://github.com/synesissoftware/b64 "$B64SRC" + if [ "${{ matrix.c_compiler }}" = "cl" ]; then + cmake -S "$B64SRC" -B "$B64BUILD" \ + -DCMAKE_DISABLE_FIND_PACKAGE_MFC=TRUE \ + -DCMAKE_PREFIX_PATH="$DEPS" \ + -DCMAKE_INSTALL_PREFIX="$DEPS" \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_TESTING=OFF + cmake --build "$B64BUILD" --config "${{ env.BUILD_TYPE }}" --parallel + cmake --install "$B64BUILD" --config "${{ env.BUILD_TYPE }}" + elif [ "${{ matrix.c_compiler }}" = "mingw" ]; then + export PATH="/mingw64/bin:$PATH" + cmake -S "$B64SRC" -B "$B64BUILD" -G "MinGW Makefiles" \ + -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" \ + -DCMAKE_PREFIX_PATH="$DEPS" \ + -DCMAKE_INSTALL_PREFIX="$DEPS" \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_TESTING=OFF + cmake --build "$B64BUILD" --parallel 2 + cmake --install "$B64BUILD" + else + cmake -S "$B64SRC" -B "$B64BUILD" \ + -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" \ + -DCMAKE_C_COMPILER="${{ matrix.c_compiler }}" \ + -DCMAKE_CXX_COMPILER="${{ matrix.cpp_compiler }}" \ + -DCMAKE_PREFIX_PATH="$DEPS" \ + -DCMAKE_INSTALL_PREFIX="$DEPS" \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_TESTING=OFF + cmake --build "$B64BUILD" --parallel + cmake --install "$B64BUILD" + fi echo "SIS_DEPS=$DEPS" >> "$GITHUB_ENV" - name: Configure @@ -209,8 +244,8 @@ jobs: cat > "$CONSUMER/CMakeLists.txt" <<'EOF' cmake_minimum_required(VERSION 3.13) project(pantheios_install_smoke CXX) - find_package(STLSoft REQUIRED) - find_package(Pantheios REQUIRED) + # STLSoft and b64 must come from pantheios-config.cmake's find_dependency(). + find_package(pantheios REQUIRED) add_executable(consumer consumer.cpp) # Link order matters for GNU ld (static archives are single-pass): # dependents before providers — matches in-tree example link order. diff --git a/CHANGES.md b/CHANGES.md index 3b522f23..f54643dc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,7 @@ * documentation modernisation: **CHANGES.md** (from **CHANGES.txt**), removal of **HISTORY.md** and **README.txt**, and updates to **README.md**, **FAQ.md**, **INSTALL.md**, **TODO.md**, **KNOWN_ISSUES.md**, **AUTHORS.md**, and **HOW_YOU_CAN_HELP.md**; * new stock back-end **bec.AnsiConsole** / **be.AnsiConsole** (bel/ber, colouring flags, argument parsing, unit and scratch tests); * **CMake** enhancements: **Threads** / `PANTHEIOS_FORCE_MT`, `BUILD_TESTING`, optional **b64** via `NO_B64` / **`--no-b64`**, CMP0177, lowercase export package (**`pantheios-config.cmake`**), improved **STLSoft** include handling, and **`_BUILD_AS_UNIX`** / **`_BUILD_AS_WIN32`** OS discrimination; +* **CMake** package config: `find_dependency()` for **STLSoft** and (when built with it) **b64**, so consumers of **`Pantheios::Pantheios.core`** no longer see a missing **`b64::core`** imported target; * modern composite **`PANTHEIOS_VER`** (`MAJOR` / `MINOR` / `PATCH` / `ALPHABETA`); **`test.unit.getversion`** covers those fields via **xTests** terse-api assertions; scratch **`libver`** + top-level **`libver.sh`**; * helper scripts: **`.sis/project_name.txt`** / **`.sis/script_info_lines.txt`** wired into **`--help`** and status messages; **run_all_examples.sh**; **run_all_unit_tests.sh** gains **`--unit-only`** / **`--component-only`**; test runners exclude **`*.log`** from discovery; * **bec.file**: create log files without execute permission (was `S_IRWXU`/`S_IRWXG`, which made suite-named logs executable and runnable by test discovery); diff --git a/cmake/pantheios-config.cmake.in b/cmake/pantheios-config.cmake.in index 82620719..9f320434 100644 --- a/cmake/pantheios-config.cmake.in +++ b/cmake/pantheios-config.cmake.in @@ -1,3 +1,19 @@ @PACKAGE_INIT@ -include("${CMAKE_CURRENT_LIST_DIR}/@EXPORT_NAME@-targets.cmake") +include(CMakeFindDependencyMacro) + +# STLSoft is a public/header dependency of Pantheios targets when the +# package was discovered via find_package() at build time. +if(@STLSoft_FOUND@) + + find_dependency(STLSoft) +endif() + +# b64 is linked into Pantheios.core (static) when present at build time, +# so consumers must have the imported target available. +if(@b64_FOUND@) + + find_dependency(b64) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/@EXPORT_NAME@-targets.cmake") diff --git a/projects/core/CMakeLists.txt b/projects/core/CMakeLists.txt index b802b1f9..b2cf817b 100644 --- a/projects/core/CMakeLists.txt +++ b/projects/core/CMakeLists.txt @@ -36,10 +36,16 @@ target_include_directories(Pantheios.core target_link_STLSoft(Pantheios.core) -target_link_libraries(Pantheios.core - PRIVATE - $<$: b64::core > -) +# Link b64 only when discovered at configure time. Prefer a plain +# target_link_libraries() over a generator expression so the exported +# interface records `$` cleanly (static lib). +if(b64_FOUND) + + target_link_libraries(Pantheios.core + PRIVATE + b64::core + ) +endif(b64_FOUND) define_target_compile_options(Pantheios.core) From 8e33d437728f39a2d0e5d62c7db77104bf1e5af1 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Sun, 6 Sep 2026 15:08:38 +1000 Subject: [PATCH 2/4] squash-commit (mwsis/cmake-dependencies-fix) --- .github/workflows/ci.yml | 9 ++- .vscode/settings.json | 15 +++++ CHANGES.md | 10 ++- INSTALL.md | 8 +-- KNOWN_ISSUES.md | 4 +- NEWS.md | 1 + cmake/pantheios-config.cmake.in | 61 +++++++++++++++++-- include/pantheios/pantheios.h | 5 +- .../test.unit.getversion.c | 4 +- 9 files changed, 99 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9841dcf2..cfdca4f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,14 +3,17 @@ name: CI on: push: branches: - - boilerplate + - master - dev + - boilerplate + - cmake-fix - idiomatic - - master - rc1 - rc2 - rc3 - - cmake-fix + - rc4 + - rc5 + - update pull_request: concurrency: diff --git a/.vscode/settings.json b/.vscode/settings.json index 3fe51d2b..a20fc3ce 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,8 @@ "editor.tabSize": 4, }, "[c]": { + "editor.defaultFormatter": "ms-vscode.cpptools", + "editor.formatOnSave": true, "editor.insertSpaces": true, "editor.rulers": [ 60, 64, 68, 72, 76 ], "editor.tabSize": 4, @@ -14,6 +16,8 @@ "editor.tabSize": 4, }, "[cpp]": { + "editor.defaultFormatter": "ms-vscode.cpptools", + "editor.formatOnSave": true, "editor.insertSpaces": true, "editor.rulers": [ 60, 64, 68, 72, 76 ], "editor.tabSize": 4, @@ -49,7 +53,17 @@ "editor.insertSpaces": true, "editor.tabSize": 2, }, + "C_Cpp.autocompleteAddParentheses": true, + "C_Cpp.clang_format_fallbackStyle": "none", + "C_Cpp.clang_format_style": "file", + "C_Cpp.default.cStandard": "c17", + "C_Cpp.default.cppStandard": "c++17", + "C_Cpp.enhancedColorization": "enabled", + "C_Cpp.errorSquiggles": "enabled", + "C_Cpp.formatting": "clangFormat", + "C_Cpp.intelliSenseEngine": "default", "cmake.configureOnOpen": false, + "debug.allowBreakpointsEverywhere": true, "editor.detectIndentation": false, "editor.insertSpaces": false, "editor.renderWhitespace": "all", @@ -128,6 +142,7 @@ "numeric": "cpp", "optional": "cpp", "ostream": "cpp", + "print": "cpp", "queue": "cpp", "random": "cpp", "ranges": "cpp", diff --git a/CHANGES.md b/CHANGES.md index f54643dc..4ba63b84 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,12 @@ -# Pantheios - CHANGES +# Pantheios - Changes + + +## 1.0.1-rc2 - 6th September 2026 + +* **CMake** package configuration: loaded `CMakeFindDependencyMacro` and added conditional `find_dependency()` calls for **STLSoft** and **b64** in **`pantheios-config.cmake`**; ensures exported static targets (such as `Pantheios::Pantheios.core`) provide transitive interface link dependencies (`b64::core`, `STLSoft::STLSoft`) to downstream consumers without requiring callers to invoke `find_package(b64)` manually; +* version definition: added `PANTHEIOS_VER_1_0_1_RC2` (`0x010001e2`) and updated `PANTHEIOS_VER` to RC2 in **include/pantheios/pantheios.h**; +* tooling and configuration: added **`.vscode/settings.json`**; +* documentation and release alignment: updated **NEWS.md**, **INSTALL.md**, and **KNOWN_ISSUES.md** for the 1.0.1-rc2 release; ## 1.0.1-rc1 - 5th August 2026 diff --git a/INSTALL.md b/INSTALL.md index 3987dedd..ef4e3e34 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -46,7 +46,7 @@ The **prepare_cmake.sh** script has a bunch of command-line flags/options to cus ```plaintext Pantheios is an efficient, flexible, and robust C/C++ diagnostic logging library -Copyright (c) 2019-2024, Matthew Wilson and Synesis Information Systems +Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems Copyright (c) 2005-2019, Matthew Wilson and Synesis Software Creates/reinitialises the CMake build script(s) @@ -128,7 +128,7 @@ $ sudo cmake --install ${SIS_CMAKE_BUILD_DIR:-./_build} --config Release 1. Download the latest distributions; Obtain the latest releases of **Pantheios** and **STLSoft** from: -* [Pantheios GitHub project](https://github.com/synesissoftware/Pantheios/tags), e.g. [**Pantheios-1.0.1-rc1.zip**](https://github.com/synesissoftware/Pantheios/archive/refs/tags/1.0.1-rc1.zip); +* [Pantheios GitHub project](https://github.com/synesissoftware/Pantheios/tags), e.g. [**Pantheios-1.0.1-rc2.zip**](https://github.com/synesissoftware/Pantheios/archive/refs/tags/1.0.1-rc2.zip); * [STLSoft GitHub project](https://github.com/synesissoftware/STLSoft/tags), e.g. [**STLSoft-1.11.1-rc4**](https://github.com/synesissoftware/STLSoft/archive/refs/tags/STLSoft-1.11.1-rc4); @@ -137,7 +137,7 @@ Obtain the latest releases of **Pantheios** and **STLSoft** from: ```bash $ mkdir -p ~/open-source $ cd ~/open-source -$ unzip Pantheios-1.0.1-rc1.zip +$ unzip Pantheios-1.0.1-rc2.zip $ unzip STLSoft-1.11.1-rc4 ``` @@ -146,7 +146,7 @@ $ unzip STLSoft-1.11.1-rc4 4. Select and change to the appropriate build subdirectory under your **Pantheios** directory, e.g. **build/gcc48.unix**, and then execute make ```bash -$ cd Pantheios-1.0.1-rc1 +$ cd Pantheios-1.0.1-rc2 $ cd build/gcc48.unix $ make ``` diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 40c0e6a5..210c1344 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -1,13 +1,13 @@ # Pantheios - Known Issues -## Pantheios 1.0.1-rc1 Known Issues +## Pantheios 1.0.1-rc2 Known Issues * still a few build artefacts not cleaned up for some makefiles; * distribution contains makefiles and project files for obsolete compilers (such as VC++ 5, Comeau, …); -## Pantheios 1.0.1-rc1 Suspected Issues +## Pantheios 1.0.1-rc2 Suspected Issues * \ diff --git a/NEWS.md b/NEWS.md index 2cf4c59d..51dc7b96 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ | Date | News Item | | -------------- | -------------------------------------------------------------------------------- | +| 6th Sep 2026 | [Pantheios 1.0.1-rc2 released](https://github.com/synesissoftware/Pantheios/releases/tag/1.0.1-rc2) | | 5th Aug 2026 | [Pantheios 1.0.1-rc1 released](https://github.com/synesissoftware/Pantheios/releases/tag/1.0.1-rc1) | | 18th Nov 2024 | Pantheios 1.0.1-beta222 released | | 24th Oct 2024 | Pantheios 1.0.1-beta221 released | diff --git a/cmake/pantheios-config.cmake.in b/cmake/pantheios-config.cmake.in index 9f320434..1428748d 100644 --- a/cmake/pantheios-config.cmake.in +++ b/cmake/pantheios-config.cmake.in @@ -2,15 +2,68 @@ include(CMakeFindDependencyMacro) -# STLSoft is a public/header dependency of Pantheios targets when the -# package was discovered via find_package() at build time. +# ########################################################################## +# Transitive Dependencies +# +# Pantheios builds and exports static library targets +# (Pantheios::Pantheios.core, back-ends, front-ends, and utilities). +# +# In CMake, private link dependencies of static libraries are exported into +# INTERFACE_LINK_LIBRARIES (wrapped in $) in the generated +# pantheios-targets.cmake file so downstream consumers linking static +# archives can resolve all referenced symbols at final link time. +# +# When downstream consumers call find_package(pantheios), CMake loads +# pantheios-targets.cmake and verifies that any targets named in +# INTERFACE_LINK_LIBRARIES already exist in the imported target namespace. +# If an imported target (e.g. b64::core or STLSoft::STLSoft) has not been +# defined yet, CMake reports a configuration error: +# +# "The link interface of target ... contains: ... but the target was not found." +# +# and the build fails during linking because the linker attempts to resolve +# the target name as a literal file or library flag (e.g. -lb64::core). +# +# Using CMakeFindDependencyMacro's find_dependency() solves this by cleanly +# loading the required imported target definitions while forwarding the +# calling project's QUIET and REQUIRED flags. +# +# Why these calls are strictly CONDITIONAL: +# +# 1. STLSoft (@STLSoft_FOUND@): +# Pantheios public headers and internals depend on STLSoft. When +# Pantheios was configured and built with STLSoft discovered via CMake +# find_package() (@STLSoft_FOUND@ is true), exported targets reference +# STLSoft::STLSoft, and downstream consumers must find that CMake +# package. If STLSoft was provided via a manual include path (e.g. via +# the STLSOFT variable or environment variable without CMake package +# export), @STLSoft_FOUND@ is empty/false and no CMake target dependency +# is exported or required. +# +# 2. b64 (@b64_FOUND@): +# b64 is an OPTIONAL dependency for Pantheios, providing the +# pantheios::b64 inserter class in Pantheios.core. +# - If Pantheios was built WITH b64 (@b64_FOUND@ is true), Pantheios.core +# compiles b64 support and links b64::core. The exported targets file +# therefore requires b64::core in its link interface, and downstream +# consumers must locate b64. +# - If Pantheios was built WITHOUT b64 (e.g. via NO_B64 or because b64 +# was not present at build time), b64 support is omitted and +# pantheios-targets.cmake contains no reference to b64::core. In that +# scenario, calling find_dependency(b64) unconditionally would fail on +# systems where b64 is not installed, needlessly breaking downstream +# consumers. +# +# Guarding with @STLSoft_FOUND@ and @b64_FOUND@ ensures downstream discovery +# precisely mirrors the dependencies linked into the installed Pantheios +# binary. +# ########################################################################## + if(@STLSoft_FOUND@) find_dependency(STLSoft) endif() -# b64 is linked into Pantheios.core (static) when present at build time, -# so consumers must have the imported target available. if(@b64_FOUND@) find_dependency(b64) diff --git a/include/pantheios/pantheios.h b/include/pantheios/pantheios.h index 0c367acf..373391d8 100644 --- a/include/pantheios/pantheios.h +++ b/include/pantheios/pantheios.h @@ -4,7 +4,7 @@ * Purpose: Pantheios Core and Util APIs. * * Created: 21st June 2005 - * Updated: 5th August 2026 + * Updated: 6th September 2026 * * Home: http://www.pantheios.org/ * @@ -118,13 +118,14 @@ # endif # define PANTHEIOS_VER_1_0_1_B224 0x010001e0 # define PANTHEIOS_VER_1_0_1_RC1 0x010001e1 /* NOTE: e1 is required just to step over the prior 1.0.1 beta version values */ +# define PANTHEIOS_VER_1_0_1_RC2 0x010001e2 # define PANTHEIOS_VER_1_0_1 0x010001ff #endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */ #define PANTHEIOS_VER_MAJOR 1 #define PANTHEIOS_VER_MINOR 0 #define PANTHEIOS_VER_PATCH 1 -#define PANTHEIOS_VER_ALPHABETA 0xE1 +#define PANTHEIOS_VER_ALPHABETA 0xE2 #define PANTHEIOS_VER \ (0\ diff --git a/test/unit/test.unit.getversion/test.unit.getversion.c b/test/unit/test.unit.getversion/test.unit.getversion.c index 79f70892..f888a7b3 100644 --- a/test/unit/test.unit.getversion/test.unit.getversion.c +++ b/test/unit/test.unit.getversion/test.unit.getversion.c @@ -4,7 +4,7 @@ * Purpose: Implementation file for the test.unit.getversion project. * * Created: 28th August 2008 - * Updated: 4th August 2026 + * Updated: 6th September 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -151,7 +151,7 @@ static void test_composite(void) TEST_INT_EQ(expected, PANTHEIOS_VER); TEST_INT_EQ(expected, pantheios_getVersion()); - TEST_INT_EQ(PANTHEIOS_VER_1_0_1_RC1, PANTHEIOS_VER); + TEST_INT_EQ(PANTHEIOS_VER_1_0_1_RC2, PANTHEIOS_VER); } From a83891daee14ad78463cdacbe5ffabd79a2f8c72 Mon Sep 17 00:00:00 2001 From: synesissoftware Date: Sun, 6 Sep 2026 15:46:30 +1000 Subject: [PATCH 3/4] fix(cmake): find_dependency for STLSoft/b64 in pantheios-config (#36) * fix(cmake): find_dependency for STLSoft/b64 in pantheios-config Exported Pantheios.core records $ (and STLSoft) when built with b64; without find_dependency(), consumers saw a missing b64::core imported target. Wire find_dependency into pantheios-config, link b64 with a plain if(b64_FOUND) so the export is clean, and update install-smoke to rely on that (install b64 in CI; find_package(pantheios) only). * ci * squash-commit --- cmake/pantheios-config.cmake.in | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/pantheios-config.cmake.in b/cmake/pantheios-config.cmake.in index 1428748d..a1761369 100644 --- a/cmake/pantheios-config.cmake.in +++ b/cmake/pantheios-config.cmake.in @@ -6,7 +6,8 @@ include(CMakeFindDependencyMacro) # Transitive Dependencies # # Pantheios builds and exports static library targets -# (Pantheios::Pantheios.core, back-ends, front-ends, and utilities). +# (Pantheios::Pantheios.core, Pantheios::Pantheios.util, back-ends, +# front-ends, and utilities). # # In CMake, private link dependencies of static libraries are exported into # INTERFACE_LINK_LIBRARIES (wrapped in $) in the generated @@ -24,8 +25,8 @@ include(CMakeFindDependencyMacro) # and the build fails during linking because the linker attempts to resolve # the target name as a literal file or library flag (e.g. -lb64::core). # -# Using CMakeFindDependencyMacro's find_dependency() solves this by cleanly -# loading the required imported target definitions while forwarding the +# Using CMakeFindDependencyMacro's find_dependency() solves this by loading +# cleanly the required imported target definitions while forwarding the # calling project's QUIET and REQUIRED flags. # # Why these calls are strictly CONDITIONAL: @@ -70,3 +71,7 @@ if(@b64_FOUND@) endif() include("${CMAKE_CURRENT_LIST_DIR}/@EXPORT_NAME@-targets.cmake") + + +# ############################## end of file ############################# # + From 2a3c38290ad5998ef5360690139f5dde9fc102a5 Mon Sep 17 00:00:00 2001 From: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:54:15 +1000 Subject: [PATCH 4/4] Cmake dependencies fix (#39) * **bec.AnsiConsole** - preparatory steps (#21) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * Merged 'dev' into 'bec-ansi' Squashed commit of the following: commit 40696f77df2505a008820f37ba816056f70ac716 Author: Matt Wilson Date: Mon Nov 18 12:46:30 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit c99e3c6a61d647c75ec09e0e9e467688aa777d14 Merge: 048bde5 08ba266 Author: synesissoftware Date: Mon Nov 18 12:41:36 2024 +1100 Merge pull request #20 from mwsis/boilerplate ~ boilerplate commit 08ba266378d3b5c91a1a6ff9c42d8bc495606ac8 Author: Matt Wilson Date: Mon Nov 18 11:32:02 2024 +1100 ~ boilerplate commit 048bde568e505821e3fce901ff158df9921e1a99 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Mon Nov 18 09:49:05 2024 +1100 MVSC MT (RT static linking) (#19) * + added MSVC MT support * ~ ensuring **b64** is included in dependencies for example programs * ~ fixing up dependencies * ~ updated dependency on **xTests** 0.25.4 * boilerplate commit c11906dfc96432111797f19225ebe7a669402d96 Author: Matt Wilson Date: Mon Oct 28 13:22:08 2024 +1100 Merged 'details' into 'dev' Squashed commit of the following: commit fefeccc8e521590b38a2c6b52428e83d40012675 Author: Matt Wilson Date: Mon Oct 28 13:10:54 2024 +1100 Merged 'dev' into 'details' Squashed commit of the following: commit 2324a3a98cae6d495e3d0a4933efcff89c25d518 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun Oct 27 16:49:58 2024 +1100 Windows compatibility (#16) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial canonicalisation * + added missing STLSoft dependencies to component tests' CMake config files * + added missing STLSoft dependencies to component tests' CMake config files * Merged 'master' into 'windows-compat-stlsoft' Squashed commit of the following: commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ full installation configuration * ~ full installation configuration * - removed repetitive CMake configuration * ~ fix to (util, core) CMake configurations to ensure INTERFACE_INCLUDE_DIRECTORIES in installed files * - removed duplicate CMake elements * ~ typo --------- Co-authored-by: Matt Wilson commit dabeccbf2f9202531791456de0695a8db604371c Author: Matt Wilson Date: Mon Oct 28 12:56:08 2024 +1100 ~ compatibility fix commit 0137fbcd6837962562d0412782fd42d8bbcadc9d Author: Matt Wilson Date: Mon Oct 28 12:55:46 2024 +1100 ~ fix to pantheios/pantheios.h commit a640b83be355eeb05996c4c93c1aa9484b40fffc Author: Matt Wilson Date: Mon Oct 28 12:06:18 2024 +1100 **test.component.bec.fprintf** : + added more test cases involving **shwild** pattern matching commit 3fdc496ba68fc6389ff2549d81b37e49f608d5e5 Author: Matt Wilson Date: Mon Oct 28 11:31:39 2024 +1100 **test.component.bec.fprintf** : + added more test cases commit cd557977ea0859196ad1539e20caeaa6e404449f Author: Matt Wilson Date: Mon Oct 28 11:05:26 2024 +1100 **test.component.bec.fprintf** : ~ preparatory mods commit 34cb9e3d887e9555bab9b90431b08d9009891d22 Author: Matt Wilson Date: Mon Oct 28 10:58:28 2024 +1100 **bec.test** : ~ slight improvements commit 0a1217819cd3bfb8e04032abb5d987f64ffc9455 Author: Matt Wilson Date: Mon Oct 28 09:13:54 2024 +1100 ~ wholesale tidying commit 323764be5ce25e95cd65d67de1af3a72cd84e714 Author: Matt Wilson Date: Sun Oct 27 18:49:28 2024 +1100 ~ tidying commit e681bf478dd8c3b6993989615daf05adb9558547 Author: Matt Wilson Date: Sun Oct 27 18:00:28 2024 +1100 + added **test.component.details** commit 954f8b5eaf96e745c89412db8cdc1836161368ea Author: Matt Wilson Date: Sun Oct 27 17:11:48 2024 +1100 ~ preparatory mods in **bec.test** commit 2324a3a98cae6d495e3d0a4933efcff89c25d518 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun Oct 27 16:49:58 2024 +1100 Windows compatibility (#16) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial canonicalisation * + added missing STLSoft dependencies to component tests' CMake config files * + added missing STLSoft dependencies to component tests' CMake config files * Merged 'master' into 'windows-compat-stlsoft' Squashed commit of the following: commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ full installation configuration * ~ full installation configuration * - removed repetitive CMake configuration * ~ fix to (util, core) CMake configurations to ensure INTERFACE_INCLUDE_DIRECTORIES in installed files * - removed duplicate CMake elements * ~ typo --------- Co-authored-by: Matt Wilson commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial tidying / canonicalisation * ~ documentation markup and trivial canonicalisation * + added unit-test programs **test.unit.bec.syslog** and **test.unit.util.parse_args** ; ~ various corrections to parsing * **bec.AnsiConsole** (#22) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * Merged 'dev' into 'bec-ansi' Squashed commit of the following: commit 40696f77df2505a008820f37ba816056f70ac716 Author: Matt Wilson Date: Mon Nov 18 12:46:30 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit c99e3c6a61d647c75ec09e0e9e467688aa777d14 Merge: 048bde5 08ba266 Author: synesissoftware Date: Mon Nov 18 12:41:36 2024 +1100 Merge pull request #20 from mwsis/boilerplate ~ boilerplate commit 08ba266378d3b5c91a1a6ff9c42d8bc495606ac8 Author: Matt Wilson Date: Mon Nov 18 11:32:02 2024 +1100 ~ boilerplate commit 048bde568e505821e3fce901ff158df9921e1a99 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Mon Nov 18 09:49:05 2024 +1100 MVSC MT (RT static linking) (#19) * + added MSVC MT support * ~ ensuring **b64** is included in dependencies for example programs * ~ fixing up dependencies * ~ updated dependency on **xTests** 0.25.4 * boilerplate commit c11906dfc96432111797f19225ebe7a669402d96 Author: Matt Wilson Date: Mon Oct 28 13:22:08 2024 +1100 Merged 'details' into 'dev' Squashed commit of the following: commit fefeccc8e521590b38a2c6b52428e83d40012675 Author: Matt Wilson Date: Mon Oct 28 13:10:54 2024 +1100 Merged 'dev' into 'details' Squashed commit of the following: commit 2324a3a98cae6d495e3d0a4933efcff89c25d518 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun Oct 27 16:49:58 2024 +1100 Windows compatibility (#16) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial canonicalisation * + added missing STLSoft dependencies to component tests' CMake config files * + added missing STLSoft dependencies to component tests' CMake config files * Merged 'master' into 'windows-compat-stlsoft' Squashed commit of the following: commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ full installation configuration * ~ full installation configuration * - removed repetitive CMake configuration * ~ fix to (util, core) CMake configurations to ensure INTERFACE_INCLUDE_DIRECTORIES in installed files * - removed duplicate CMake elements * ~ typo --------- Co-authored-by: Matt Wilson commit dabeccbf2f9202531791456de0695a8db604371c Author: Matt Wilson Date: Mon Oct 28 12:56:08 2024 +1100 ~ compatibility fix commit 0137fbcd6837962562d0412782fd42d8bbcadc9d Author: Matt Wilson Date: Mon Oct 28 12:55:46 2024 +1100 ~ fix to pantheios/pantheios.h commit a640b83be355eeb05996c4c93c1aa9484b40fffc Author: Matt Wilson Date: Mon Oct 28 12:06:18 2024 +1100 **test.component.bec.fprintf** : + added more test cases involving **shwild** pattern matching commit 3fdc496ba68fc6389ff2549d81b37e49f608d5e5 Author: Matt Wilson Date: Mon Oct 28 11:31:39 2024 +1100 **test.component.bec.fprintf** : + added more test cases commit cd557977ea0859196ad1539e20caeaa6e404449f Author: Matt Wilson Date: Mon Oct 28 11:05:26 2024 +1100 **test.component.bec.fprintf** : ~ preparatory mods commit 34cb9e3d887e9555bab9b90431b08d9009891d22 Author: Matt Wilson Date: Mon Oct 28 10:58:28 2024 +1100 **bec.test** : ~ slight improvements commit 0a1217819cd3bfb8e04032abb5d987f64ffc9455 Author: Matt Wilson Date: Mon Oct 28 09:13:54 2024 +1100 ~ wholesale tidying commit 323764be5ce25e95cd65d67de1af3a72cd84e714 Author: Matt Wilson Date: Sun Oct 27 18:49:28 2024 +1100 ~ tidying commit e681bf478dd8c3b6993989615daf05adb9558547 Author: Matt Wilson Date: Sun Oct 27 18:00:28 2024 +1100 + added **test.component.details** commit 954f8b5eaf96e745c89412db8cdc1836161368ea Author: Matt Wilson Date: Sun Oct 27 17:11:48 2024 +1100 ~ preparatory mods in **bec.test** commit 2324a3a98cae6d495e3d0a4933efcff89c25d518 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun Oct 27 16:49:58 2024 +1100 Windows compatibility (#16) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial canonicalisation * + added missing STLSoft dependencies to component tests' CMake config files * + added missing STLSoft dependencies to component tests' CMake config files * Merged 'master' into 'windows-compat-stlsoft' Squashed commit of the following: commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ full installation configuration * ~ full installation configuration * - removed repetitive CMake configuration * ~ fix to (util, core) CMake configurations to ensure INTERFACE_INCLUDE_DIRECTORIES in installed files * - removed duplicate CMake elements * ~ typo --------- Co-authored-by: Matt Wilson commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial tidying / canonicalisation * ~ documentation markup and trivial canonicalisation * + added unit-test programs **test.unit.bec.syslog** and **test.unit.util.parse_args** ; ~ various corrections to parsing * + added unit-test program **test.unit.bec.speech** * + added unit-test program **test.unit.bec.WindowsConsole** * ~ renamed unit-test program **test.unit.be.WindowsSyslog** => **test.unit.bec.WindowsSyslog** * **test.unit.bec.COMErrorObject** : ~ enhanced unit-test, and fixed arguments parsing * ~ tidying * ~ refactored `pantheios_be_parseStockArgs()` * ~ more refactoring of `pantheios_be_parseStockArgs()` * + added in most-basic implementation of **bec.AnsiConsole**, along with unit and scratch test programs * ~ minor mods --------- Co-authored-by: Matt Wilson * Bec ansi fixes (#23) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * Merged 'dev' into 'bec-ansi' Squashed commit of the following: commit 40696f77df2505a008820f37ba816056f70ac716 Author: Matt Wilson Date: Mon Nov 18 12:46:30 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit c99e3c6a61d647c75ec09e0e9e467688aa777d14 Merge: 048bde5 08ba266 Author: synesissoftware Date: Mon Nov 18 12:41:36 2024 +1100 Merge pull request #20 from mwsis/boilerplate ~ boilerplate commit 08ba266378d3b5c91a1a6ff9c42d8bc495606ac8 Author: Matt Wilson Date: Mon Nov 18 11:32:02 2024 +1100 ~ boilerplate commit 048bde568e505821e3fce901ff158df9921e1a99 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Mon Nov 18 09:49:05 2024 +1100 MVSC MT (RT static linking) (#19) * + added MSVC MT support * ~ ensuring **b64** is included in dependencies for example programs * ~ fixing up dependencies * ~ updated dependency on **xTests** 0.25.4 * boilerplate commit c11906dfc96432111797f19225ebe7a669402d96 Author: Matt Wilson Date: Mon Oct 28 13:22:08 2024 +1100 Merged 'details' into 'dev' Squashed commit of the following: commit fefeccc8e521590b38a2c6b52428e83d40012675 Author: Matt Wilson Date: Mon Oct 28 13:10:54 2024 +1100 Merged 'dev' into 'details' Squashed commit of the following: commit 2324a3a98cae6d495e3d0a4933efcff89c25d518 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun Oct 27 16:49:58 2024 +1100 Windows compatibility (#16) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial canonicalisation * + added missing STLSoft dependencies to component tests' CMake config files * + added missing STLSoft dependencies to component tests' CMake config files * Merged 'master' into 'windows-compat-stlsoft' Squashed commit of the following: commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ full installation configuration * ~ full installation configuration * - removed repetitive CMake configuration * ~ fix to (util, core) CMake configurations to ensure INTERFACE_INCLUDE_DIRECTORIES in installed files * - removed duplicate CMake elements * ~ typo --------- Co-authored-by: Matt Wilson commit dabeccbf2f9202531791456de0695a8db604371c Author: Matt Wilson Date: Mon Oct 28 12:56:08 2024 +1100 ~ compatibility fix commit 0137fbcd6837962562d0412782fd42d8bbcadc9d Author: Matt Wilson Date: Mon Oct 28 12:55:46 2024 +1100 ~ fix to pantheios/pantheios.h commit a640b83be355eeb05996c4c93c1aa9484b40fffc Author: Matt Wilson Date: Mon Oct 28 12:06:18 2024 +1100 **test.component.bec.fprintf** : + added more test cases involving **shwild** pattern matching commit 3fdc496ba68fc6389ff2549d81b37e49f608d5e5 Author: Matt Wilson Date: Mon Oct 28 11:31:39 2024 +1100 **test.component.bec.fprintf** : + added more test cases commit cd557977ea0859196ad1539e20caeaa6e404449f Author: Matt Wilson Date: Mon Oct 28 11:05:26 2024 +1100 **test.component.bec.fprintf** : ~ preparatory mods commit 34cb9e3d887e9555bab9b90431b08d9009891d22 Author: Matt Wilson Date: Mon Oct 28 10:58:28 2024 +1100 **bec.test** : ~ slight improvements commit 0a1217819cd3bfb8e04032abb5d987f64ffc9455 Author: Matt Wilson Date: Mon Oct 28 09:13:54 2024 +1100 ~ wholesale tidying commit 323764be5ce25e95cd65d67de1af3a72cd84e714 Author: Matt Wilson Date: Sun Oct 27 18:49:28 2024 +1100 ~ tidying commit e681bf478dd8c3b6993989615daf05adb9558547 Author: Matt Wilson Date: Sun Oct 27 18:00:28 2024 +1100 + added **test.component.details** commit 954f8b5eaf96e745c89412db8cdc1836161368ea Author: Matt Wilson Date: Sun Oct 27 17:11:48 2024 +1100 ~ preparatory mods in **bec.test** commit 2324a3a98cae6d495e3d0a4933efcff89c25d518 Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Sun Oct 27 16:49:58 2024 +1100 Windows compatibility (#16) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial canonicalisation * + added missing STLSoft dependencies to component tests' CMake config files * + added missing STLSoft dependencies to component tests' CMake config files * Merged 'master' into 'windows-compat-stlsoft' Squashed commit of the following: commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ full installation configuration * ~ full installation configuration * - removed repetitive CMake configuration * ~ fix to (util, core) CMake configurations to ensure INTERFACE_INCLUDE_DIRECTORIES in installed files * - removed duplicate CMake elements * ~ typo --------- Co-authored-by: Matt Wilson commit d7ce7f4e54b71aa055a349d8505e1da38448402a Author: Matt Wilson Date: Thu Oct 24 06:56:26 2024 +1100 Merged 'dev' into 'master' Squashed commit of the following: commit 163fff210c9d05eff6a9d70f96a65b480258fd8d Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Thu Oct 24 06:44:31 2024 +1100 CMake final (#14) * + added `EXPORT project-targets` to all targets' `install()` entries * ~ candidate B221 final commit 40d79a5010ddbf43ae85b02bc871926640b84faa Author: Matt Wilson <152443343+mwsis@users.noreply.github.com> Date: Wed Oct 23 16:38:53 2024 +1100 CMake/MinGW compatibility (#13) * ~ settings / ignores * ~ CMake build scripts enhancements * ~ very extensive refactoring of CMake support * ~ misc fixes * - removed suppression of GCC 'unused-parameter' warning * - removed suppression of GCC 'unused-but-set-parameter' warning * - removed suppression of GCC 'unused-but-set-variable' warning * ~ fix * - removed suppression of GCC 'unused-variable' warning * - removed suppression of misc GCC warnings * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ ignores * - removed suppression of GCC 'deprecated-copy-with-user-provided-copy' warning * ~ xTests version * ~ compatibility with unavailable b64 * **bec.WindowsConsole** : ~ fixed error in `map_type_` specification * ~ preparatory changes in main headers * ~ preparatory changes in main headers * ~ `pantheios::b64` inserter formatting and layout * + adds `PANTHEIOS_NO_B64` to general defines when **b64** project not found * ~ file canonicalisation * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * ~ MinGW compatibility * `pantheios::pointer` inserter formatting and layout * ~ MinGW compatibility * ~ MinGW compatibility * ~ xTests version * ~ misc. refactoring * ~ MinGW compatibility * ~ dependencies * ~ trivial tidying / canonicalisation * ~ documentation markup and trivial canonicalisation * + added unit-test programs **test.unit.bec.syslog** and **test.unit.util.parse_args** ; ~ various corrections to parsing * + added unit-test program **test.unit.bec.speech** * + added unit-test program **test.unit.bec.WindowsConsole** * ~ renamed unit-test program **test.unit.be.WindowsSyslog** => **test.unit.bec.WindowsSyslog** * **test.unit.bec.COMErrorObject** : ~ enhanced unit-test, and fixed arguments parsing * ~ tidying * ~ refactored `pantheios_be_parseStockArgs()` * ~ more refactoring of `pantheios_be_parseStockArgs()` * + added in most-basic implementation of **bec.AnsiConsole**, along with unit and scratch test programs * **bec.AnsiConsole** : + implemented all flags * ~ refactoring * ~ misc. tidying * ~ improved colours * ~ minor fixes --------- Co-authored-by: Matt Wilson * Removed duplicate `target_link_shwild(()` entries in CMake files (#24) * - removed duplicate `target_link_shwild(()` entries in CMake files * ~ canonical ordering * Removing duplicate libs (#25) * - removed duplicate `target_link_shwild(()` entries in CMake files * ~ canonical ordering * ~ GCC compatibility (#26) * ~ GCC compatibility (#27) * Bailout unit-test (#28) * **test.component.bec.fprintf** : ~ compatibility with xTests 0.26+ * **test.unit.util.onbailout** : ~ fix (for Unix) * fix * Support for no **b64** (#29) * **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-b64' / `CMAKE_NO_B64` * **test.component.inserters.b64** : ~ typo * run scripts now recognise environment variable `XTESTS_VERBOSITY` as well as `TEST_VERBOSITY` --------- Co-authored-by: Matt Wilson * **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-b64' / `NO_B64` (#30) * **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-b64' / `CMAKE_NO_B64` * **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-b64' / `CMAKE_NO_B64` * **test.component.inserters.b64** : ~ typo * run scripts now recognise environment variable `XTESTS_VERBOSITY` as well as `TEST_VERBOSITY` * ~ refined implementation of '--no-b64' --------- Co-authored-by: Matt Wilson * CMake multithreaded compatibility (#31) * ~ preparatory work * + CMake compatibility with MT * + CMake compatibility with MT * Miscellaneous multithreaded improvements (#32) * **test.component.be.file.threading** : ~ preparatory work * **test.component.be.file.threading** : ~ simplifying * **test.component.be.file.threading** : ~ now depends on **bec.AnsiConsole** rather than **bec.console** (which translates to **bec.fprintf** on UNIX, **bec.WindowsConsole** on Windows) * **test.component.be.file.threading** : ~ simplifying * **test.component.be.file.threading** : ~ now implemented in terms of **std::thread** (C++14 and later) * **test.component.inserters.threadid** : ~ preparatory work * chore: standardised .gitattributes file * chore: standardised .vimrc file * chore: updated LICENSE file * chore: VS Code settings * chore: standardised markdown files * chore: README.md badges * chore: helper scripts now implemented in terms of **/.sis/script_info_lines.txt** * chore: helper scripts standardisation * chore: TODO.md standardisation * feature: added GitHub Actions CI * squash-commit * chore: README badges * chore: renamed **CHANGES.txt** => **CHANGES.md** * chore: renamed **CHANGES.txt** => **CHANGES.md** * chore: removed **HISTORY.md** * feature: significantly expanded **README.md** * feature: updated **INSTALL.md** (to change STLSoft version) * feature: significantly expanded **README.md** * chore: CMake improvements * chore: removed **README.txt** * chore: CI improvements * chore: various improvements * feature: updated **KNOWN_ISSUES.md** * feature: updated **NEWS.md** * feature: updated **FAQ.md** * feature: updated **AUTHORS.md** * fix: CI * fix * fix * fix * 1.0.1-rc1 * .vscode/settings.json * 1.0.1-rc2 * CMake: loaded CMakeFindDependencyMacro and added conditional find_dependency() calls for STLSoft and b64 in pantheios-config.cmake.in so exported static targets provide transitive interface link dependencies to downstream consumers * version: defined PANTHEIOS_VER_1_0_1_RC2 (0x010001e2), updated PANTHEIOS_VER to RC2, and incremented header revision/edit count in include/pantheios/pantheios.h * tooling: added .vscode/settings.json workspace settings * docs: documented release changes in CHANGES.md; added release announcement to NEWS.md; updated archive URLs/dirs in INSTALL.md; refreshed headings in KNOWN_ISSUES.md * squash-commit --------- Co-authored-by: Matt Wilson --- .github/workflows/ci.yml | 2 +- INSTALL.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cfdca4f2..a3fd669d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -248,7 +248,7 @@ jobs: cmake_minimum_required(VERSION 3.13) project(pantheios_install_smoke CXX) # STLSoft and b64 must come from pantheios-config.cmake's find_dependency(). - find_package(pantheios REQUIRED) + find_package(Pantheios REQUIRED) add_executable(consumer consumer.cpp) # Link order matters for GNU ld (static archives are single-pass): # dependents before providers — matches in-tree example link order. diff --git a/INSTALL.md b/INSTALL.md index ef4e3e34..f7d2761e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -185,8 +185,8 @@ $ make This project comes with a number of scripts useful for building with **CMake**, as follows: -| Script | Purpose | -| ------------------------- | ------- | +| Script | Purpose | +| ------ | ------- | | **build_cmake.sh** | Executes **CMake**-generated artefacts to (re)build project.

Performs a (re)build, meaningful only once `prepare_cmake.sh` has been run once to generate all the **CMake** build artefacts.

Use `./build_cmake.sh --help` for further information. | | **clean_cmake.sh** | Executes **CMake**-generated artefacts to clean project.

Performs a (re)build, meaningful only once `prepare_cmake.sh` has been run once to generate all the **CMake** build artefacts and a build has been run.

Use `./clean_cmake.sh --help` for further information. | | **libver.sh** | Builds (unless suppressed) and runs the **libver** scratch program, which prints composite version macros for **Pantheios** and its discovered dependencies.

Use `./libver.sh --help` for further information. |