Skip to content

Commit 1c8143a

Browse files
committed
Consolidate and add features/fixes plus logging enhancements
1 parent 451269e commit 1c8143a

136 files changed

Lines changed: 9996 additions & 2412 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# CMakeLists.txt for cforge v3.0.1
1+
# CMakeLists.txt for cforge v3.1.0
22
# Generated by cforge - C++ project management tool
33

44
cmake_minimum_required(VERSION 3.15)
55

66
# Project configuration
7-
project(cforge VERSION 3.0.1 LANGUAGES CXX )
7+
project(cforge VERSION 3.1.0 LANGUAGES CXX )
88

99
# Include compiler's implicit include directories in compile_commands.json
1010
# This helps clangd and other tools find standard library headers
@@ -216,7 +216,7 @@ endif()
216216
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
217217
set(CPACK_PACKAGE_VENDOR "Chase Sunstrom")
218218
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A C/C++ build tool with dependency management")
219-
set(CPACK_PACKAGE_VERSION "3.0.1")
219+
set(CPACK_PACKAGE_VERSION "3.1.0")
220220
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}")
221221
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
222222

CMakeSettings.json

Lines changed: 0 additions & 17 deletions
This file was deleted.

README.md

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
A modern C/C++ build tool with Cargo-like simplicity.
44

