Tools: Move bindings generator into generator folder.

This commit is contained in:
tritao
2025-02-08 15:30:33 +00:00
parent a0578fa302
commit 21d3cc0e78
22 changed files with 35 additions and 34 deletions

View File

@@ -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"

View File

@@ -1,4 +1,2 @@
# ignore the pyc files created while compile
*.pyc
generateBase/*.pyc
generateTemplates/*.pyc

3
src/Tools/bindings/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
# ignore the pyc files created while compile
model/*.pyc
templates/*.pyc

View File

@@ -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]

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -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/"

View File

@@ -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

View File

@@ -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 = """
/***************************************************************************