diff --git a/compiler/load/src/file.rs b/compiler/load/src/file.rs index 01a743cc47..19b0acba38 100644 --- a/compiler/load/src/file.rs +++ b/compiler/load/src/file.rs @@ -2099,8 +2099,29 @@ fn parse_header<'a>( } To::NewPackage(package_or_path) => match package_or_path { PackageOrPath::Package(_, _) => panic!("TODO implement packages"), - PackageOrPath::Path(StrLiteral::PlainLine(_package)) => { - panic!("TODO implement plain line package path") + PackageOrPath::Path(StrLiteral::PlainLine(package)) => { + // check whether we can find a Pkg-Config.roc file + let mut pkg_config_roc = pkg_config_dir.clone(); + pkg_config_roc.push(package); + pkg_config_roc.push(PKG_CONFIG_FILE_NAME); + pkg_config_roc.set_extension(ROC_FILE_EXTENSION); + + if pkg_config_roc.as_path().exists() { + let load_pkg_config_msg = load_pkg_config( + arena, + &pkg_config_dir, + module_ids, + ident_ids_by_module, + mode, + )?; + + Ok(( + module_id, + Msg::Many(vec![app_module_header_msg, load_pkg_config_msg]), + )) + } else { + Ok((module_id, app_module_header_msg)) + } } PackageOrPath::Path(StrLiteral::Block(_)) => { panic!("TODO implement block package path")