|
1 |
| -@page library_build Build |
| 1 | +@page page_build SC::Build |
2 | 2 |
|
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++. |
6 | 4 |
|
7 | 5 | [TOC]
|
8 | 6 |
|
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 |
| - |
20 | 7 | # Features
|
21 | 8 |
|
22 | 9 | - Describe builds in a `.cpp` file
|
@@ -46,26 +33,6 @@ Projects are generated by invoking `./SC.sh build` or `SC.bat build`.
|
46 | 33 | This is for example the `Tools/SC-build.cpp` file for the `SCTest` test suite and the [SCExample](@ref page_examples):
|
47 | 34 | \include Tools/SC-build.cpp
|
48 | 35 |
|
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 |
| - |
69 | 36 | # Videos
|
70 | 37 |
|
71 | 38 | 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:
|
99 | 66 | - The unity build file `SC.cpp` is linked together in the same invocation
|
100 | 67 | - Provides all needed Platform abstraction features to enumerate files and directories, launch processes etc.
|
101 | 68 | - 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 |
106 | 69 | - `SC-build.cpp` calls SC::Build::ConfigurePresets::generateAllPlatforms or manually invokes SC::Build::Definition::generate
|
107 | 70 | - Debugging the build script means just debugging a regular C++ executable
|
108 | 71 |
|
|
0 commit comments