breaking away module development to use only dpmdk
parent
e06f3733fa
commit
7e068db32a
|
@ -0,0 +1,34 @@
|
|||
cmake_minimum_required(VERSION 3.22)
|
||||
project(dpm-info-module VERSION 0.1.0)
|
||||
|
||||
# Set C++ standard
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# Create output directory
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/modules)
|
||||
|
||||
# Create shared library with the correct naming convention (no prefix)
|
||||
add_library(info MODULE
|
||||
info.cpp
|
||||
src/infoFuncs.cpp
|
||||
)
|
||||
|
||||
# Set output properties for the module
|
||||
set_target_properties(
|
||||
info PROPERTIES
|
||||
PREFIX ""
|
||||
SUFFIX ".so"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/modules"
|
||||
)
|
||||
|
||||
# Include directories based on the actual project structure
|
||||
target_include_directories(info PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_SOURCE_DIR}/../../dpmdk/include # Path to DPMDK headers outside the module directory
|
||||
)
|
||||
|
||||
# Installation rules
|
||||
install(TARGETS info
|
||||
LIBRARY DESTINATION /usr/lib/dpm/modules
|
||||
)
|
|
@ -0,0 +1,31 @@
|
|||
# DPM Module Development
|
||||
|
||||
Modules for the Dark Horse Package Manager (DPM) can be developed independently of the core system. The `info` module in this repository provides a reference implementation.
|
||||
|
||||
## Required Dependencies
|
||||
|
||||
Modules must include the DPMDK headers:
|
||||
|
||||
```cpp
|
||||
#include <dpmdk/include/CommonModuleAPI.hpp>
|
||||
```
|
||||
|
||||
## Required Functions
|
||||
|
||||
Every module must implement these three functions:
|
||||
|
||||
```cpp
|
||||
extern "C" const char* dpm_module_get_version(void);
|
||||
extern "C" const char* dpm_get_description(void);
|
||||
extern "C" int dpm_module_execute(const char* command, int argc, char** argv);
|
||||
```
|
||||
|
||||
See `modules/info/info.cpp` for a working implementation.
|
||||
|
||||
## Building
|
||||
|
||||
See the standalone CMakeLists.txt in the `modules/info` directory as a reference for building independent modules.
|
||||
|
||||
## Configuration
|
||||
|
||||
Standard configuration location: `/etc/dpm/conf.d/`
|
Loading…
Reference in New Issue