Skip to content

Latest commit

 

History

42 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUI

CUI is a development-stage C17-facing style, text, rendering, and semantic-icon backend for native Windows applications. The current package is Windows/MSVC only and is not a low-code, component-framework, cross-platform, or supported release claim. Its package version is deliberately 0.0.0 until a public 2.x candidate is selected.

The Gallery is a first-party conformance application, but it builds as an external consumer: it can see only an installed CUI package and links the imported CUI::cui and CUI::icons_lucide targets. Gallery-owned layout, state, Media Foundation, input, and accessibility code are not library APIs.

Build and install CUI

$cmake = 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe'
$ctest = Join-Path (Split-Path $cmake) 'ctest.exe'
$buildRoot = Join-Path $env:TEMP "cui-local-$PID"
$cuiBuild = Join-Path $buildRoot 'cui'
$galleryBuild = Join-Path $buildRoot 'gallery'
$prefix = Join-Path $buildRoot 'prefix'

& $cmake -S . -B $cuiBuild -G 'Visual Studio 17 2022' -A x64
& $cmake --build $cuiBuild --config Release
& $cmake --install $cuiBuild --config Release --prefix $prefix

The install tree contains the static libraries, public headers, CMake package files, and applicable license material. Applications use:

find_package(CUI 0.0.0 EXACT CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE CUI::cui)
# Add CUI::icons_lucide only when the bundled Lucide pack is wanted.
set_property(
  TARGET my_app
  PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>"
)

The current static package uses the static MSVC runtime, so consumers must match /MT (/MTd for Debug) as shown above.

Build Gallery from the installed package

& $cmake -S gallery -B $galleryBuild -G 'Visual Studio 17 2022' -A x64 `
  -DCUI_DIR="$prefix/lib/cmake/CUI" `
  -DCUI_GALLERY_EXPECTED_PREFIX="$prefix" `
  -DCMAKE_FIND_USE_PACKAGE_REGISTRY=FALSE `
  -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=FALSE
& $cmake --build $galleryBuild --config Release
& $ctest --test-dir $galleryBuild -C Release --output-on-failure

The root test is the stricter regression gate. It installs CUI, copies Gallery and its app-owned assets to an isolated directory without include/ or src/, builds against the exact staged CUI_DIR, rejects source-tree path leakage, checks the bundle files, and runs Gallery's self-test:

& $ctest --test-dir $cuiBuild -C Release --output-on-failure

Passing this gate proves the package/build boundary for the first-party Gallery. It does not by itself prove a stable general extension API or an independent multi-project consumer.

Local output policy

out/ contains only release/, the latest verified five-file Gallery bundle. CMake build/install trees are temporary and stay outside out; after the package test and live startup check pass, the verified Gallery bin replaces the previous out/release contents.

About

Minimal native Windows C/C++ UI library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages