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
25 changes: 18 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,25 +277,36 @@ jobs:
path: ./*.msi
pages:
name: Deploy pages
if: github.repository == 'open-eid/libdigidocpp' && contains(github.ref, 'master')
if: github.repository == 'open-eid/libdigidocpp' && github.ref == 'refs/heads/master'
concurrency:
group: pages
cancel-in-progress: false
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-24.04
permissions:
contents: write
contents: read
pages: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Install dependencies
run: sudo apt update -qq && sudo apt install --no-install-recommends -y doxygen ${UBUNTU_DEPS}
- name: Build docs
run: |
cmake -B build -S .
cmake --build build --target docs
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v5
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/doc
force_orphan: true
path: ./build/doc
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
coverity:
name: Run Coverity tests
if: github.repository == 'open-eid/libdigidocpp' && contains(github.ref, 'coverity_scan')
Expand Down
45 changes: 28 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,18 @@
git clone https://github.com/open-eid/libdigidocpp
cd libdigidocpp

3. Configure
3. List the available CMake presets and configure the default build

cmake -B build -S .
cmake --list-presets
cmake --preset default

4. Build

cmake --build build
cmake --build build/default

5. Install

sudo cmake --build build --target install
sudo cmake --build build/default --target install

6. Execute

Expand All @@ -53,29 +54,35 @@
* [XCode](https://itunes.apple.com/en/app/xcode/id497799835?mt=12) - For macOS/iOS development
* [CMake](http://www.cmake.org)
* [Homebrew](https://brew.sh)
* [vcpkg](https://vcpkg.io/) - For Android development (VCPKG_ROOT)
* [vcpkg](https://vcpkg.io/) - For iOS and Android development (`VCPKG_ROOT`)
* [Android NDK](https://developer.android.com/ndk/downloads) - For Android development (ANDROID_NDK_ROOT)

2. Fetch the source

git clone https://github.com/open-eid/libdigidocpp
cd libdigidocpp

3. Prepare dependencies (available targets: macos, iphoneos, iphonesimulator)
3. Prepare macOS dependencies

sh prepare_osx_build_environment.sh macos all
sh prepare_osx_build_environment.sh all

iOS and Android dependencies are managed by vcpkg instead. Set `VCPKG_ROOT`
for both platforms and `ANDROID_NDK_ROOT` for Android before configuring.

4. Install dependencies

brew install pkg-config ninja

* doxygen - Optional, for API documentation
* boost - Optional, for unittests
* swig - Optional, for C# and Java bindings
* swig - Optional, for C#, Java and Python bindings
* openjdk - Optional, for Java bindings

5. Configure, build and install (available presets: macos, iphoneos, iphonessimulator, androidarm, androidarm64, androidx86_64)
5. List the available presets, then configure, build and install. Platform presets
include `macos`, `iphoneos`, `iphonesimulator`, `iphonecatalyst`,
`androidarm`, `androidarm64` and `androidx86_64`.

cmake --list-presets
cmake --preset macos
cmake --build --preset macos
sudo cmake --build --preset macos --target install
Expand All @@ -87,7 +94,7 @@
### Windows

1. Install dependencies and necessary tools from
* [Visual Studio Community 2022](https://www.visualstudio.com/downloads/)
* [Visual Studio](https://www.visualstudio.com/downloads/) with a supported MSVC toolset (v143 or v145)
* [CMake](http://www.cmake.org)
* [vcpkg](https://vcpkg.io/)
* [Swig](http://swig.org/download.html) - Optional, for C#, Python and Java bindings
Expand All @@ -107,12 +114,12 @@
git clone https://github.com/open-eid/libdigidocpp
cd libdigidocpp

4. Configure
4. Set the target platform and vcpkg location, then configure with the checked-in
Windows preset

cmake -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake `
-DVCPKG_TARGET_TRIPLET=x64-windows `
-DVCPKG_MANIFEST_FEATURES=tests `
-B build -S .
$env:PLATFORM = "x64"
$env:VCPKG_ROOT = "C:/src/vcpkg"
cmake --preset windows -DVCPKG_MANIFEST_FEATURES=tests

Optional CMake parameters:

Expand All @@ -122,9 +129,13 @@
After running the cmake build, digidoc_csharp.dll along with the C# source files will be created, more info at
[examples/DigiDocCSharp/README.md](examples/DigiDocCSharp/README.md).

The preset uses a platform-specific build directory such as
`build/windows-x64`, keeping Windows builds separate from Linux, macOS and
other Windows architectures.

5. Build

cmake --build build
cmake --build --preset windows --config RelWithDebInfo

6. Alternative to steps 4. and 5. -

Expand All @@ -141,7 +152,7 @@

7. Execute

build/src/digidoc-tool.exe
build/windows-x64/src/RelWithDebInfo/digidoc-tool.exe

### Examples
[examples/README.md](examples/README.md)
Expand Down
15 changes: 15 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
Libdigidocpp library [4.5.0](https://github.com/open-eid/libdigidocpp/releases/tag/v4.5.0) release notes
--------------------------------------
- Add `Container::extendContainerValidity` for adding archive timestamps to eligible ASiC-E and ASiC-S/TST containers, or wrapping a container in timestamped ASiC-S when in-place extension is unavailable
(#658)
- Update libraries and platform support
(#722, #726, #749)
- Improve signature and container compatibility
(#615, #728, #729, #730, #735, #751, #752, #754, #756)
- Harden XML, ZIP, network, and file handling
(#731, #732, #734, #736, #738, #743)
- Other fixes, optimizations, and documentation updates
(#727, #733, #753, #755)

[Full Changelog](https://github.com/open-eid/libdigidocpp/compare/v4.4.0...v4.5.0)

Libdigidocpp library [4.4.0](https://github.com/open-eid/libdigidocpp/releases/tag/v4.4.0) release notes
--------------------------------------
- Update libraries and platform support
Expand Down
4 changes: 2 additions & 2 deletions doc/images/asic.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/images/components.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/images/digidoc_framework.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/images/schemas.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/images/security.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
89 changes: 72 additions & 17 deletions etc/Doxyfile.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Doxyfile 1.16.1
# Doxyfile 1.17.0

# This file describes the settings to be used by the documentation system
# Doxygen (www.doxygen.org) for a project.
Expand Down Expand Up @@ -81,7 +81,7 @@ OUTPUT_DIRECTORY = @PROJECT_BINARY_DIR@/doc/
# and will distribute the generated files over these directories. Enabling this
# option can be useful when feeding Doxygen a huge amount of source files, where
# putting all generated files in the same directory would otherwise cause
# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to
# performance problems for the file system. Adjust CREATE_SUBDIRS_LEVEL to
# control the number of sub-directories.
# The default value is: NO.

Expand Down Expand Up @@ -802,7 +802,7 @@ GENERATE_REQUIREMENTS = YES

# The REQ_TRACEABILITY_INFO tag controls if traceability information is shown on
# the requirements page (only relevant when using \requirement comment blocks).
# The setting NO will disable the traceablility information altogether. The
# The setting NO will disable the traceability information altogether. The
# setting UNSATISFIED_ONLY will show a list of requirements that are missing a
# satisfies relation (through the command: \satisfies). Similarly the setting
# UNVERIFIED_ONLY will show a list of requirements that are missing a verifies
Expand Down Expand Up @@ -1140,8 +1140,7 @@ EXCLUDE_SYMBOLS = digidoc::*Private \
# that contain example code fragments that are included (see the \include
# command).

EXAMPLE_PATH = @PROJECT_SOURCE_DIR@/ \
@PROJECT_BINARY_DIR@/
EXAMPLE_PATH = @PROJECT_SOURCE_DIR@/RELEASE-NOTES.md

# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
Expand Down Expand Up @@ -1604,8 +1603,8 @@ DOCSET_PUBLISHER_NAME = Publisher
# a.o. the download links, offline (the HTML help workshop was already many
# years in maintenance mode). You can download the HTML help workshop from the
# web archives at Installation executable (see:
# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo
# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
# http://web.archive.org/web/20160201063255/https://download.microsoft.com/downl
# oad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML
Expand Down Expand Up @@ -1912,7 +1911,7 @@ MATHJAX_FORMAT = HTML-CSS
# output directory using the MATHJAX_RELPATH option. For Mathjax version 2 the
# destination directory should contain the MathJax.js script. For instance, if
# the mathjax directory is located at the same level as the HTML output
# directory, then MATHJAX_RELPATH should be ../mathjax.s For Mathjax versions 3
# directory, then MATHJAX_RELPATH should be ../mathjax. For Mathjax versions 3
# and 4 the destination directory should contain the tex-<format>.js script
# (where <format> is either chtml or svg). The default value points to the
# MathJax Content Delivery Network so you can quickly see the result without
Expand Down Expand Up @@ -2618,6 +2617,19 @@ HAVE_DOT = NO

DOT_NUM_THREADS = 0

# The DOT_BATCH_SIZE specifies the number of dot graphs Doxygen is allowed to
# compile in a single invocation of dot. When set to 1 Doxygen will invoke dot
# for each graph separately, which can cause significant process creation
# overhead especially on systems with many CPU cores. Together with
# DOT_NUM_THREADS this setting can be used to optimise the dot processing speed
# for a particular system. Doxygen will try to give each thread a balanced batch
# of work. If the total number of graphs to process exceeds DOT_NUM_THREADS *
# DOT_BATCH_SIZE then additional batches will be created for dot to process.
# Minimum value: 1, maximum value: 1000, default value: 50.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_BATCH_SIZE = 50

# DOT_COMMON_ATTR is common attributes for nodes, edges and labels of
# subgraphs. When you want a differently looking font in the dot files that
# Doxygen generates you can specify fontname, fontcolor and fontsize attributes.
Expand Down Expand Up @@ -2909,6 +2921,58 @@ PLANTUML_INCLUDE_PATH =

PLANTUMLFILE_DIRS =

# When using Mermaid diagrams with CLI rendering, the MERMAID_PATH tag should be
# used to specify the directory where the mmdc (Mermaid CLI) executable can be
# found. If left blank, CLI-based rendering is disabled. For HTML output,
# client-side rendering via JavaScript is used by default and does not require
# mmdc. For LaTeX/PDF output, mmdc is required to pre-generate images. Doxygen
# will generate a warning when CLI rendering is needed but mmdc is not
# available.

MERMAID_PATH =

# When using Mermaid diagrams, the MERMAID_CONFIG_FILE tag can be used to
# specify a JSON configuration file for the Mermaid CLI tool (mmdc). This file
# can contain theme settings and other Mermaid configuration options.

MERMAID_CONFIG_FILE =

# The MERMAID_RENDER_MODE tag selects how Mermaid diagrams are rendered.
# Possible values are: AUTO (use client-side rendering for HTML and mmdc for
# LaTeX/PDF and other formats. If MERMAID_PATH is not set, non-HTML diagrams
# will produce a warning), CLI (use the mmdc tool to pre-generate images
# (requires Node.js and mermaid-js/mermaid-cli). Works for all output formats)
# and CLIENT_SIDE (embed mermaid.js in HTML output for client-side rendering.
# Does not require mmdc but only works for HTML output).
# The default value is: AUTO.

MERMAID_RENDER_MODE = AUTO

# The MERMAID_JS_URL tag specifies the URL to load mermaid.js from when using
# client-side rendering (MERMAID_RENDER_MODE is CLIENT_SIDE or AUTO). The
# default points to the latest Mermaid v11 release on the jsDelivr CDN.
#
# The default CDN URL requires internet access when viewing the generated
# documentation. For offline use, download mermaid.esm.min.mjs and set this to a
# relative path, or use MERMAID_RENDER_MODE=CLI to pre-generate images instead.
# Examples:
# - Latest v11 (default):
# 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs'
# - Pinned version:
# 'https://cdn.jsdelivr.net/npm/mermaid@11.3.0/dist/mermaid.esm.min.mjs'
# - Local copy: './mermaid.esm.min.mjs' (user must place file in HTML output
# directory)
# The default value is:
# https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs.

MERMAID_JS_URL = https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs

# The MERMAIDFILE_DIRS tag can be used to specify one or more directories that
# contain Mermaid files that are included in the documentation (see the
# \mermaidfile command).

MERMAIDFILE_DIRS =

# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
# that will be shown in the graph. If the number of nodes in a graph becomes
# larger than this value, Doxygen will truncate the graph, which is visualized
Expand All @@ -2933,15 +2997,6 @@ DOT_GRAPH_MAX_NODES = 50

MAX_DOT_GRAPH_DEPTH = 0

# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
# this, this feature is disabled by default.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_MULTI_TARGETS = NO

# If the GENERATE_LEGEND tag is set to YES Doxygen will generate a legend page
# explaining the meaning of the various boxes and arrows in the dot generated
# graphs.
Expand Down
6 changes: 3 additions & 3 deletions examples/DigiDocCSharp/DigiDocCSharp.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<OutputType>Exe</OutputType>
<Version>0.6.0.0</FileVersion>
<Version>0.6.0</Version>
<Copyright>Copyright © 2015</Copyright>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
Expand All @@ -11,4 +11,4 @@
<ItemGroup>
<Folder Include="digidoc\" />
</ItemGroup>
</Project>
</Project>
Loading
Loading