Complexity in the build system is certainly worth addressing.
That said, I don't understand what the ramifications of this change will be so I'll ask some questions to help assess the situation. This will be from the point of view of a developer. Suppose that I'm using and making changes to the Git master sources of two or more OPM project modules (e.g., opm-parser, opm-core, and opm-autodiff). Am I supposed to "git clone" the source trees as subdirectories of my OPM_ROOT or are the sources supposed to be placed somewhere else? Will there be restrictions on where I put my build trees (e.g., must these be subdirectories of the corresponding source trees)? Can I have multiple build trees for a single module? Do I have to run "make install" in an upstream module (e.g., opm-core) to have any changes visible to downstream modules (e.g., opm-autodiff)? In short, what is the use-case you're developing for the OPM build system? Are you moving towards a work-flow in which "make install" is the only inter-module communication device for build products (i.e., headers, libraries and/or executables)? In the current system supporting sibling builds I can put all source trees (git clones) in a single top-level directory, mirror that structure in an entirely separate build tree (not subdirectory of the source trees) and have the build system automatically pick up the correct paths for headers (subdirectories of the source trees) and libraries (subdirectories of the build trees). This feature is *very* convenient for build testing. Bård ________________________________ From: Opm [opm-boun...@opm-project.org] on behalf of Joakim Hove [jo...@statoil.com] Sent: 21 May 2015 13:12 To: opm@opm-project.org Subject: Re: [OPM] Installation sub directories This was discussed at the OPM meeting, and my recollection from the discussion on sibling builds is -a majority of developers use the feature -it does not add significant complexity when determining which libraries/binaries are actually linked -it is not a significant maintenance burden to keep With the conclusion that we keep it. Well – my recollection of the discussion is not that support for the sibling build was that unanimous. In my opinion the system with sibling builds is very friendly to the pure developer; but I disagree with this: it does not add significant complexity when determining which libraries/binaries are actually linked In Statoil the sibling builds have led to quite a lot of wasted developer time when tracking down link and build problems when building and deploying on Jenkins. Furtheremore this: -it is not a significant maintenance burden to keep Is just flat out wrong; the system is very complex to maintain. It has worked well; so the need for updates has been very limited – but when/if updates are required it is challenging. As for the rest of the points, I am struggling to understand exactly what is suggested. Like it is presented I have to take a deep dive in the build system to be able to make informed opinions. Well – you are right that the initial question I posed was actually just a simplification step on the way to a possible removal of the sibling builds; but the question of sibling builds or not has got all the attention – I guess that is the most important question; so fair enough. I will continue with and make a PR based on the LIBRARY_OUTPUT_PATH setting – then we can continue the discussion from there. 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 Opm@opm-project.org http://www.opm-project.org/mailman/listinfo/opm