5-
[![Version](https://img.shields.io/badge/version-3.0.1-blue.svg)](https://github.com/ChaseSunstrom/cforge/releases)
5+
[![Version](https://img.shields.io/badge/version-3.1.0-blue.svg)](https://github.com/ChaseSunstrom/cforge/releases)
66
[![License](https://img.shields.io/badge/license-PolyForm%20NC-green.svg)](LICENSE)
77

88
cforge simplifies C/C++ project management with a clean TOML configuration, automatic dependency resolution, and cross-platform builds. It generates CMake under the hood while providing a much simpler interface.
@@ -143,16 +143,23 @@ spdlog = "1.12.0"
143143
| `cforge lint` | Static analysis with clang-tidy |
144144
| `cforge doc` | Generate documentation with Doxygen |
145145

146-
### Other
146+
### Tools & IDE
147147

148148
| Command | Description |
149149
|---------|-------------|
150150
| `cforge ide` | Generate IDE project files |
151151
| `cforge watch` | Watch for changes and auto-rebuild |
152152
| `cforge package` | Create distributable packages |
153-
| `cforge vcpkg` | Manage vcpkg dependencies |
153+
| `cforge cache` | Manage binary cache |
154154
| `cforge completions` | Generate shell completions |
155+
156+
### Other
157+
158+
| Command | Description |
159+
|---------|-------------|
155160
| `cforge version` | Show version information |
161+
| `cforge upgrade` | Upgrade cforge to the latest version |
162+
| `cforge doctor` | Diagnose environment and check for required tools |
156163
| `cforge help <cmd>` | Show help for a command |
157164

158165
---
@@ -598,11 +605,36 @@ cforge clean --deep # Remove dependencies too
598605

599606
---
600607

601-
## Updating
608+
## Upgrading cforge
602609

603610
```bash
604-
cforge update --self # Update cforge itself
605-
cforge update --packages # Refresh package registry
611+
cforge upgrade # Upgrade cforge to latest version
612+
cforge upgrade --path /opt/cforge # Upgrade to custom location
613+
cforge deps update # Refresh package registry
614+
```
615+
616+
## Data Locations
617+
618+
cforge stores all data in a single location per platform:
619+
620+
**Windows:** `%LOCALAPPDATA%\cforge\`
621+
```
622+
%LOCALAPPDATA%\cforge\
623+
├── installed\cforge\bin\cforge.exe # Binary installation
624+
├── cache\ # Binary cache for dependencies
625+
├── registry\ # Package registry index
626+
└── config.toml # Global configuration
627+
```
628+
629+
**Linux/macOS:** `~/.local/share/cforge\` (XDG compliant)
630+
```
631+
~/.local/share/cforge/
632+
├── installed/cforge/bin/cforge # Binary installation
633+
├── cache/ # Binary cache
634+
└── registry/ # Package registry
635+
636+
~/.config/cforge/
637+
└── config.toml # Global configuration
606638
```
607639

608640
---
Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
3-
<Metadata>
4-
<Identity Id="CforgeVS.7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d" Version="0.2.19" Language="en-US" Publisher="Chase Sunstrom Dev" />
5-
<DisplayName>cforge - C/C++ Build System</DisplayName>
6-
<Description xml:space="preserve">Visual Studio integration for the cforge C/C++ build system. Build, run, test, and manage dependencies for cforge projects directly in Visual Studio.</Description>
7-
<MoreInfo>https://github.com/ChaseSunstrom/cforge</MoreInfo>
8-
<Icon>cforge.png</Icon>
9-
<PreviewImage>cforge.png</PreviewImage>
10-
<Tags>c++, cpp, c, cmake, build, cforge, package manager</Tags>
11-
</Metadata>
12-
<Installation>
13-
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
14-
<ProductArchitecture>amd64</ProductArchitecture>
15-
</InstallationTarget>
16-
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[17.0,18.0)">
17-
<ProductArchitecture>amd64</ProductArchitecture>
18-
</InstallationTarget>
19-
<InstallationTarget Id="Microsoft.VisualStudio.Enterprise" Version="[17.0,18.0)">
20-
<ProductArchitecture>amd64</ProductArchitecture>
21-
</InstallationTarget>
22-
</Installation>
23-
<Dependencies>
24-
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.8,)" />
25-
</Dependencies>
26-
<Prerequisites>
27-
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[17.0,18.0)" DisplayName="Visual Studio core editor" />
28-
<Prerequisite Id="Microsoft.VisualStudio.Component.VC.Tools.x86.x64" Version="[17.0,18.0)" DisplayName="MSVC v143 - VS 2022 C++ x64/x86 build tools" />
29-
</Prerequisites>
30-
<Assets>
31-
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
32-
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
33-
<Asset Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="%CurrentProject%" d:TargetPath="|%CurrentProject%;TemplateProjectOutputGroup|" Path="ProjectTemplates" />
34-
<Asset Type="UnitTestExtension" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
35-
</Assets>
3+
<Metadata>
4+
<Identity Id="CforgeVS.7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d" Version="0.1.1" Language="en-US" Publisher="Chase Sunstrom Dev" />
5+
<DisplayName>cforge - C/C++ Build System</DisplayName>
6+
<Description xml:space="preserve">Visual Studio integration for the cforge C/C++ build system. Build, run, test, and manage dependencies for cforge projects directly in Visual Studio.</Description>
7+
<MoreInfo>https://github.com/ChaseSunstrom/cforge</MoreInfo>
8+
<Icon>cforge.png</Icon>
9+
<PreviewImage>cforge.png</PreviewImage>
10+
<Tags>c++, cpp, c, cmake, build, cforge, package manager</Tags>
11+
</Metadata>
12+
<Installation>
13+
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
14+
<ProductArchitecture>amd64</ProductArchitecture>
15+
</InstallationTarget>
16+
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[17.0,18.0)">
17+
<ProductArchitecture>amd64</ProductArchitecture>
18+
</InstallationTarget>
19+
<InstallationTarget Id="Microsoft.VisualStudio.Enterprise" Version="[17.0,18.0)">
20+
<ProductArchitecture>amd64</ProductArchitecture>
21+
</InstallationTarget>
22+
</Installation>
23+
<Dependencies>
24+
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.8,)" />
25+
</Dependencies>
26+
<Prerequisites>
27+
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[17.0,18.0)" DisplayName="Visual Studio core editor" />
28+
<Prerequisite Id="Microsoft.VisualStudio.Component.VC.Tools.x86.x64" Version="[17.0,18.0)" DisplayName="MSVC v143 - VS 2022 C++ x64/x86 build tools" />
29+
</Prerequisites>
30+
<Assets>
31+
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
32+
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
33+
<Asset Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="%CurrentProject%" d:TargetPath="|%CurrentProject%;TemplateProjectOutputGroup|" Path="ProjectTemplates" />
34+
<Asset Type="UnitTestExtension" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
35+
</Assets>
3636
</PackageManifest>

0 commit comments

Comments
 (0)