What, specifically, do you mean by "remove sibling build feature"?



Will we no longer support having multiple opm-${module} directories checked out 
in a single directory, do (more or less) active development on all of them and 
have the build output in a completely separate tree?  I don't care if it's 
difficult, I care if it will be possible at all.



I currently use the following setup for my build and performance tests:

  *   OPM modules checked out in path/to/src/opm/opm-${module}
  *   Third-party packages (notably the ERT) checked out in 
path/to/src/3rdparty/${package} and installed in 
path/to/inst/{seq,mpi}/{dbg,opt}/${package}
  *   All OPM modules built in subtrees of path/to/build/opm/${config} in which 
${config} denotes sets of variable decisions, e.g., which Dune version to 
target, whether to build in debug or release mode, whether or not to include 
MPI support and so on.



The main benefit of this setup is that I get separation of concerns and can 
check multiple conditions with a single source tree.  Roland's code that looks 
for build output in sibling directories of the current module's build tree and 
build input (i.e., source code) in sibling directories of the current module's 
source tree makes this setup very easy to use and I'd prefer not to lose the 
ability to use the build system this way.





Bård

________________________________

From: Opm [opm-boun...@opm-project.org] on behalf of Joakim Hove 
[jo...@statoil.com]
Sent: 21 May 2015 00:17
To: opm@opm-project.org
Subject: [OPM] Installation sub directories

Hello;

after merging the opm-cmake Pull Requests I am now in the process of trying to 
simplify the build system in opm-cmake. Currently my focus is on removing the 
sibling-build features.

Much of the build system is permeated by the assumption that the different 
modules are in ${module} subdirectory, i.e. if we invoke cmake as:

                cmake –DOPM_ROOT=/path/opm

The build system will search for headers and libraries of opm-core in:

                header-search : /path/opm/opm-core/include/{…}
                library-search  : /path/opm/opm-core/lib64/{…}

Whereas when the opm modules are installed with ‘make install’ they will go to:

                header-install : ${CMAKE_INSTALL_PREFIX}/include/{…}
                library-install   : ${CMAKE_INSTALL_PREFIX}/lib64/{…}

I.e. the module subdirectory is absent. My suggestion plan is that:


1.       The implicit ${module} subdirectory is removed from the eventual 
search path – if you invoke cmake with –DOPM_ROOT= cmake will search for 
headers and libraries in ${OPM_ROOT}/include and ${OPM_ROOT}/lib64 respectively.

2.       If you want to employ a different version of one the modules you can 
invoke cmake as:

cmake –DOPM_ROOT=/default/root  
-DDUNE_CORNERPOINT_ROOT=/special/dune-cornerpoint

The use of module subdirectories is not strictly bound to sibling builds; but 
they certainly simplify sibling-build search semantics. Dune also seems to have 
these directories.

Any opinions on this? Are there some fundamental issues with the use of module 
subdirectories which I have overlooked?


Joakim

RDI project with IT elements -> Contact R&D 
Toolbox<https://statoil.service-now.com/selfservice/catalog_item_detail.do?sysparm_document_key=sc_cat_item,78bfbbce6fb455001f6446916e3ee453>



-------------------------------------------------------------------
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

Reply via email to