- Bootstrapping
- CMake is used to create BuildCC
- We now create a BuildCC executable that creates BuildCC
- BuildCC bootstrap executable through CMake (Static Libraries during linkage)
- BuildCC bootstrap executable through CMake (Dynamic Libraries during linkage)
- BuildCC bootstrap executable through BuildCC bootstrap executable (similar to the CMake executable)
- C++20 module support
- Understand flags
- Understand procedure for GCC, MSVC and Clang
- Plugin - BuildCCFind
- Find executable
- Find toolchain
- Plugin - ClangFormat
- Plugin - Graph Visualizer
- Append Setter APIs for Target
- Doxygen
- Online documentation (read the docs)
- Github pages
- CI/CD
- Linux
- GCC
- Clang
- Windows
- MSVC
- Clang
- MinGW
- MacOS
- Linux
- Codacy
- Speed vs Memory considerations
- Currently the project favours speed over memory usage
-
std::stringvsstd::string_viewvsconst char *usage- NOTE, We cannot convert between
std::string_viewandconst char *which makes it harder to usestd::string_viewfor certain APIs
- NOTE, We cannot convert between
- Improve Branch Coverage
- Profiling BuildCC using Tracy
- Speed comparison between CMake and BuildCC (Release)
- Speed profiling
subprocessvsstd::systemwith gprof and qcachegrind- NOTE, Since we have Taskflow for parallel programming, we do not need to construct a multi-threaded subprocess.
- Subprocess should typically replicate
std::systemfunctionality while offering better security.
- Cross compiling
- Debugging using VSCode
- Debugging using GDB
- Check the GDBFrontend project