Skip to content

Commit b079772

Browse files
committed
Build: Make Build just a tool rather than a library
1 parent 43b772e commit b079772

21 files changed

+39
-80
lines changed

Documentation/Doxygen/Doxyfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ INPUT = ../../Documentation/Pages \
1717
../../Documentation/LibrariesExtra \
1818
../../Libraries/Async \
1919
../../Libraries/AsyncStreams \
20-
../../Libraries/Build \
2120
../../Libraries/Containers \
2221
../../Libraries/File \
2322
../../Libraries/FileSystem \

Documentation/Libraries/Hashing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The Hashing library abstracts OS API to compute MD5, SHA1 and SHA256 hashes.
2626

2727
# Status
2828
🟩 Usable
29-
The library is very simple it it has what is needed so far (mainly by [Build](@ref library_build)).
29+
The library is very simple it it has what is needed so far (mainly by [Build](@ref page_build)).
3030

3131
# Description
3232

Documentation/Libraries/Plugin.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ any system or compiler header.
9696

9797
🟦 Complete Features:
9898
- Create minimal clang toolchain to compile scripts on non-developer machines
99-
- Integrate with [Build](@ref library_build) library (once it will gain capability to build standalone without needing Xcode or Visual Studio)
99+
- Integrate with [Build](@ref page_build) library (once it will gain capability to build standalone without needing Xcode or Visual Studio)
100100
- Evaluate possibility to achieve some minimal error recovery
101101
- Easily integration with some RPC mechanism
102102

Documentation/Libraries/Build.md renamed to Documentation/Pages/Build.md

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,9 @@
1-
@page library_build Build
1+
@page page_build SC::Build
22

3-
@brief 🟨 Minimal build system where builds are described in C++
4-
5-
Build uses C++ to imperatively describe a sequence of build operations.
3+
`SC::Build` is a [Tool](@ref page_tools) implementing a build system generator where builds are imperatively described in C++.
64

75
[TOC]
86

9-
# Dependencies
10-
- Direct dependencies: [Containers](@ref library_containers), [FileSystem](@ref library_file_system), [FileSystemIterator](@ref library_file_system_iterator), [Foundation](@ref library_foundation), [Hashing](@ref library_hashing), [Memory](@ref library_memory), [Process](@ref library_process), [Strings](@ref library_strings)
11-
- All dependencies: [Containers](@ref library_containers), [File](@ref library_file), [FileSystem](@ref library_file_system), [FileSystemIterator](@ref library_file_system_iterator), [Foundation](@ref library_foundation), [Hashing](@ref library_hashing), [Memory](@ref library_memory), [Process](@ref library_process), [Strings](@ref library_strings), [Time](@ref library_time)
12-
13-
# Statistics
14-
| Type | Lines Of Code | Comments | Sum |
15-
|-----------|---------------|-----------|-------|
16-
| Headers | 315 | 171 | 486 |
17-
| Sources | 3840 | 539 | 4379 |
18-
| Sum | 4155 | 710 | 4865 |
19-
207
# Features
218

229
- Describe builds in a `.cpp` file
@@ -46,26 +33,6 @@ Projects are generated by invoking `./SC.sh build` or `SC.bat build`.
4633
This is for example the `Tools/SC-build.cpp` file for the `SCTest` test suite and the [SCExample](@ref page_examples):
4734
\include Tools/SC-build.cpp
4835

49-
The abstraction is described by the following (top-down) hierarchy:
50-
51-
| Class | Description |
52-
|:------------------------------|---------------------------------------|
53-
| SC::Build::Definition | @copybrief SC::Build::Definition |
54-
| SC::Build::Workspace | @copybrief SC::Build::Workspace |
55-
| SC::Build::Project | @copybrief SC::Build::Project |
56-
| SC::Build::Configuration | @copybrief SC::Build::Configuration |
57-
58-
Some additional types allow describing detailed properties of the build:
59-
60-
| Class | Description |
61-
|:------------------------------|---------------------------------------|
62-
| SC::Build::Platform | @copybrief SC::Build::Platform |
63-
| SC::Build::Architecture | @copybrief SC::Build::Architecture |
64-
| SC::Build::Generator | @copybrief SC::Build::Generator |
65-
| SC::Build::Optimization | @copybrief SC::Build::Optimization |
66-
| SC::Build::CompileFlags | @copybrief SC::Build::CompileFlags |
67-
| SC::Build::LinkFlags | @copybrief SC::Build::LinkFlags |
68-
6936
# Videos
7037

7138
This is the list of videos that have been recorded showing some of the internal thoughts that have been going into this library:
@@ -99,10 +66,6 @@ Some relevant blog posts are:
9966
- The unity build file `SC.cpp` is linked together in the same invocation
10067
- Provides all needed Platform abstraction features to enumerate files and directories, launch processes etc.
10168
- The generated executable is run as specified in SC::Build::Parameters
102-
- SC::Build::Parameters specifies a combination of:
103-
- SC::Build::Platform @copybrief SC::Build::Platform
104-
- SC::Build::Configuration @copybrief SC::Build::Configuration
105-
- SC::Build::Generator @copybrief SC::Build::Generator
10669
- `SC-build.cpp` calls SC::Build::ConfigurePresets::generateAllPlatforms or manually invokes SC::Build::Definition::generate
10770
- Debugging the build script means just debugging a regular C++ executable
10871

Documentation/Pages/BuildingContributor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Follow this guide if you're interested in building the library to contribute (ch
66

77
# Generate projects
88

