You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: TODO.md
+68Lines changed: 68 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,71 @@
1
+
# Versions
2
+
3
+
# 0.1.1
4
+
5
+
Complete working proof of concept of the following
6
+
7
+
- BuildCC library
8
+
- BuildCC bootstrap "script" files (Basic)
9
+
- BuildExe executable (Standalone)
10
+
11
+
Contains the following working features
12
+
13
+
**BuildCC**
14
+
- Supported plugin
15
+
- Clang Compile Commands
16
+
- Toolchain, Generator, TargetInfo and Target interfaces
17
+
- Specialized Toolchain for GCC, MSVC and MINGW
18
+
- Specialized Target for GCC, MSVC and MINGW
19
+
20
+
**BuildExe**
21
+
- Immediate mode
22
+
- Script mode
23
+
- Local Package Manager with git
24
+
25
+
## 0.1.2
26
+
27
+
- Serialization Interface
28
+
- Namespace changes
29
+
- Remove ``buildcc::base``
30
+
- Remove ``buildcc::env``
31
+
- We should only have 3 namespaces ``buildcc``, ``buildcc::plugin`` and ``buildcc::internal``
32
+
- Environment updates
33
+
- Remove ``buildcc::env``
34
+
- Refactor free / static functions and variables into classes with static members and variables. For example. ``buildcc::env::init`` should become ``buildcc::Environment::Init``
35
+
- Args and Register module updates
36
+
- Pch command from command line
37
+
- Make Register functions static. ``Register::Build``
38
+
- Update ``CallbackIf``, ``Build`` and ``Test`` APIs for the ``state`` variable usage
39
+
- Unit testing and mocking for BuildExe
40
+
41
+
## 0.1.3
42
+
43
+
- Make a common interface / internal library which contains all utility functions and libraries
44
+
- New generators
45
+
- Currently we only have a simple Generator which is similar to our FileIOGenerator (input -> subprocess commands -> outputs)
46
+
- Read the ``faq`` generators to make more varied and robust generators.
47
+
48
+
## 0.1.4
49
+
50
+
- Config options updates as per Target requirements
51
+
- Update configs to use ``fmt::format`` with format specifiers for "{prefix}{value}{suffix}" for customizability. For example: `/D{preprocessor}` for msvc or `-D{preprocessor}` for gcc etc
52
+
- Target specialized clang
53
+
- Clang behaves differently depending on its backend
54
+
- Option 1: Consider adding more options to ``ToolchainId`` and different Clang specializations. For example: ``Target_gcc_clang`` or ``Target_msvc_clang`` or ``Target_mingw_clang`` etc
55
+
- Option 2: Consider making a ``Target_clang`` that changes behaviour as per the ``target_triple_architecture`` present in the ``toolchain``
56
+
- What other flavours of clang are present?
57
+
58
+
## 0.2.x
59
+
60
+
-`Append*` APIs
61
+
-`Add*WithFormat` or `Append*WithFormat` APIs
62
+
63
+
## Long Term goals
64
+
65
+
-[Discussion] Supported plugin requirements by users
66
+
-[Discussion] Customizability requirements by users
67
+
-[Discussion] Target and Generator interfaces for standardization by compilers. (White paper)
0 commit comments