CMake: Add preliminary CPack support
We'll tune it later.
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Package Generation
|
||||
|
||||
This project supports generating both Debian (.deb) and RPM (.rpm) packages
|
||||
using CPack.
|
||||
|
||||
## Manual Package Generation
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- CMake 3.16 or later
|
||||
- Make or Ninja build system
|
||||
- For RPM packages: `rpmbuild` utility
|
||||
|
||||
### Build Process
|
||||
|
||||
1. **Create build directory:**
|
||||
```bash
|
||||
mkdir -p build-package
|
||||
cd build-package
|
||||
```
|
||||
|
||||
2. **Configure with CMake:**
|
||||
```bash
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||
```
|
||||
|
||||
3. **Build the project:**
|
||||
```bash
|
||||
make -j$(nproc)
|
||||
```
|
||||
|
||||
4. **Generate packages:**
|
||||
```bash
|
||||
cpack -G DEB # Generate Debian package
|
||||
cpack -G RPM # Generate RPM package (requires rpmbuild)
|
||||
```
|
||||
|
||||
### Requirements for RPM Generation
|
||||
|
||||
To generate RPM packages, you need `rpmbuild` installed:
|
||||
|
||||
- **Ubuntu/Debian**: `sudo apt-get install rpm`
|
||||
- **CentOS/RHEL**: `sudo yum install rpm-build`
|
||||
- **Fedora**: `sudo dnf install rpm-build`
|
||||
|
||||
### Package Contents
|
||||
|
||||
The generated packages include:
|
||||
|
||||
- **Main executable**: `/usr/bin/salmanoff`
|
||||
- **Shared libraries**: `/usr/lib/lib*.so`
|
||||
- **Device configurations**: `/usr/share/salmanoff/devices/` (preprocessed
|
||||
.daps files)
|
||||
- **Documentation**: `/usr/share/doc/salmanoff/`
|
||||
|
||||
### Installing Packages
|
||||
|
||||
**Debian/Ubuntu:**
|
||||
```bash
|
||||
sudo dpkg -i salmanoff-0.00.004-x86_64.deb
|
||||
```
|
||||
|
||||
**CentOS/RHEL/Fedora:**
|
||||
```bash
|
||||
sudo rpm -i salmanoff-0.00.004-x86_64.rpm
|
||||
```
|
||||
|
||||
### Package Configuration
|
||||
|
||||
Package metadata and configuration is defined in
|
||||
`cmake/CPackConfig.cmake`. This includes:
|
||||
|
||||
- Package name, version, and description
|
||||
- Dependencies and recommendations
|
||||
- License information
|
||||
- File naming conventions
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
- **RPM generation fails**: Ensure `rpmbuild` is installed
|
||||
- **Missing dependencies**: Check that all build dependencies are
|
||||
installed
|
||||
- **Permission errors**: Ensure you have write permissions in the build
|
||||
directory
|
||||
Reference in New Issue
Block a user