diff --git a/CMakeLists.txt b/CMakeLists.txt index 01de6af..11a41d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,15 @@ target_sources ( ${PROJECT_NAME} INTERFACE ${HEADERS_FILES} ${SRC_FILES} ) target_compile_features( ${PROJECT_NAME} INTERFACE cxx_std_20 ) target_include_directories( ${PROJECT_NAME} INTERFACE include/ ) + +set_target_properties( ${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${HEADERS_FILES}") + +install(TARGETS ${PROJECT_NAME} PUBLIC_HEADER + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/DogBreeds/JackRussell) + +install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_LIBDIR}/DogBreeds/JackRussell) + option(TEST "Enable Test" OFF) if(TEST) enable_testing() diff --git a/README.md b/README.md index 2aad714..5f5224f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,115 @@ # JackRussell + + + A C++ Publish/Subscriber Library + +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![GitHub release](https://img.shields.io/github/release/ZigRazor/JackRussell.svg)](https://GitHub.com/ZigRazor/JackRussell/releases/) [![CMake](https://github.com/ZigRazor/JackRussell/actions/workflows/cmake.yml/badge.svg)](https://github.com/ZigRazor/JackRussell/actions/workflows/cmake.yml) + +[![codecov](https://codecov.io/gh/ZigRazor/JackRussell/graph/badge.svg?token=24SM5HBW6C)](https://codecov.io/gh/ZigRazor/JackRussell) [![CodeFactor](https://www.codefactor.io/repository/github/zigrazor/JackRussell/badge)](https://www.codefactor.io/repository/github/zigrazor/jackRussell) + +[![Generic badge](https://img.shields.io/badge/required-C++20-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Required-CMake3.16-Green.svg)](https://shields.io/) + +## Table of Contents +- [Description](#description) +- [Features](#features) +- [Installation](#installation) +- [Usage](#usage) +- [Contributing](#contributing) +- [License](#license) +- [Contact](#contact) +- [Acknowledgements](#acknowledgements) + +## Description + +JackRussell is a C++ Publish/Subscriber Library. This project aims to fulfill a framework with easy-to-use mechanisms of Publish and Subscriber. By using JackRussell, users can: +- Create a Topics; +- Publish to Topic; +- Create Subscribers Classes; +- Register the Subscribers Classes to one or more Topics; +- Manage the message received by Subscribers + +## Features + +- Topic Manager Singleton +- Topic Class +- Subscriber Interface + +## Installation + +To install and set up JackRussell, follow these steps: + +1. **Clone the repository:** + ```bash + git clone https://github.com/ZigRazor/JackRussell.git + ``` +2. **Navigate to the project directory:** + ```bash + cd JackRussell + ``` +3. **Prepare CMake:** + ```bash + mkdir build + cd build + cmake .. + ``` +4. **Install Library** + ```bash + make install + ``` + +## Usage + +You can use the Library in your project with CMake adding the following lines: + +```cmake +CPMAddPackage( + NAME JackRussell + GITHUB_REPOSITORY ZigRazor/JackRussell + GIT_TAG origin/main +) +``` +or install it and the add to the include path *{StandardIncludePath}/DogBreeds/JackRussell* and to the linking_path *{StandardLinkingPath}/DogBreeds/JackRussell*. + +For simple use you can see the [Example](https://github.com/ZigRazor/JackRussell/tree/main/example) +For more detailed usage instructions, refer to the documentation. + +## Contributing +We welcome contributions to JackRussell! To contribute, follow these steps: + +1. **Fork the repository.** +2. **Create a new branch:** + ```bash + git checkout -b feature/your-feature-name + ``` +3. **Make your changes and commit them:** + ```bash + git commit -m "Add your commit message" + ``` +4. **Push to the branch:** + ```bash + git push origin feature/your-feature-name + ``` +5. **Create a pull request.** + +Please read our [contributing guidelines](https://github.com/ZigRazor/JackRussell/blob/main/CONTRIBUTING.md) for more details. + +## License +This project is licensed under the MIT License. See the [LICENSE](https://github.com/ZigRazor/JackRussell/blob/main/LICENSE) file for details. + +## Contact +If you have any questions, suggestions, or feedback, feel free to reach out: + +- Email: zigrazor@gmail.com +- GitHub Issues: [issues](https://github.com/ZigRazor/JackRussell/issues) + +## Acknowledgements +We would like to thank the following individuals for their support: + +[![Contributors](https://contrib.rocks/image?repo=zigrazor/JackRussell)](https://github.com/ZigRazor/JackRussell/graphs/contributors) + +## Credits + +Photo by Natalie Kinnear on Unsplash + +