Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
28 changes: 0 additions & 28 deletions .github/workflows/build.yaml

This file was deleted.

16 changes: 8 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads)

# appbase is built as a wire-sysio component; the superproject's vcpkg
# toolchain defines the Boost targets (statically linked) before this
# directory is added. There is intentionally no standalone Boost lookup.
if(NOT TARGET Boost::program_options)
find_package(Boost 1.83 EXACT REQUIRED COMPONENTS program_options system)
if(NOT TARGET Boost::program_options)
message(FATAL_ERROR "Boost::program_options not found")
endif()
message(FATAL_ERROR "Boost::program_options target not defined; appbase is built as part of wire-sysio, whose toolchain provides the Boost targets.")
endif()

if( APPLE )
Expand Down Expand Up @@ -90,10 +90,10 @@ endif()
install( TARGETS
appbase

RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} ${INSTALL_COMPONENT_ARGS}
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} ${INSTALL_COMPONENT_ARGS}
ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} ${INSTALL_COMPONENT_ARGS}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/appbase ${INSTALL_COMPONENT_ARGS}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ${INSTALL_COMPONENT_ARGS}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ${INSTALL_COMPONENT_ARGS}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ${INSTALL_COMPONENT_ARGS}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/appbase ${INSTALL_COMPONENT_ARGS}
)

add_subdirectory( examples )
Expand Down
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ plugins are configured, initialized, started, and shutdown in the proper order.
- Automatically Load Dependent Plugins in Order
- Plugins can specify commandline arguments and configuration file options
- Program gracefully exits from SIGINT, SIGTERM, and SIGPIPE
- Minimal Dependencies (Boost 1.60, c++14)
- Minimal dependencies (Boost, provided by the superproject's toolchain)

## Defining a Plugin

Expand Down Expand Up @@ -113,14 +113,18 @@ all asynchronous operations posted to the io_context should be run in the same t

To trigger a graceful exit call `appbase::app().quit()` or send SIGTERM, SIGINT, or SIGPIPE to the process.

## Dependencies
## Building

1. c++14 or newer (clang or g++)
2. Boost 1.60 or newer compiled with C++14 support
appbase is built as a component of
[wire-sysio](https://github.com/Wire-Network/wire-sysio), which vendors this
repository as a submodule. The superproject's vcpkg toolchain defines the
Boost targets (statically linked into the portable wire-sysio binaries,
currently Boost 1.89) before this directory is configured, so there is
intentionally **no standalone Boost lookup** here — configuring appbase out
of tree stops with a clear `FATAL_ERROR`. Install rules use relative
GNUInstallDirs destinations so the superproject's packaging can stage them
against its packaging prefix.

To compile boost with c++14 use:

```
./b2 ... cxxflags="-std=c++0x -stdlib=libc++" linkflags="-stdlib=libc++" ...
```
There is likewise no standalone CI workflow: appbase is compiled and tested
by wire-sysio CI on every run.