6 Triple-use minimum working example for PyXMake. This script can be 7 executed in three different ways in varying levels of accessibility 9 @note: Compile MCODAC for ABAQUS Standard & Explicit 10 on Windows. Can be combined with self-written code alike. 14 ---------------------------------------------------------------------------------------------- 21 @author: garb_ma [DLR-FA,STM Braunschweig] 22 ---------------------------------------------------------------------------------------------- 31 sys.path.insert(0,os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
35 from PyXMake
import VTL
41 os.environ[
"pyx_abaqus"] =
"abaqus" 45 from PyCODAC.Tools.Utility
import GetPyCODACPath
47 __mcd_core_path = os.path.join(GetPyCODACPath(),
"Core")
54 ErrorHandling.InputError(20)
59 files="mcd_astandard",
60 command = VTL.GetBuildCommand(6),
63 source=os.path.join(__mcd_core_path,
"solver"),
64 include=list(Utility.ArbitraryFlattening([[os.path.join(__mcd_core_path,
"include",Utility.GetPlatform(),__arch)],
65 [os.path.join(__mcd_core_path,
"include",Utility.GetPlatform(),__arch, x)
for x
in VTL.GetIncludeDirectory(__mcd_core_path, 0, 4, __arch)]])),
66 dependency=os.path.join(__mcd_core_path,
"lib",Utility.GetPlatform(),__arch),
67 output=os.path.join(__mcd_core_path,
"bin",Utility.GetPlatform(),__arch),
69 scratch=VTL.Scratch, verbosity=1):
71 Main function to execute the script. 74 ABQBuild = pyx.Custom(BuildID, files, scratch=scratch, msvsc=
"vs2015", arch=__arch, verbose=verbosity)
75 ABQBuild.SourcePath(source)
76 ABQBuild.AddIncludePath(include)
77 ABQBuild.AddDependencyPath(dependency)
78 ABQBuild.OutputPath(output, files=[
"standardU.dll",
"explicitU-D.dll"])
79 ABQBuild.Preprocessing(
'fpp -P -e', inend=
'.f', outend=
'.for')
80 ABQBuild.UseLibraries(libs)
81 ABQBuild.Build(command)
84 if __name__ ==
"__main__":
88 parser = argparse.ArgumentParser(description=
"Build a static Fortran library remotely on the institute cluster")
89 parser.add_argument(
"source_path", metavar=
"source", nargs=1, help=
"Directory containing all source files")
90 parser.add_argument(
"feature_path", metavar=
"feature", nargs=1, help=
"Directory containing the feature source file \ 91 (in dependence of requested feature: ABAQUS, ANSYS, NASTRAN.")
95 args, _ = parser.parse_known_args()
97 make_opt = args.make[0]
104 BuildID =
'mcd_abaqus' 105 main(BuildID,
"mcd_astandard");
main(BuildID,
"mcd_aexplicit")
108 raise NotImplementedError
111 print(
'==================================')
112 print(
'Finished build for ABAQUS')
113 print(
'==================================')
Module containing all relevant modules and scripts associated with the building process.
def main(BuildID, files="mcd_astandard", command=VTL.GetBuildCommand(6), libs='mcd_corex64', source=os.path.join(__mcd_core_path,"solver"), include=list(Utility.ArbitraryFlattening([[os.path.join(__mcd_core_path,"include", Utility.GetPlatform(), __arch)], [os.path.join(__mcd_core_path,"include", Utility.GetPlatform(), __arch, x) for x in VTL.GetIncludeDirectory(__mcd_core_path, 0, 4, __arch)]])), dependency=os.path.join(__mcd_core_path,"lib", Utility.GetPlatform(), __arch), output=os.path.join(__mcd_core_path,"bin", Utility.GetPlatform(), __arch), scratch=VTL.Scratch, verbosity=1)