csbuild.py -main_driver() legacy.py -legacy_processing()

legacy.py -build()

build_normal.py -run()

build_normal.py -WindowsBuild() — build -WindowsTraceProcessor() — call collect_wtrace, create ctrace_log, json file or -LinuxBuild() — build -LinuxStracePreprocess() — create ctrace_log, json file

build_normal.py -StaticPreparer() — create init.json, project.json

build_normal.py -final_processing() — merge( StaticMerge() ) or upload( StaticUploader() )

csbuild process

  1. Create csbuild.lock file(for single process)
  2. Initialize(환경 변수 설정)
  3. Parsing options
  4. Build & Collect trace information(Hooking(wtrace/strace))
  5. Construct trace list in chronological order ⇒ output: cstrace.json
  6. Construct toolchain dependency Information ⇒ output: project.json
  7. Collect files(source/header files based on cstrace.json(?))
  8. Upload collected files(source/header files, project.json, init.json)