6Triple-use minimum working example for PyXMake. This script can be
7executed 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----------------------------------------------------------------------------------------------
28 sys.path.insert(0,os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
32 from PyXMake
import VTL
35 __arch = Utility.GetArchitecture()
39 from PyCODAC.Tools.Utility
import GetPyCODACPath
41 __mcd_muesli_files = []
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)
49 for _, _, files
in os.walk(__mcd_muesli_src): __mcd_muesli_files.extend([x
for x
in files
if x.endswith(
".cpp")
and x
not in [
"test.cpp"]])
55 __mcd_muesli_include =
""
56 __mcd_muesli_files = []
65 files=__mcd_muesli_files,
66 command = VTL.GetBuildCommand(3),
67 libs = VTL.GetLinkDependency(3, 7, __arch),
69 source=__mcd_muesli_src,
70 include=__mcd_muesli_include,
72 output=os.path.join(__mcd_core_path,
"lib",Utility.GetPlatform(),__arch),
74 architecture=__arch,scratch=VTL.Scratch, verbosity=2,
76 incremental =
True, **kwargs):
78 Main function to execute the script.
81 CxxBuild =
CCxx(BuildID,files,scratch=scratch,arch=architecture,msvsc=
'vs2015',verbose=verbosity,incremental=incremental, **kwargs)
82 CxxBuild.SourcePath(source)
83 CxxBuild.AddIncludePath(include)
84 CxxBuild.AddDependencyPath(dependency)
85 CxxBuild.OutputPath(output)
86 CxxBuild.Preprocessing(copyfiles=files)
87 CxxBuild.Build(command)
88 CxxBuild.UseLibraries(libs)
91if __name__ ==
"__main__":
97 print(
"==================================")
98 print(
"Finished build on Windows")
99 print(
"==================================")
Base class for all C/C++ build events inherited from Make.
Create a make object to define the building environment.
main(BuildID, files=__mcd_muesli_files, 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, **kwargs)