- License: LGPL 2.1
- © Estonian Information System Authority
- Architecture of ID-software
- API Documentation
-
Install dependencies
# Ubuntu sudo apt install cmake libxml2-dev libxmlsec1-dev zlib1g-dev # Fedora sudo dnf install cmake gcc-c++ libtool-ltdl-devel libxml2-devel minizip-ng-compat-devel openssl-devel zlib-devel xmlsec1-openssl-devel- doxygen - Optional, for API documentation
- libboost-test-dev - Optional, for unittests
- swig - Optional, for C#, Java and python bindings
- libpython3-dev, python3-setuptools - Optional, for python bindings
- openjdk-21-jdk-headless - Optional, for Java bindings
-
Fetch the source
git clone https://github.com/open-eid/libdigidocpp cd libdigidocpp -
List the available CMake presets and configure the default build
cmake --list-presets cmake --preset default -
Build
cmake --build build/default -
Install
sudo cmake --build build/default --target install -
Execute
/usr/local/bin/digidoc-tool
-
Install dependencies from
- XCode - For macOS/iOS development
- CMake
- Homebrew
- vcpkg - For iOS and Android development (
VCPKG_ROOT) - Android NDK - For Android development (ANDROID_NDK_ROOT)
-
Fetch the source
git clone https://github.com/open-eid/libdigidocpp cd libdigidocpp -
Prepare macOS dependencies
sh prepare_osx_build_environment.sh alliOS and Android dependencies are managed by vcpkg instead. Set
VCPKG_ROOTfor both platforms andANDROID_NDK_ROOTfor Android before configuring. -
Install dependencies
brew install pkg-config ninja- doxygen - Optional, for API documentation
- boost - Optional, for unittests
- swig - Optional, for C#, Java and Python bindings
- openjdk - Optional, for Java bindings
-
List the available presets, then configure, build and install. Platform presets include
macos,iphoneos,iphonesimulator,iphonecatalyst,androidarm,androidarm64andandroidx86_64.cmake --list-presets cmake --preset macos cmake --build --preset macos sudo cmake --build --preset macos --target install -
Execute
/Library/Frameworks/digidocpp.framework/Resources/digidoc-tool
-
Install dependencies and necessary tools from
- Visual Studio with a supported MSVC toolset (v143 or v145)
- CMake
- vcpkg
- Swig - Optional, for C#, Python and Java bindings
- Doxygen - Optional, for generating documentation
- Wix toolset - Optional, for creating Windows installation packages
- Python - Optional, for Python bindings
- Java - Optional, for Java bindings
-
Open desired Visual Studio tools command prompt:
- x64 Native Tool Command Prompt
- x86 Native Tool Command Prompt
- ARM64 Native Tool Command Prompt
- Or some cross compile combination with target host type
-
Fetch the source
git clone https://github.com/open-eid/libdigidocpp cd libdigidocpp -
Set the target platform and vcpkg location, then configure with the checked-in Windows preset
$env:PLATFORM = "x64" $env:VCPKG_ROOT = "C:/src/vcpkg" cmake --preset windows -DVCPKG_MANIFEST_FEATURES=testsOptional CMake parameters:
-DSWIG_EXECUTABLE=C:/swigwin-4.4.1/swig.exe -DDOXYGEN_EXECUTABLE=C:/Program files/doxygen/bin/doxygen.exeAfter running the cmake build, digidoc_csharp.dll along with the C# source files will be created, more info at 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. -
Build
cmake --build --preset windows --config RelWithDebInfo -
Alternative to steps 4. and 5. -
powershell -ExecutionPolicy ByPass -File build.ps1Optional build.ps1 parameters:
-swig C:/swigwin-4.4.1/swig.exe -doxygen "C:/Program files/doxygen/bin/doxygen.exe" -boostThe build script builds executables and installation media for given platform (Debug and Release with debug symbols)
-
Execute
build/windows-x64/src/RelWithDebInfo/digidoc-tool.exe
Official builds are provided through official distribution point id.ee. If you want support, you need to be using official builds. Contact our support via www.id.ee for assistance.
Source code is provided on "as is" terms with no warranty (see license for more information). Do not file Github issues with generic support requests.
