Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b3ee78e
expected: Handle void function result in Expected::andThen
taminob Apr 4, 2026
a49474c
clang-format: Fix SpaceInEmptyBraces for clang-format >= 22
taminob Apr 4, 2026
731916b
shell: First draft
taminob Apr 4, 2026
45d56cd
shell: Second draft
taminob Apr 5, 2026
913713b
cmake: Fix library header installation
taminob Apr 6, 2026
a09f3e8
src|cmake: Replicate include directory structure in src
taminob Apr 6, 2026
a082e97
ppplugin.cpp|cmake: Create source file including all headers
taminob Apr 6, 2026
c5631e5
clang-tidy|include: Fix linting issues for clang-tidy 22.1.2
taminob Apr 6, 2026
158ac97
ci|cmake|shell: Fix Boost::process dependency for Boost version < 1.85
taminob Apr 6, 2026
c8376b8
shell: Minor cleanup
taminob Apr 6, 2026
7fbc126
python: Fix include order due to source file renaming
taminob Apr 7, 2026
4f2a153
cmake|errors: Fix minor CI issues
taminob Apr 7, 2026
b36e59e
cmake: Use compile-time configuration of cpp17 mode for installed CMa…
taminob Apr 7, 2026
00d6f43
templates|strings: Add IsAnyOfV and IsStringlikeV helpers
taminob Apr 8, 2026
ba61f24
GenericPlugin|shell: Add ShellPlugin to GenericPlugin with temporary …
taminob Apr 8, 2026
49fea72
expected: Fix std::expected conversion for C++23
taminob Apr 13, 2026
f809053
string_utils: Fix IsStringlikeV for char[] and const char[]
taminob Apr 15, 2026
8b3d566
shell: Add support for non-string types and rework ShellSession inter…
taminob Apr 15, 2026
a2e8f83
test: Add tests for shell functions with arguments
taminob Apr 15, 2026
af24f39
test: Add tests for shell functions with side effect
taminob Apr 15, 2026
8a7e6cc
clang-tidy: Disable {boost,llvm}-use-ranges check
taminob Apr 15, 2026
798bbf6
everything: Make CallError generic class Error and also use it for Lo…
taminob Apr 24, 2026
614cf3c
python|lua: Add dummy bool conversion to PythonPlugin
taminob Apr 24, 2026
976dc0b
c|cpp|lua|noop|python|shell|plugin: Make bool conversion explicit and…
taminob Apr 24, 2026
d9036bd
shell: Remove const bool conversion workaround
taminob Apr 24, 2026
965a807
lua: Allow all floating point and integral types
taminob Apr 24, 2026
a9ac7a2
test: Resolve linter issues regarding missing const
taminob Apr 25, 2026
e2aa78c
expected: Remove optional from value()/error() access
taminob Apr 25, 2026
6dac5f5
examples: Remove old examples
taminob Apr 25, 2026
764124f
test|c|cpp|shell: Adapt to new Expected interface
taminob Apr 25, 2026
cbfbbde
clang-tidy: Allow id and it as short variable names
taminob Apr 25, 2026
6dbe1f8
errors: Add output streaming operator for Error class
taminob Apr 25, 2026
b1b5855
expected: Ignore linter warning for intentional unchecked access
taminob Apr 26, 2026
8504909
plugin: Improve IsPlugin C++20 concept
taminob Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ QualifierOrder: [
'const',
'type',
]
SpaceInEmptyBraces: Block
8 changes: 6 additions & 2 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ Checks: >
-*,
clang-diagnostic-*,
clang-analyzer-optin.*,
llvm-*,-llvm-header-guard,
llvm-*,-llvm-header-guard,-llvm-prefer-static-over-anonymous-namespace,-llvm-use-ranges,
google-*,-google-readability-todo,-google-readability-braces-around-statements,
hicpp-*,-hicpp-braces-around-statements,-hicpp-use-emplace,-hicpp-named-parameter,
-hicpp-no-array-decay,-hicpp-uppercase-literal-suffix,
misc-*,-misc-include-cleaner,-misc-no-recursion,
bugprone-*,
boost-*,
boost-*,-boost-use-ranges,
cert-*,-cert-dcl16-c,-cert-dcl51-cpp,-cert-dcl37-c,
concurrency-*,
cppcoreguidelines-*,-cppcoreguidelines-avoid-magic-numbers,
Expand All @@ -18,6 +18,10 @@ Checks: >
readability-*,-readability-redundant-access-specifiers

CheckOptions:
- key: readability-identifier-length.IgnoredVariableNames
value: '^(id|it)$'
- key: readability-identifier-length.IgnoredParameterNames
value: '^(id|it)$'
- key: readability-identifier-naming.AbstractClassCase
value: CamelCase
- key: readability-identifier-naming.ClassCase
Expand Down
14 changes: 11 additions & 3 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,12 @@ jobs:
gtest-dev
- name: Fixup environment
run: |
# add missing final symlink for Lua library
ln -s liblua-5.2.so.0 /usr/lib/liblua-5.2.so
# use ninja-build as ninja binary (alternative: install samurai instead)
ln -s /usr/lib/ninja-build/bin/ninja /usr/bin/ninja
# patch Boost.process to not use ::close_range() since Alpine's musl implementation does not provide it
sed -i 's/#define BOOST_PROCESS_V2_HAS_CLOSE_RANGE 1/\/\/#define BOOST_PROCESS_V2_HAS_CLOSE_RANGE 1\n#include <dirent.h>/g' /usr/include/boost/process/v2/posix/detail/close_handles.ipp
shell: alpine.sh --root {0}

