aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 818af1ac638fb8ef12a513192d6bbc0ba1ea62da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# CruUI

[![macOS CI](https://github.com/crupest/cru/actions/workflows/macos-ci.yml/badge.svg?branch=master)](https://github.com/crupest/cru/actions/workflows/macos-ci.yml)

## overview

_cru_ is a C++ library. The biggest part of it is for UI.

It is **under construction**. It can be built with _CMake_.

After I changed to macOS, Windows feature is left behind now.

## build

_cru_ uses [_vcpkg_](https://github.com/microsoft/vcpkg) with _manifests mode_ to manage dependencies. You must setup vcpkg and `VCPKG_INSTALLATION_ROOT` environment variable.

There is also a automatic python script used in CI. Use python3 to run `tool/win_build.py` to build on Windows. Run with `-h` to see options. For convenience to avoid environment setup it uses _Visual Studio_ generator.

Check the code or fire a issue if you have any problem.

## structure of repository

- `include/` contains public headers.

- `src/` contains the main codes including headers and sources.

- `test/` contains unit tests. Only targets in this directories need `gtest`.

- `demo/` contains sources of demo excutable targets. They are mostly used for integrated tests but can also be used for demonstration.

- `docs` contains docs-related things.

- `tools/` contains some codes of tools like code generators.

  - `tools/cppmerge` contains a _python_ script program that merges all cpp headers and sources into one **single** header and source. **Not use now**.

  - `migrate-1/` contains _python_ scripts that migrate all header and source files into CamelCase. **Not use after migration**.

  - `tools/build.py` is a python3 script to build the source code.

- `snippets/` contains useful snippets file for _Visual Studio_, you can import it. **No longer use any more**, because now I develop CruUI in VS Code.

- `CMakeSettings.json` is a file that helps _Visual Studio_ to config CMake and setup intellisense.