-
David E DeMarle authored
Cross compilation does a few things differently. 1) We specify a toolchain which tells cmake what compiler to use to cross compile code that will run on the back end nodes. 2) We have to supply a TryRunResults file filled with all the cmake introspection answers we would get, if cmake could run directly on the back end nodes. 3) We build the compilation executables that cmake needs to compile paraview first in a tools stage then use them to build the cross compiled paraview in a cross stage. 4) We build only what we have to for HPC settings. 5) We build everything statically. 6) We always use offscreen mesa. 7) We build a cmakeified python that allows us to build python statically, with a chosen few extension modules compiled directly into it so that we don't need to dyld anything at runtime. 8) Lastly we always use the system MPI. We do all of that by adding two new passes. The CROSS_BUILD_STAGE cmake setting lets you pick if you are building normally (HOST), or just the compilation tools that you need to cross compile (TOOLS), or are actually doing the cross compilation build (CROSS) In the cross pass we generally have to apply target specific patches and settings to build successfully. The specific target platform you are cross compiling for is specific with the CROSS_TARGET cmake setting. Depending on that setting different sets of patches and default configurations are applied to paraview and its dependencies. The patch and optons files are found in like named files in the CMake/crosscompile/${CROSS_TARGET} subdirectories. Change-Id: Ib44ba62cb0a51c9d0c61cfb518124adacc1a4823
e01d7362