9-
The test suite and example projects uses the handmade / self-hosted [SC::Build](@ref library_build) system, that describes builds in C++
9+
The test suite and example projects uses the handmade / self-hosted [SC::Build](@ref page_build) system, that describes builds in C++
1010

1111
## Command-line
1212
- Generate projects

Documentation/Pages/Dependencies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This file describes what each library depends on.
99
- Direct dependencies: [Async](@ref library_async), [Foundation](@ref library_foundation)
1010
- All dependencies: [Async](@ref library_async), [File](@ref library_file), [FileSystem](@ref library_file_system), [Foundation](@ref library_foundation), [Socket](@ref library_socket), [Threading](@ref library_threading), [Time](@ref library_time)
1111

12-
# [Build](@ref library_build)
12+
# [Build](@ref page_build)
1313
- Direct dependencies: [Containers](@ref library_containers), [FileSystem](@ref library_file_system), [FileSystemIterator](@ref library_file_system_iterator), [Foundation](@ref library_foundation), [Hashing](@ref library_hashing), [Memory](@ref library_memory), [Process](@ref library_process), [Strings](@ref library_strings)
1414
- All dependencies: [Containers](@ref library_containers), [File](@ref library_file), [FileSystem](@ref library_file_system), [FileSystemIterator](@ref library_file_system_iterator), [Foundation](@ref library_foundation), [Hashing](@ref library_hashing), [Memory](@ref library_memory), [Process](@ref library_process), [Strings](@ref library_strings), [Time](@ref library_time)
1515

Documentation/Pages/Examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ After compiling (`SC build compile`) executables will be at `_Build/_Outputs/${p
1616
|:--------------|:----------------------------------------------------------------------------------------------------------------------------------|
1717
| Location | `Examples/SCExample` |
1818
| Description | Simple immediate mode gui application using sokol and dear imgui libraries pausing in absence of inputs and I/O to save CPU time |
19-
| Purposes | Use [SC::Build](@ref library_build) to build on macOS, windows and linux and [SC::Async](@ref library_async) as I/O event Loop |
19+
| Purposes | Use [SC::Build](@ref page_build) to build on macOS, windows and linux and [SC::Async](@ref library_async) as I/O event Loop |
2020
| | Use [Plugin](@ref library_plugin) and [FileSystemWatcher](@ref library_file_system_watcher) libraries implementing hot-reload |
2121
| Prerequisites | Linux - Fedora: `sudo dnf install mesa-libGL-devel mesa-libEGL-devel libX11-devel libXi-devel libXcursor-devel` |
2222
| | Linux - Ubuntu: `sudo apt-get install libgles2-mesa-dev libx11-dev libxi-dev libxcursor-dev` |

Documentation/Pages/FAQ.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Targeting:
4040

4141
Usage:
4242

43-
- [Build](@ref library_build) is setting them up automatically for XCode and Visual Studio projects.
43+
- [Build](@ref page_build) is setting them up automatically for XCode and Visual Studio projects.
4444
- Starting the VSCode `launch.json` configurations for lldb and gdb should will load them in your debugger session.
4545
- You can manually `source` or add them to your project or build system
4646

Documentation/Pages/Libraries.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ Library | Description
66
:-------------------------------------------|:----------------------------------------------|---------------
77
@subpage library_async | @copybrief library_async | 5726
88
@subpage library_async_streams | @copybrief library_async_streams | 1977
9-
@subpage library_build | @copybrief library_build | 4155
109
@subpage library_containers | @copybrief library_containers | 874
1110
@subpage library_file | @copybrief library_file | 736
1211
@subpage library_file_system | @copybrief library_file_system | 1332

Documentation/Pages/Tools.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ They leverage the growing shell, system and network programming capabilities of
99
Another way to look at them is just as small _C++ scripts_ for which you don't need to setup or maintain a build system, as long as you only use Sane C++ Libraries.
1010

1111
@note Name is `SC::Tools` and not `SC::Scripts` because they're still just small programs.
12-
If the system will be generalized even more, maybe acquiring more advanced capabilities from [SC::Plugin](@ref library_plugin) and [SC::Build](@ref library_build) or sandboxing capabilities, this naming will be re-evaluated and/or changed.
12+
If the system will be generalized even more, maybe acquiring more advanced capabilities from [SC::Plugin](@ref library_plugin) and [SC::Build](@ref page_build) or sandboxing capabilities, this naming will be re-evaluated and/or changed.
1313

1414
# Blog
1515

@@ -112,7 +112,7 @@ This is the list of tools that currently exist in the Sane C++ repository.
112112

113113
# SC-build.cpp
114114

115-
`SC-build` configures (generating projects) and compiles Sane C++ repository projects using [SC::Build](@ref library_build).
115+
`SC-build` configures (generating projects) and compiles Sane C++ repository projects using [SC::Build](@ref page_build).
116116

117117
## Actions
118118

@@ -247,7 +247,7 @@ This is because all Sane C++ Libraries are compiled just once (the first time, i
247247
# Roadmap
248248

249249
- Generate ready made .vscode configurations to debug the programs easily
250-
- When and if [SC::Build](@ref library_build) will be capable of launching build commands autonomously, get rid of the tool `Tools\Build\$(PLATFORM)` makefiles.
250+
- When and if [SC::Build](@ref page_build) will be capable of launching build commands autonomously, get rid of the tool `Tools\Build\$(PLATFORM)` makefiles.
251251
- Investigate better way of expressing the dependencies chain between scripts
252252
- Investigate if Tools (scripts) can be sandboxed using os facilities
253253
- Do not require to have a C++ toolchain already installed on the system [*]

0 commit comments

Comments
 (0)