- name: Prepare
Expand Down Expand Up @@ -92,7 +96,7 @@ jobs:
retention-days: 5

unittest:
name: "unittest"
name: "unittests"
needs: build
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -151,7 +155,7 @@ jobs:
retention-days: 3

ctest:
name: "ctest"
name: "cmake tests"
needs: build
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -179,8 +183,12 @@ jobs:
gtest-dev
- name: Fixup environment
run: |
ln -s /usr/lib/ninja-build/bin/ninja /usr/bin/ninja
# add missing final symlink for Lua library
ln -s liblua-5.2.so.0 /usr/lib/liblua-5.2.so
# use ninja-build as ninja binary (alternative: install samurai instead)
ln -s /usr/lib/ninja-build/bin/ninja /usr/bin/ninja
# patch Boost.process to not use ::close_range() since Alpine's musl implementation does not provide it
sed -i 's/#define BOOST_PROCESS_V2_HAS_CLOSE_RANGE 1/\/\/#define BOOST_PROCESS_V2_HAS_CLOSE_RANGE 1\n#include <dirent.h>/g' /usr/include/boost/process/v2/posix/detail/close_handles.ipp
shell: alpine.sh --root {0}

- name: Run cmake tests
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/cpp-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,12 @@ jobs:
clang19-extra-tools
- name: Fixup environment
run: |
# add missing final symlink for Lua library
ln -s liblua-5.2.so.0 /usr/lib/liblua-5.2.so
# use ninja-build as ninja binary (alternative: install samurai instead)
ln -s /usr/lib/ninja-build/bin/ninja /usr/bin/ninja
# patch Boost.process to not use ::close_range() since Alpine's musl implementation does not provide it
sed -i 's/#define BOOST_PROCESS_V2_HAS_CLOSE_RANGE 1/\/\/#define BOOST_PROCESS_V2_HAS_CLOSE_RANGE 1\n#include <dirent.h>/g' /usr/include/boost/process/v2/posix/detail/close_handles.ipp
shell: alpine.sh --root {0}

- name: Generate compile_commands.json
Expand Down
9 changes: 9 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,16 @@ option(PPPLUGIN_ENABLE_UNDEFINED_SANITIZE
option(PPPLUGIN_ENABLE_UNREACHABLE_SANITIZE
"Enable compilation with unreachable sanitize flags" OFF)

# required Boost header-only components: dll, algorithm, asio, process, uuid;
# Boost.filesystem is only required because of Boost.dll
find_package(Boost 1.70.0 REQUIRED CONFIG COMPONENTS headers filesystem)
if(${Boost_VERSION} VERSION_GREATER_EQUAL 1.85.0)
# Boost.process was header-only until 1.84; requires linking in >= 1.85
find_package(Boost REQUIRED CONFIG COMPONENTS process)
else()
# add dummy target so that this check is only necessary once
add_library(Boost::process ALIAS Boost::headers)
endif()
find_package(Python 3.0 REQUIRED COMPONENTS Development)
find_package(Lua 5.2 REQUIRED)

Expand Down
12 changes: 9 additions & 3 deletions cmake/ppplugin-config.cmake.in
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)
find_dependency(Boost @Boost_VERSION_MAJOR@ COMPONENTS headers filesystem
python)
find_dependency(Boost @Boost_VERSION_MAJOR@ CONFIG COMPONENTS headers filesystem)
if(@Boost_VERSION@ VERSION_GREATER_EQUAL 1.85.0)
# Boost.process was header-only until 1.84; requires linking in >= 1.85
find_dependency(Boost CONFIG COMPONENTS process)
else()
# add dummy target so that this check is only necessary once
add_library(Boost::process ALIAS Boost::headers)
endif()
find_dependency(Python @Python_VERSION_MAJOR@ COMPONENTS Development)
find_dependency(Lua @LUA_VERSION_MAJOR@)

if(${PPPLUGIN_ENABLE_CPP17_COMPATIBILITY})
if(@PPPLUGIN_ENABLE_CPP17_COMPATIBILITY@)
find_dependency(fmt @fmt_VERSION_MAJOR@)
endif()

Expand Down
7 changes: 1 addition & 6 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
add_subdirectory(simple_plugin)
add_subdirectory(configurable_plugin)
add_subdirectory(lua_plugin)
add_subdirectory(multi_language_plugin)
add_subdirectory(multi_return_lua_plugin)
add_subdirectory(python_plugin)

4 changes: 0 additions & 4 deletions examples/configurable_plugin/CMakeLists.txt

This file was deleted.

15 changes: 0 additions & 15 deletions examples/configurable_plugin/configurable_plugin.cpp

This file was deleted.

56 changes: 0 additions & 56 deletions examples/configurable_plugin/configurable_plugin.h

This file was deleted.

51 changes: 0 additions & 51 deletions examples/configurable_plugin/configurable_plugin_manager.cpp

This file was deleted.

11 changes: 0 additions & 11 deletions examples/lua_plugin/CMakeLists.txt

This file was deleted.

60 changes: 0 additions & 60 deletions examples/lua_plugin/lua_plugin_manager.cpp

This file was deleted.

17 changes: 0 additions & 17 deletions examples/lua_plugin/plugin.lua

This file was deleted.

19 changes: 0 additions & 19 deletions examples/multi_language_plugin/CMakeLists.txt

This file was deleted.

Loading
Loading