@@ -66,10 +66,21 @@ OUTDIR="$PROJROOT/target/bootstrap"
6666PCMDIR=" $OUTDIR /pcm.cache"
6767OBJDIR=" $OUTDIR /obj"
6868BINDIR=" $OUTDIR /bin"
69- mkdir -p " $PCMDIR " " $OBJDIR " " $BINDIR "
69+ DEPSDIR=" $OUTDIR /deps"
70+ mkdir -p " $PCMDIR " " $OBJDIR " " $BINDIR " " $DEPSDIR "
71+
72+ # ─── Fetch dependencies ─────────────────────────────────────────────────────
73+ echo " :: Fetching dependencies"
74+ # mcpplibs.cmdline — small cmdline parsing library
75+ CMDLINE_URL=" https://github.com/mcpplibs/cmdline/archive/refs/tags/0.0.1.tar.gz"
76+ if [ ! -d " $DEPSDIR /cmdline" ]; then
77+ curl -fsSL " $CMDLINE_URL " | tar -xz -C " $DEPSDIR "
78+ mv " $DEPSDIR /cmdline-0.0.1" " $DEPSDIR /cmdline"
79+ fi
80+ echo " mcpplibs.cmdline at: $DEPSDIR /cmdline/src/"
7081
7182# Export for Python
72- export PROJROOT OUTDIR PCMDIR OBJDIR BINDIR CXX LLVM_ROOT STD_CPPM STD_COMPAT_CPPM SDKROOT
83+ export PROJROOT OUTDIR PCMDIR OBJDIR BINDIR DEPSDIR CXX LLVM_ROOT STD_CPPM STD_COMPAT_CPPM SDKROOT
7384
7485echo
7586echo " :: Compiling mcpp (42 modules + main.cpp)..."
@@ -86,6 +97,7 @@ outdir = Path(os.environ["OUTDIR"])
8697pcmdir = Path(os.environ[" PCMDIR" ])
8798objdir = Path(os.environ[" OBJDIR" ])
8899bindir = Path(os.environ[" BINDIR" ])
100+ depsdir = Path(os.environ[" DEPSDIR" ])
89101cxx = os.environ[" CXX" ]
90102sdkroot = os.environ[" SDKROOT" ]
91103std_cppm = os.environ[" STD_CPPM" ]
@@ -132,7 +144,11 @@ re_export = re.compile(r'^\s*export\s+module\s+([\w.]+)\s*;')
132144re_import = re.compile(r ' ^ \s * (?: export\s + ) ? import\s + ( [\w . ]+ ) \s * ;' )
133145re_module = re.compile(r ' ^ \s * module\s + ( [\w . ]+ ) \s * ;' ) # module implementation unit
134146
147+ # Include both project sources and dependency sources
135148sources = sorted (projroot.glob(" src/**/*.cppm" )) + sorted (projroot.glob(" src/**/*.cpp" ))
149+ # Add dependency modules (mcpplibs.cmdline)
150+ dep_sources = sorted (depsdir.glob(" cmdline/src/*.cppm" ))
151+ sources = dep_sources + sources # deps first so they're available
136152
137153# Map: module_name -> source_path
138154mod_source = {}
0 commit comments