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 Muesli for MCODAC under Windows. 12 ---------------------------------------------------------------------------------------------- 19 @author: garb_ma [DLR-FA,STM Braunschweig] 20 ---------------------------------------------------------------------------------------------- 29 sys.path.insert(0,os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
33 from PyXMake
import VTL
36 __arch = Utility.GetArchitecture()
40 from PyCODAC.Tools.Utility
import GetPyCODACPath
43 __mcd_core_path = os.path.join(GetPyCODACPath(),
"Core")
44 __mcd_muesli_base = os.path.join(__mcd_core_path,
"external",
"muesli")
45 __mcd_muesli_src = os.path.join(__mcd_muesli_base,
"muesli")
46 __mcd_muesli_include = [x[0]
for x
in os.walk(__mcd_muesli_src)]
47 __mcd_muesli_include.insert(0,__mcd_muesli_base)
53 __mcd_muesli_include =
"" 57 ErrorHandling.InputError(20)
62 files=VTL.GetSourceCode(3),
63 command = VTL.GetBuildCommand(3),
64 libs = VTL.GetLinkDependency(3, 7, __arch),
66 source=__mcd_muesli_src,
67 include=__mcd_muesli_include,
69 output=os.path.join(__mcd_core_path,
"lib",Utility.GetPlatform(),__arch),
71 architecture=__arch,scratch=VTL.Scratch, verbosity=2,
75 Main function to execute the script. 78 CxxBuild = pyx.CCxx(BuildID,files,scratch=scratch,arch=architecture,msvsc=
'vs2015',verbose=verbosity,incremental=incremental)
79 CxxBuild.SourcePath(source)
80 CxxBuild.AddIncludePath(include)
81 CxxBuild.AddDependencyPath(dependency)
82 CxxBuild.OutputPath(output)
83 CxxBuild.Preprocessing(copyfiles=files)
84 CxxBuild.Build(command)
85 CxxBuild.UseLibraries(libs)
88 if __name__ ==
"__main__":
92 parser = argparse.ArgumentParser(description=
"Build a static Fortran library remotely on the institute cluster")
96 args, _ = parser.parse_known_args()
105 BuildID =
"muesli";
main(BuildID)
107 raise NotImplementedError
110 print(
"==================================")
111 print(
"Finished Muesli on Windows")
112 print(
"==================================")
Module containing all relevant modules and scripts associated with the building process.
def main(BuildID, files=VTL.GetSourceCode(3), command=VTL.GetBuildCommand(3), libs=VTL.GetLinkDependency(3, 7, __arch), source=__mcd_muesli_src, include=__mcd_muesli_include, dependency=[], output=os.path.join(__mcd_core_path,"lib", Utility.GetPlatform(), __arch), architecture=__arch, scratch=VTL.Scratch, verbosity=2, incremental=True)