mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-02-05 17:28:23 +08:00
add version info
This commit is contained in:
parent
f783b8693d
commit
ce7c4aaa98
@ -3,6 +3,7 @@ use crate::method_info::MethodInfo;
|
|||||||
use crate::my_string;
|
use crate::my_string;
|
||||||
use crate::object_info::ObjectInfo;
|
use crate::object_info::ObjectInfo;
|
||||||
use crate::script::Script;
|
use crate::script::Script;
|
||||||
|
use crate::version_info::VersionInfo;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct ClassInfo {
|
pub struct ClassInfo {
|
||||||
@ -111,11 +112,27 @@ impl ClassInfo {
|
|||||||
return method_impl;
|
return method_impl;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn script_fn(&self) -> String {
|
pub fn script_fn(&self, version_info: VersionInfo) -> String {
|
||||||
let mut script_fn = String::new();
|
let mut script_fn = String::new();
|
||||||
/* add pikaScriptInit function define */
|
/* add pikaScriptInit function define */
|
||||||
script_fn.push_str("PikaObj *__pikaMain;\r\n");
|
script_fn.push_str("PikaObj *__pikaMain;\r\n");
|
||||||
script_fn.push_str("PikaObj *pikaScriptInit(void){\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 */
|
/* create the root object */
|
||||||
script_fn.push_str(" __pikaMain = newRootObj(\"pikaMain\", New_PikaMain);\r\n");
|
script_fn.push_str(" __pikaMain = newRootObj(\"pikaMain\", New_PikaMain);\r\n");
|
||||||
/* use obj_run to run the script in main.py */
|
/* use obj_run to run the script in main.py */
|
||||||
|
@ -113,7 +113,8 @@ fn main() {
|
|||||||
.get_mut(&"PikaMain".to_string())
|
.get_mut(&"PikaMain".to_string())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
/* make the pikascript.c */
|
/* 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 */
|
/* make the pikascript.h */
|
||||||
let api_file_path = format!("{}pikaScript.h", compiler.dist_path);
|
let api_file_path = format!("{}pikaScript.h", compiler.dist_path);
|
||||||
|
@ -20,7 +20,7 @@ impl VersionInfo {
|
|||||||
|
|
||||||
fn analyze_line(mut self, line: String) -> VersionInfo {
|
fn analyze_line(mut self, line: String) -> VersionInfo {
|
||||||
/* skip void line */
|
/* skip void line */
|
||||||
if (line.as_str() == "") {
|
if line.as_str() == "" {
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
/* print the package info */
|
/* print the package info */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user