Skip to content

Repository files navigation

DALi Windows dependencies

This repository provides the third-party SDK, CMake integration, and runtime environment used by the DALi Windows backend. The current workflow targets Visual Studio 2022, MSVC v143, x64 Windows, CMake, and Ninja.

The repositories may live below any common workspace directory. The drive and workspace directory name are not fixed.

<workspace>\
  dali-core\
  dali-adaptor\
  dali-ui\
  windows-dependencies\
  WindowsDependenciesSDK\  # installed third-party SDK
  dali-env\                 # installed DALi libraries and samples

For a shorter Korean guide, see WINDOWS-DEVELOPMENT-QUICKSTART-ko.md.

Prerequisites

Install the following tools on Windows:

  • Visual Studio 2022 with Desktop development with C++ and the MSVC v143 x64 toolset
  • A Windows SDK supplied by Visual Studio
  • CMake 3.15 or newer
  • Ninja
  • Git
  • PowerShell 7 or Windows PowerShell 5.1

The build scripts locate the Visual Studio environment automatically. They do not require a Visual Studio solution or a Developer Command Prompt.

Install WindowsDependenciesSDK

From the windows-dependencies repository, run:

cd <workspace>\windows-dependencies
.\install.ps1

install.ps1 first downloads the windows-sdk-latest prerelease, verifies its SHA-256 file, and installs it as <workspace>\WindowsDependenciesSDK. A partial archive is kept below <workspace>\windows-dependencies\.deps\windows-sdk-download and is reused when a download resumes.

If the release is missing, cannot be downloaded, or fails validation, the same SDK layout is built from source. Downloads and completed vcpkg packages are reused across retries and later runs.

To test another release repository or force a source build:

.\install.ps1 -ReleaseRepository "owner/windows-dependencies"
.\install.ps1 -BuildFromSource -Jobs 4

Pass -Proxy host:port only when the proxy is not already provided through HTTPS_PROXY or HTTP_PROXY.

Optional TizenVG support

The published SDK intentionally excludes TizenVG because its repository is available only on the Samsung network. After installing the public SDK, install.ps1 probes the TizenVG repository automatically:

  • when the repository is reachable, the pinned TizenVG revision is added to WindowsDependenciesSDK;
  • when the repository is unavailable, installation continues without it;
  • after the repository is reached, a TizenVG configure, build, or installation failure is treated as an error.

Without TizenVG, dali-adaptor builds without CanvasRenderer and Lottie support. No separate internal/external option is required.

Build DALi repositories

Build each repository from its own directory. Every command configures, builds, and installs its project; the build tree remains in _build\windows and the installed files are collected in <workspace>\dali-env.

cd <workspace>\dali-core
.\build\windows\build.ps1

cd <workspace>\dali-adaptor
.\build\windows\build.ps1

cd <workspace>\dali-ui
.\build\windows\build.ps1

Build in dependency order: core, adaptor, then UI. Common options are:

.\build\windows\build.ps1 -Clean
.\build\windows\build.ps1 -Configuration Debug
.\build\windows\build.ps1 -Jobs 4

-Clean removes only that repository's _build\windows directory before the new configure. It does not remove WindowsDependenciesSDK or dali-env.

Run dali-ui samples

The sample script also configures, builds, and installs its targets into dali-env\bin.

cd <workspace>\dali-ui\samples
.\build.ps1

Build selected samples or start with a clean sample build tree:

.\build.ps1 -Samples hello-world,text
.\build.ps1 -Clean -Samples hello-world

To run samples, apply the runtime environment to your PowerShell session:

cd <workspace>
. .\dali-env\setenv.ps1
& "$env:DALI_PREFIX\bin\hello-world.example.exe"

This environment setup is required every time you open a new PowerShell terminal.

To set a custom window resolution before running an application:

cd <workspace>
. .\dali-env\setenv.ps1
$env:DALI_WINDOW_WIDTH = "1920"
$env:DALI_WINDOW_HEIGHT = "1080"
& "$env:DALI_PREFIX\bin\hello-world.example.exe"

Use -Configuration Debug with setenv.ps1 when running a Debug build.

Clean builds

For a clean rebuild of one DALi repository, use its -Clean option. For a full workspace rebuild, remove the per-repository build trees, the shared out directory if it exists, dali-env, and WindowsDependenciesSDK, then run install.ps1 again. The source-build cache below <workspace>\windows-dependencies\.deps is independent and may be retained to avoid downloading and rebuilding unchanged third-party inputs.

Build the dependency SDK from source

Normal users should use install.ps1. SDK maintainers can build the public SDK layout directly:

cd <workspace>\windows-dependencies
.\build_windows_dependencies.ps1 -SkipTizenVg -Clean -Jobs 4

The command installs the relocatable dependency SDK in <workspace>\WindowsDependenciesSDK. Low-level vcpkg and TizenVG details are in vcpkg-script/Readme.md.

Automated SDK publication

.github/workflows/windows-sdk-latest.yml runs on a GitHub-hosted Windows 2022 runner when a push to master changes an SDK build input. A merged pull request normally produces that push; documentation-only changes are ignored. Manual runs remain available. The workflow builds the x64 Release SDK without TizenVG and maintains the windows-sdk-latest prerelease.

The release contains:

DALi-WindowsDependenciesSDK-x64.zip
DALi-WindowsDependenciesSDK-x64.zip.sha256
build-inputs.json
sdk-contents.json

When the current build inputs match the published manifest, the scheduled build and upload are skipped. When inputs differ but the produced SDK contents remain the same, only the input manifest is refreshed. The workflow uses the repository-scoped GITHUB_TOKEN with contents: write; it does not require a personal access token or a custom secret.

The workflow publishes only WindowsDependenciesSDK. DALi core, adaptor, UI, and sample binaries remain source builds performed in their own repositories. Future immutable SDK versioning is tracked in WINDOWS-SDK-VERSIONING-TODO.md.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages