> [....] except on one technical comment concerning sibling builds.  Sibling 
> build trees do not need to be in a location relative to the source trees and 
> do moreover, not have to have the same name for all modules.

Well - I'll take your word for it; but I still insist there must be some 
filesystem convention involved - otherwise the system must pure magic to find 
the upstream source and build locations?

       SRC=${HOME}/work/opm/src/opm
         BUILD=${HOME}/data/opm/build/opm/opt/seq/dune-2.3.1

         for m in ${modlist}; do
            mkdir ${BUILD}/${m}
            cd ${BUILD}/${m}

            cmake [configuration options] ${SRC}/${m}

            make -j ${N}
         done

In a configuration where support for sibling builds has been removed this could 
be rewritten as:

               OUTPUT_PATH=${HOME}/data/opm/build/install
      SRC=${HOME}/work/opm/src/opm
         BUILD=${HOME}/data/opm/build/opm/opt/seq/dune-2.3.1

         for m in ${modlist}; do
            mkdir ${BUILD}/${m}
            cd ${BUILD}/${m}

            cmake [configuration options] -DCMAKE_INSTALL_PREFIX=${OUTPUT_PATH} 
-DOPM_ROOT=${OUTPUT_PATH}  ${SRC}/${m}

            make -j ${N}
            make install
         done

I appreciate that the need to run 'make install' before changes are visible 
downstream is a clear disadvantage in a developer workflow, but for build 
testing like the script shown above I really do not see the disadvantage - it 
certainly makes sense to test the build target as well; a friend of mine form 
Germany used to break that target in 50% of his PR's:).

If we in addition make use of the LIBRARY_OUTPUT_PATH (and automatically copy 
headers) the build script could be:

               OUTPUT_PATH=${HOME}/data/opm/build/install
      SRC=${HOME}/work/opm/src/opm
         BUILD=${HOME}/data/opm/build/opm/opt/seq/dune-2.3.1

         for m in ${modlist}; do
            mkdir ${BUILD}/${m}
            cd ${BUILD}/${m}

            # It might be natural to join the -DOUTPUT_PATH and -DOPM_ROOT 
switches; if you specify that output should go
            # to ${OUTPUT_PATH} you should automatically also search that 
location?
            cmake [configuration options] -DOUTPUT_PATH=${OUTPUT_PATH} 
-DOPM_ROOT=${OUTPUT_PATH}  ${SRC}/${m}

            make -j ${N}
         done


This last approach is admittedly only in my head at the moment.

I'll log out now and be back on Tuesday.

Jaokim



-------------------------------------------------------------------
The information contained in this message may be CONFIDENTIAL and is
intended for the addressee only. Any unauthorised use, dissemination of the
information or copying of this message is prohibited. If you are not the
addressee, please notify the sender immediately by return e-mail and delete
this message.
Thank you
_______________________________________________
Opm mailing list
[email protected]
http://www.opm-project.org/mailman/listinfo/opm

Reply via email to