From 21d3cc0e78b2bb0c653ee74149588a5d091bce0c Mon Sep 17 00:00:00 2001 From: tritao Date: Sat, 8 Feb 2025 15:30:33 +0000 Subject: [PATCH] Tools: Move bindings generator into `generator` folder. --- cMake/FreeCadMacros.cmake | 4 ++-- src/Tools/.gitignore | 2 -- src/Tools/bindings/.gitignore | 3 +++ src/Tools/{ => bindings}/generate.py | 12 ++++++------ .../{generateBase => bindings/model}/__init__.py | 0 .../{generateBase => bindings/model}/generateDS.py | 0 .../model}/generateMetaModel_Module.xsd | 0 .../model}/generateModel_Module.py | 0 .../model}/generateModel_ModuleTest.xml | 0 .../model}/generateTools.py | 0 .../templates}/template.py | 0 .../templates}/templateCPPFile.py | 6 +++--- .../templates}/templateClassPyExport.py | 12 ++++++------ .../templates}/templateModule.py | 2 +- .../templates}/templateModuleApp.py | 8 ++++---- .../templates}/templateModuleAppFeature.py | 12 ++++++------ .../templates}/templateModuleAppMain.py | 8 ++++---- src/Tools/generateTemplates/__init__.py | 0 src/Tools/generateTemplates/templateCMakeFile.py | 0 src/Tools/generateTemplates/templateHeaderFile.py | 0 src/Tools/generateTemplates/templateInitGuiPy.py | 0 src/Tools/generateTemplates/templateInitPy.py | 0 22 files changed, 35 insertions(+), 34 deletions(-) create mode 100644 src/Tools/bindings/.gitignore rename src/Tools/{ => bindings}/generate.py (83%) rename src/Tools/{generateBase => bindings/model}/__init__.py (100%) rename src/Tools/{generateBase => bindings/model}/generateDS.py (100%) rename src/Tools/{generateBase => bindings/model}/generateMetaModel_Module.xsd (100%) rename src/Tools/{generateBase => bindings/model}/generateModel_Module.py (100%) rename src/Tools/{generateBase => bindings/model}/generateModel_ModuleTest.xml (100%) rename src/Tools/{generateBase => bindings/model}/generateTools.py (100%) rename src/Tools/{generateTemplates => bindings/templates}/template.py (100%) rename src/Tools/{generateTemplates => bindings/templates}/templateCPPFile.py (91%) rename src/Tools/{generateTemplates => bindings/templates}/templateClassPyExport.py (96%) rename src/Tools/{generateTemplates => bindings/templates}/templateModule.py (80%) rename src/Tools/{generateTemplates => bindings/templates}/templateModuleApp.py (76%) rename src/Tools/{generateTemplates => bindings/templates}/templateModuleAppFeature.py (79%) rename src/Tools/{generateTemplates => bindings/templates}/templateModuleAppMain.py (84%) delete mode 100644 src/Tools/generateTemplates/__init__.py delete mode 100644 src/Tools/generateTemplates/templateCMakeFile.py delete mode 100644 src/Tools/generateTemplates/templateHeaderFile.py delete mode 100644 src/Tools/generateTemplates/templateInitGuiPy.py delete mode 100644 src/Tools/generateTemplates/templateInitPy.py diff --git a/cMake/FreeCadMacros.cmake b/cMake/FreeCadMacros.cmake index 351909a1b1..f7ad80837a 100644 --- a/cMake/FreeCadMacros.cmake +++ b/cMake/FreeCadMacros.cmake @@ -126,7 +126,7 @@ ENDMACRO(fc_target_copy_resource_flat) # It would be a bit cleaner to generate these files in ${CMAKE_CURRENT_BINARY_DIR} macro(generate_from_xml BASE_NAME) - set(TOOL_PATH "${CMAKE_SOURCE_DIR}/src/Tools/generate.py") + set(TOOL_PATH "${CMAKE_SOURCE_DIR}/src/Tools/bindings/generate.py") file(TO_NATIVE_PATH "${TOOL_PATH}" TOOL_NATIVE_PATH) file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${BASE_NAME}.xml" SOURCE_NATIVE_PATH) @@ -147,7 +147,7 @@ macro(generate_from_xml BASE_NAME) COMMAND ${PYTHON_EXECUTABLE} "${TOOL_NATIVE_PATH}" --outputPath "${OUTPUT_NATIVE_PATH}" ${BASE_NAME}.xml MAIN_DEPENDENCY "${BASE_NAME}.xml" DEPENDS - "${CMAKE_SOURCE_DIR}/src/Tools/generateTemplates/templateClassPyExport.py" + "${CMAKE_SOURCE_DIR}/src/Tools/bindings/templates/templateClassPyExport.py" "${TOOL_PATH}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Building ${BASE_NAME}.h/.cpp out of ${BASE_NAME}.xml" diff --git a/src/Tools/.gitignore b/src/Tools/.gitignore index f52f64fbf9..fca8f1ad66 100644 --- a/src/Tools/.gitignore +++ b/src/Tools/.gitignore @@ -1,4 +1,2 @@ # ignore the pyc files created while compile *.pyc -generateBase/*.pyc -generateTemplates/*.pyc diff --git a/src/Tools/bindings/.gitignore b/src/Tools/bindings/.gitignore new file mode 100644 index 0000000000..58a54ec181 --- /dev/null +++ b/src/Tools/bindings/.gitignore @@ -0,0 +1,3 @@ +# ignore the pyc files created while compile +model/*.pyc +templates/*.pyc diff --git a/src/Tools/generate.py b/src/Tools/bindings/generate.py similarity index 83% rename from src/Tools/generate.py rename to src/Tools/bindings/generate.py index bd8e216473..b472a374d5 100644 --- a/src/Tools/generate.py +++ b/src/Tools/bindings/generate.py @@ -3,9 +3,9 @@ # (c) 2006 Jürgen Riegel GPL import os, sys, getopt -import generateBase.generateModel_Module -import generateTemplates.templateModule -import generateTemplates.templateClassPyExport +import model.generateModel_Module +import templates.templateModule +import templates.templateClassPyExport Usage = """generate - generates a FreeCAD Module out of an XML model @@ -33,16 +33,16 @@ Version: def generate(filename, outputPath): # load model - GenerateModelInst = generateBase.generateModel_Module.parse(filename) + GenerateModelInst = model.generateModel_Module.parse(filename) if len(GenerateModelInst.Module) != 0: - Module = generateTemplates.templateModule.TemplateModule() + Module = templates.templateModule.TemplateModule() Module.outputDir = outputPath Module.module = GenerateModelInst.Module[0] Module.Generate() print("Done generating: " + GenerateModelInst.Module[0].Name) else: - Export = generateTemplates.templateClassPyExport.TemplateClassPyExport() + Export = templates.templateClassPyExport.TemplateClassPyExport() Export.outputDir = outputPath + "/" Export.inputDir = os.path.dirname(filename) + "/" Export.export = GenerateModelInst.PythonExport[0] diff --git a/src/Tools/generateBase/__init__.py b/src/Tools/bindings/model/__init__.py similarity index 100% rename from src/Tools/generateBase/__init__.py rename to src/Tools/bindings/model/__init__.py diff --git a/src/Tools/generateBase/generateDS.py b/src/Tools/bindings/model/generateDS.py similarity index 100% rename from src/Tools/generateBase/generateDS.py rename to src/Tools/bindings/model/generateDS.py diff --git a/src/Tools/generateBase/generateMetaModel_Module.xsd b/src/Tools/bindings/model/generateMetaModel_Module.xsd similarity index 100% rename from src/Tools/generateBase/generateMetaModel_Module.xsd rename to src/Tools/bindings/model/generateMetaModel_Module.xsd diff --git a/src/Tools/generateBase/generateModel_Module.py b/src/Tools/bindings/model/generateModel_Module.py similarity index 100% rename from src/Tools/generateBase/generateModel_Module.py rename to src/Tools/bindings/model/generateModel_Module.py diff --git a/src/Tools/generateBase/generateModel_ModuleTest.xml b/src/Tools/bindings/model/generateModel_ModuleTest.xml similarity index 100% rename from src/Tools/generateBase/generateModel_ModuleTest.xml rename to src/Tools/bindings/model/generateModel_ModuleTest.xml diff --git a/src/Tools/generateBase/generateTools.py b/src/Tools/bindings/model/generateTools.py similarity index 100% rename from src/Tools/generateBase/generateTools.py rename to src/Tools/bindings/model/generateTools.py diff --git a/src/Tools/generateTemplates/template.py b/src/Tools/bindings/templates/template.py similarity index 100% rename from src/Tools/generateTemplates/template.py rename to src/Tools/bindings/templates/template.py diff --git a/src/Tools/generateTemplates/templateCPPFile.py b/src/Tools/bindings/templates/templateCPPFile.py similarity index 91% rename from src/Tools/generateTemplates/templateCPPFile.py rename to src/Tools/bindings/templates/templateCPPFile.py index 1073dc996a..e6fbbd0164 100644 --- a/src/Tools/generateTemplates/templateCPPFile.py +++ b/src/Tools/bindings/templates/templateCPPFile.py @@ -3,13 +3,13 @@ # (c) 2006 Juergen Riegel import template -import generateBase.generateModel_Module -import generateBase.generateTools +import model.generateModel_Module +import model.generateTools class TemplateCPPFile(template.ModelTemplate): def Generate(self): - generateBase.generateTools.ensureDir(self.outputDir) + model.generateTools.ensureDir(self.outputDir) print("Generate() App Dir") diff --git a/src/Tools/generateTemplates/templateClassPyExport.py b/src/Tools/bindings/templates/templateClassPyExport.py similarity index 96% rename from src/Tools/generateTemplates/templateClassPyExport.py rename to src/Tools/bindings/templates/templateClassPyExport.py index 655601635d..56e1142259 100644 --- a/src/Tools/generateTemplates/templateClassPyExport.py +++ b/src/Tools/bindings/templates/templateClassPyExport.py @@ -5,8 +5,8 @@ from . import template import os, sys -import generateBase.generateModel_Module -import generateBase.generateTools +import model.generateModel_Module +import model.generateTools class TemplateClassPyExport(template.ModelTemplate): @@ -39,19 +39,19 @@ class TemplateClassPyExport(template.ModelTemplate): if not os.path.exists(inputDir + exportName + "Imp.cpp"): file = open(outputImp, "wb") print("TemplateClassPyExport", "TemplateImplement", file.name) - generateBase.generateTools.replace(self.TemplateImplement, locals(), file) + model.generateTools.replace(self.TemplateImplement, locals(), file) file.close() outputCpp = outputDir + exportName + ".cpp" with open(outputCpp, "wb") as file: print("TemplateClassPyExport", "TemplateModule", file.name) - generateBase.generateTools.replace(self.TemplateModule, locals(), file) + model.generateTools.replace(self.TemplateModule, locals(), file) outputHeader = outputDir + exportName + ".h" with open(outputHeader, "wb") as file: print("TemplateClassPyExport", "TemplateHeader", file.name) - generateBase.generateTools.replace(self.TemplateHeader, locals(), file) - # file.write( generateBase.generateTools.replace(self.Template,locals())) + model.generateTools.replace(self.TemplateHeader, locals(), file) + # file.write( model.generateTools.replace(self.Template,locals())) TemplateHeader = """ // This file is generated by src/Tools/generateTemplates/templateClassPyExport.py out of the XML file diff --git a/src/Tools/generateTemplates/templateModule.py b/src/Tools/bindings/templates/templateModule.py similarity index 80% rename from src/Tools/generateTemplates/templateModule.py rename to src/Tools/bindings/templates/templateModule.py index ee14cc2da4..3f8457f56d 100644 --- a/src/Tools/generateTemplates/templateModule.py +++ b/src/Tools/bindings/templates/templateModule.py @@ -7,7 +7,7 @@ from . import template, templateModuleApp class TemplateModule(template.ModelTemplate): def Generate(self): - print("generateBase.generateModel_Module.Generate()\n") + print("model.generateModel_Module.Generate()\n") App = templateModuleApp.TemplateModuleApp() App.outputDir = self.outputDir App.module = self.module diff --git a/src/Tools/generateTemplates/templateModuleApp.py b/src/Tools/bindings/templates/templateModuleApp.py similarity index 76% rename from src/Tools/generateTemplates/templateModuleApp.py rename to src/Tools/bindings/templates/templateModuleApp.py index 02f18a22ef..b73783384a 100644 --- a/src/Tools/generateTemplates/templateModuleApp.py +++ b/src/Tools/bindings/templates/templateModuleApp.py @@ -3,14 +3,14 @@ # (c) 2007 Juergen Riegel from . import template, templateModuleAppMain, templateModuleAppFeature -import generateBase.generateModel_Module -import generateBase.generateTools +import model.generateModel_Module +import model.generateTools class TemplateModuleApp(template.ModelTemplate): def Generate(self): AppPath = self.outputDir + "/App/" - generateBase.generateTools.ensureDir(AppPath) + model.generateTools.ensureDir(AppPath) # the main module files AppMain = templateModuleAppMain.TemplateModuleAppMain() @@ -19,7 +19,7 @@ class TemplateModuleApp(template.ModelTemplate): AppMain.Generate() # Features - generateBase.generateTools.ensureDir(AppPath + "Features/") + model.generateTools.ensureDir(AppPath + "Features/") for i in self.module.Content.Feature: AppFeature = templateModuleAppFeature.TemplateFeature() AppFeature.outputDir = AppPath + "Features/" diff --git a/src/Tools/generateTemplates/templateModuleAppFeature.py b/src/Tools/bindings/templates/templateModuleAppFeature.py similarity index 79% rename from src/Tools/generateTemplates/templateModuleAppFeature.py rename to src/Tools/bindings/templates/templateModuleAppFeature.py index 0193bf91bb..0821cda539 100644 --- a/src/Tools/generateTemplates/templateModuleAppFeature.py +++ b/src/Tools/bindings/templates/templateModuleAppFeature.py @@ -3,19 +3,19 @@ # (c) 2006 Juergen Riegel from . import template -import generateBase.generateModel_Module -import generateBase.generateTools +import model.generateModel_Module +import model.generateTools class TemplateFeature(template.ModelTemplate): def Generate(self): file = open(self.outputDir + self.feature.Name + "Imp.cpp", "w") - generateBase.generateTools.replace(self.TemplateImplement, locals(), file) + model.generateTools.replace(self.TemplateImplement, locals(), file) file = open(self.outputDir + self.feature.Name + ".cpp", "w") - generateBase.generateTools.replace(self.TemplateModule, locals(), file) + model.generateTools.replace(self.TemplateModule, locals(), file) file = open(self.outputDir + self.feature.Name + ".h", "w") - generateBase.generateTools.replace(self.TemplateHeader, locals(), file) - # file.write( generateBase.generateTools.replace(self.Template,locals())) + model.generateTools.replace(self.TemplateHeader, locals(), file) + # file.write( model.generateTools.replace(self.Template,locals())) TemplateHeader = """ #ifndef @self.module.Name.upper()@_FEATURE_@self.feature.Name.upper()@_H diff --git a/src/Tools/generateTemplates/templateModuleAppMain.py b/src/Tools/bindings/templates/templateModuleAppMain.py similarity index 84% rename from src/Tools/generateTemplates/templateModuleAppMain.py rename to src/Tools/bindings/templates/templateModuleAppMain.py index 48967d4ef7..5c16038321 100644 --- a/src/Tools/generateTemplates/templateModuleAppMain.py +++ b/src/Tools/bindings/templates/templateModuleAppMain.py @@ -3,15 +3,15 @@ # (c) 2006 Juergen Riegel from . import template -import generateBase.generateModel_Module -import generateBase.generateTools +import model.generateModel_Module +import model.generateTools class TemplateModuleAppMain(template.ModelTemplate): def Generate(self): file = open(self.outputDir + "/App" + self.module.Name + ".cpp", "w") - generateBase.generateTools.replace(self.Template, locals(), file) - # file.write( generateBase.generateTools.replace(self.Template,locals())) + model.generateTools.replace(self.Template, locals(), file) + # file.write( model.generateTools.replace(self.Template,locals())) Template = """ /*************************************************************************** diff --git a/src/Tools/generateTemplates/__init__.py b/src/Tools/generateTemplates/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/Tools/generateTemplates/templateCMakeFile.py b/src/Tools/generateTemplates/templateCMakeFile.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/Tools/generateTemplates/templateHeaderFile.py b/src/Tools/generateTemplates/templateHeaderFile.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/Tools/generateTemplates/templateInitGuiPy.py b/src/Tools/generateTemplates/templateInitGuiPy.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/Tools/generateTemplates/templateInitPy.py b/src/Tools/generateTemplates/templateInitPy.py deleted file mode 100644 index e69de29bb2..0000000000