add version info

This commit is contained in:
lyon 2022-01-31 01:02:31 +08:00
parent f783b8693d
commit ce7c4aaa98
3 changed files with 21 additions and 3 deletions

View File

@ -3,6 +3,7 @@ use crate::method_info::MethodInfo;
use crate::my_string;
use crate::object_info::ObjectInfo;
use crate::script::Script;
use crate::version_info::VersionInfo;
use std::collections::BTreeMap;
#[derive(Debug)]
pub struct ClassInfo {
@ -111,11 +112,27 @@ impl ClassInfo {
return method_impl;
}
pub fn script_fn(&self) -> String {
pub fn script_fn(&self, version_info: VersionInfo) -> String {
let mut script_fn = String::new();
/* add pikaScriptInit function define */
script_fn.push_str("PikaObj *__pikaMain;\r\n");
script_fn.push_str("PikaObj *pikaScriptInit(void){\r\n");
/* print version info */
script_fn.push_str(
" __platform_printf(\"======[pikascript packages installed]======\\r\\n\");\r\n",
);
for (package_name, package_version) in version_info.package_list {
script_fn.push_str(
format!(
" __platform_printf(\"{}=={}\\r\\n\");\r\n",
package_name, package_version
)
.as_str(),
);
}
script_fn.push_str(
" __platform_printf(\"===========================================\\r\\n\");\r\n",
);
/* create the root object */
script_fn.push_str(" __pikaMain = newRootObj(\"pikaMain\", New_PikaMain);\r\n");
/* use obj_run to run the script in main.py */

View File

@ -113,7 +113,8 @@ fn main() {
.get_mut(&"PikaMain".to_string())
.unwrap();
/* make the pikascript.c */
f.write(pika_main.script_fn().as_bytes()).unwrap();
f.write(pika_main.script_fn(version_info).as_bytes())
.unwrap();
/* make the pikascript.h */
let api_file_path = format!("{}pikaScript.h", compiler.dist_path);

View File

@ -20,7 +20,7 @@ impl VersionInfo {
fn analyze_line(mut self, line: String) -> VersionInfo {
/* skip void line */
if (line.as_str() == "") {
if line.as_str() == "" {
return self;
}
/* print the package info */