Compare commits
3 Commits
bafe712020
...
d04fae8bbd
| Author | SHA1 | Date | |
|---|---|---|---|
| d04fae8bbd | |||
| 48eec02cca | |||
| 8c4926cbae |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,6 +2,8 @@
|
|||||||
build/
|
build/
|
||||||
cmake-build-*/
|
cmake-build-*/
|
||||||
|
|
||||||
|
dist/
|
||||||
|
|
||||||
# Compiled object files
|
# Compiled object files
|
||||||
*.o
|
*.o
|
||||||
*.obj
|
*.obj
|
||||||
|
|||||||
16
CHANGELOG.md
Normal file
16
CHANGELOG.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
## v0.1.1.3 (2025-08-28)
|
||||||
|
|
||||||
|
- Docs: Added Linux (WSL/Ubuntu) quick start, build and test instructions in `README.md`.
|
||||||
|
- Build: `build.sh` now bootstraps vcpkg and uses the vcpkg toolchain; builds library, tests, and example.
|
||||||
|
|
||||||
|
## v0.1.1.2 (2025-08-28)
|
||||||
|
|
||||||
|
- Example: Made `example/CMakeLists.txt` platform-neutral; links against in-tree target `privatebinapi`.
|
||||||
|
- Linux HTTP client: Fixed delete operation to use HTTP POST (required by PrivateBin API) instead of DELETE; resolves 405 errors when deleting.
|
||||||
|
- Build: Verified successful build on Linux (WSL/Ubuntu) via vcpkg toolchain.
|
||||||
|
- Tests: `test_basic` runs successfully via `ctest`.
|
||||||
|
|
||||||
|
## v0.1.1.1 and earlier
|
||||||
|
|
||||||
|
- Initial cross-platform library skeleton with Crypto++ and nlohmann-json via vcpkg.
|
||||||
|
|
||||||
20
README.md
20
README.md
@@ -279,3 +279,23 @@ cmd /c "call ""C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Co
|
|||||||
Notes:
|
Notes:
|
||||||
- If Ninja is not available, you can use the VS generator, but Ninja is recommended for clang.
|
- If Ninja is not available, you can use the VS generator, but Ninja is recommended for clang.
|
||||||
- You can override `LLVM_PROFDATA` and `LLVM_COV` cache variables to absolute tool paths if needed.
|
- You can override `LLVM_PROFDATA` and `LLVM_COV` cache variables to absolute tool paths if needed.
|
||||||
|
|
||||||
|
### Windows – Quick start (vcpkg + VS 2022)
|
||||||
|
|
||||||
|
Build and package using the helper script:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
$env:VCPKG_ROOT = "$env:USERPROFILE\vcpkg"
|
||||||
|
if (-not (Test-Path $env:VCPKG_ROOT)) { git clone https://github.com/microsoft/vcpkg $env:VCPKG_ROOT; & "$env:VCPKG_ROOT\bootstrap-vcpkg.bat" }
|
||||||
|
powershell -NoProfile -ExecutionPolicy Bypass -File .\build_windows.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
Artifacts:
|
||||||
|
|
||||||
|
- DLL/LIB in `build\Release` and packaged zip at `dist\lib-privatebin-v0.1.1.3-windows-x64.zip`
|
||||||
|
- Example: `build\example\Release\example.exe` (also included in the zip if present)
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
|
||||||
|
- Ensure Visual Studio 2022 Build Tools (C++ workload) and Windows 11 SDK are installed.
|
||||||
|
- The example links against the in-tree library target. The script copies DLL/LIB/PDB (if available), headers, README, and LICENSE into the package.
|
||||||
62
build_windows.ps1
Normal file
62
build_windows.ps1
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Requires: PowerShell, Visual Studio 2022 Build Tools (C++), vcpkg (will be bootstrapped), Git
|
||||||
|
# Usage:
|
||||||
|
# powershell -NoProfile -ExecutionPolicy Bypass -File .\build_windows.ps1
|
||||||
|
|
||||||
|
Set-StrictMode -Version Latest
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
Write-Host "Building PrivateBin API C++ (Windows, x64, Release)" -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Resolve vcpkg root
|
||||||
|
if (-not $env:VCPKG_ROOT) {
|
||||||
|
$env:VCPKG_ROOT = Join-Path $env:USERPROFILE 'vcpkg'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-not (Test-Path $env:VCPKG_ROOT)) {
|
||||||
|
Write-Host "Cloning vcpkg into $env:VCPKG_ROOT ..."
|
||||||
|
git clone https://github.com/microsoft/vcpkg $env:VCPKG_ROOT
|
||||||
|
& "$env:VCPKG_ROOT\bootstrap-vcpkg.bat"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Choose generator (VS 2022)
|
||||||
|
$generator = 'Visual Studio 17 2022'
|
||||||
|
$arch = 'x64'
|
||||||
|
|
||||||
|
# Clean and configure
|
||||||
|
if (Test-Path build) { Remove-Item -Recurse -Force build }
|
||||||
|
cmake -S . -B build -G "$generator" -A $arch -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake"
|
||||||
|
|
||||||
|
# Build
|
||||||
|
cmake --build build --config Release
|
||||||
|
|
||||||
|
Write-Host "Build completed." -ForegroundColor Green
|
||||||
|
|
||||||
|
# Package artifacts (zip)
|
||||||
|
$dist = Join-Path (Get-Location) 'dist\windows'
|
||||||
|
if (Test-Path $dist) { Remove-Item -Recurse -Force $dist }
|
||||||
|
New-Item -ItemType Directory -Force -Path $dist | Out-Null
|
||||||
|
|
||||||
|
# Collect artifacts
|
||||||
|
$binDir = Join-Path (Get-Location) 'build\Release'
|
||||||
|
$exampleDir = Join-Path (Get-Location) 'build\example\Release'
|
||||||
|
|
||||||
|
$dll = Join-Path $binDir 'privatebinapi.dll'
|
||||||
|
$lib = Join-Path $binDir 'privatebinapi.lib'
|
||||||
|
$pdb = Join-Path $binDir 'privatebinapi.pdb'
|
||||||
|
$exe = Join-Path $exampleDir 'example.exe'
|
||||||
|
|
||||||
|
Copy-Item -Path $dll -Destination $dist -ErrorAction SilentlyContinue
|
||||||
|
Copy-Item -Path $lib -Destination $dist -ErrorAction SilentlyContinue
|
||||||
|
Copy-Item -Path $pdb -Destination $dist -ErrorAction SilentlyContinue
|
||||||
|
Copy-Item -Path $exe -Destination $dist -ErrorAction SilentlyContinue
|
||||||
|
Copy-Item -Path (Join-Path (Get-Location) 'include') -Destination $dist -Recurse
|
||||||
|
Copy-Item -Path (Join-Path (Get-Location) 'README.md') -Destination $dist
|
||||||
|
Copy-Item -Path (Join-Path (Get-Location) 'LICENSE') -Destination $dist -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
$zipPath = Join-Path (Get-Location) 'dist\lib-privatebin-v0.1.1.3-windows-x64.zip'
|
||||||
|
if (Test-Path $zipPath) { Remove-Item -Force $zipPath }
|
||||||
|
Compress-Archive -Path (Join-Path $dist '*') -DestinationPath $zipPath
|
||||||
|
|
||||||
|
Write-Host "Windows artifact packaged:" -ForegroundColor Cyan
|
||||||
|
Write-Host " $zipPath"
|
||||||
|
|
||||||
Reference in New Issue
Block a user