Windows developer setup · Core

Build Holder Core

Build and test the shared code that saves, finds, and organises Holder data.

What is Holder Core?

Holder Core, sometimes called libholder, is a library: reusable code that other programs use. Holder Daemon uses this library to work with your data. Core does not have an app window of its own.

These instructions use Visual Studio Community, which has a purple logo. Visual Studio Code, with the blue logo, is a different program.

Install the tools

  1. As explained in the Windows developer setup, you need to install Git and create $HOME\projects\holderteam.
  2. Install Visual Studio Community (2022 or later). It includes tools that turn C++ source code into programs Windows can run. Its installer groups tools into “workloads”; select Desktop development with C++, and accept the pre-selected CMake tools and Windows SDK.

Download the source code

Open PowerShell and run these commands, one line at a time. “Clone” is Git’s word for making your own local copy of a project.

cd $HOME\projects\holderteam
git clone --recurse-submodules https://github.com/HolderTeam/holder.git

Core is the core folder inside holder, the same download the backend guide uses. If you already have it, skip this step.

Build and test Core

A configuration is a saved set of build choices. The first preparation step uses vcpkg, a helper that downloads and builds code Holder depends on. This can take a while and needs additional disk space beyond the Visual Studio installation.

  1. In Visual Studio, choose Open a local folder and select the holder\core folder.
  2. In the configuration drop-down, choose windows-vcpkg-debug. Wait for Visual Studio to finish preparing the project. You can follow its progress in the Output window.
  3. Choose Build → Build All. This project's saved build preset builds the library.
  4. Build the tests too: open View → Solution Explorer, switch to CMake Targets View, then right-click holder_core_tests and choose Build. A target is something the build tools produce; this one is the program that runs Core's tests.
  5. Open Test → Test Explorer, wait for the tests to appear, and choose Run All.

If no tests appear, check that holder_core_tests finished building successfully. An empty test list does not mean the tests passed. If you are stuck, ask for help with the build output.

When the tests finish without failures, you are ready to work on Holder Core. You can now change the code that controls how Holder stores, finds, and organises data, rebuild it, and run the tests again to check your changes.

Continue

You can now share your first change. For more development details, see the Core README.

If you also want to work on another part of Holder, you can build the backend or build the desktop app.