From 9ec08a2c201a8b67fb5d095f665e86ef80a16bea Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Fri, 13 Sep 2013 16:33:45 +0200 Subject: Move parameter checking code processing from KrancThorn.m to ParamCheck.m --- Tools/CodeGen/KrancThorn.m | 7 +------ Tools/CodeGen/ParamCheck.m | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m index c8bf952..e684f2b 100644 --- a/Tools/CodeGen/KrancThorn.m +++ b/Tools/CodeGen/KrancThorn.m @@ -334,12 +334,7 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts:OptionsPattern[ Add parameter check source file ------------------------------------------------------------------------ *) - If[Length[OptionValue[ParameterConditions]] > 0, - c = AppendObjectField[ - c, "Sources", - {Filename -> "ParamCheck.cc", - Contents -> ParameterCheckSource[GetObjectField[c, "Name"], - OptionValue[ParameterConditions]]}]]; + c = ParamCheckProcessCode[c, opts]; (* ------------------------------------------------------------------------ Create finite differencing header file diff --git a/Tools/CodeGen/ParamCheck.m b/Tools/CodeGen/ParamCheck.m index 551c433..ac6ab22 100644 --- a/Tools/CodeGen/ParamCheck.m +++ b/Tools/CodeGen/ParamCheck.m @@ -19,10 +19,11 @@ *) BeginPackage["ParamCheck`", {"Errors`", "Helpers`", "Kranc`", "CodeGenCactus`", - "CodeGenC`", "CodeGen`", "CodeGenKranc`"}]; + "CodeGenC`", "CodeGen`", "CodeGenKranc`", "Code`", "Object`"}]; ParameterCheckSource; ParameterCheckSchedule; +ParamCheckProcessCode; Begin["`Private`"]; @@ -81,6 +82,20 @@ DefFn[checkCondition[{cond_, error_String}] := renderbool[cond], {"CCTK_WARN(CCTK_WARN_ABORT, ", StringDrop[Stringify[error],-1], ");\n"}]]]; +Options[ParamCheckProcessCode] = ThornOptions; + +DefFn[ + ParamCheckProcessCode[cIn_Code, opts:OptionsPattern[]] := + Module[ + {c = cIn}, + If[Length[OptionValue[ParameterConditions]] > 0, + c = AppendObjectField[ + c, "Sources", + {Filename -> "ParamCheck.cc", + Contents -> ParameterCheckSource[GetObjectField[c, "Name"], + OptionValue[ParameterConditions]]}]]; + c]]; + End[]; EndPackage[]; -- cgit v1.2.3