From a9281ab7ebe4aaadd6384e8dbca6e52a63fcfba2 Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Fri, 13 Sep 2013 18:48:38 +0200 Subject: Move symmetries code processing from KrancThorn.m into CodeGenSymmetries.m --- Tools/CodeGen/CodeGenSymmetries.m | 19 ++++++++++++++++++- Tools/CodeGen/KrancThorn.m | 12 +----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Tools/CodeGen/CodeGenSymmetries.m b/Tools/CodeGen/CodeGenSymmetries.m index 950cfb5..91b80d1 100644 --- a/Tools/CodeGen/CodeGenSymmetries.m +++ b/Tools/CodeGen/CodeGenSymmetries.m @@ -21,9 +21,10 @@ BeginPackage[ "CodeGenSymmetries`", {"Errors`", "Helpers`", "Kranc`", "CodeGenCactus`", "MapLookup`", "CodeGenKranc`", - "CodeGenC`", "CodeGen`", "KrancGroups`"}]; + "CodeGenC`", "CodeGen`", "KrancGroups`", "Code`", "Object`"}]; CreateSymmetriesRegistrationSource::usage = ""; +SymmetriesProcessCode; Begin["`Private`"]; @@ -107,6 +108,22 @@ DefFn[ CodeGenC`SOURCELANGUAGE = lang; tmp]]; +Options[SymmetriesProcessCode] = ThornOptions; + +DefFn[ + SymmetriesProcessCode[cIn_Code, opts:OptionsPattern[]] := + Module[ + {c = cIn}, + InfoMessage[Terse, "Creating symmetry registration file"]; + c = AppendObjectField[c, "IncludeFiles", "Symmetry.h"]; + c = AppendObjectField[ + c, "Sources", + {Filename -> "RegisterSymmetries.cc", + Contents -> CreateSymmetriesRegistrationSource[ + GetObjectField[c, "Name"], GetObjectField[c,"Implementation"], + GetObjectField[c, "DeclaredGroups"], GetObjectField[c, "Groups"], + OptionValue[ReflectionSymmetries], False]}]]]; + End[]; EndPackage[]; diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m index 309dd37..eae4a76 100644 --- a/Tools/CodeGen/KrancThorn.m +++ b/Tools/CodeGen/KrancThorn.m @@ -243,17 +243,7 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts:OptionsPattern[ Symmetries ------------------------------------------------------------------------ *) - c = AppendObjectField[c, "IncludeFiles", "Symmetry.h"]; - - InfoMessage[Terse, "Creating symmetry registration file"]; - - c = AppendObjectField[ - c, "Sources", - {Filename -> "RegisterSymmetries.cc", - Contents -> CreateSymmetriesRegistrationSource[ - GetObjectField[c, "Name"], GetObjectField[c,"Implementation"], - GetObjectField[c, "DeclaredGroups"], GetObjectField[c, "Groups"], - OptionValue[ReflectionSymmetries], False]}]; + c = SymmetriesProcessCode[c, opts]; (* ------------------------------------------------------------------------ Boundary thorn -- cgit v1.2.3