diff --git a/cmake/Modules/OpmInstall.cmake b/cmake/Modules/OpmInstall.cmake index 59435249d..17f4a1179 100644 --- a/cmake/Modules/OpmInstall.cmake +++ b/cmake/Modules/OpmInstall.cmake @@ -8,6 +8,7 @@ # _TARGET CMake target which builds the library # _LIBRARY_TYPE Static or shared library # _DEBUG File containing debug symbols +include (UseMultiArch) macro (opm_install opm) foreach (_hdr IN LISTS ${opm}_HEADERS) @@ -48,8 +49,10 @@ macro (opm_install opm) DESTINATION ${_dbg_prefix}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${${opm}_VER_DIR} ) endif (${opm}_LIBRARY_TYPE STREQUAL "SHARED" AND ${opm}_TARGET AND ${opm}_DEBUG) + # note that the DUNE parts that looks for dune.module is currently (2013-09) not + # multiarch-aware and will thus put in lib64/ on RHEL and lib/ on Debian install ( FILES ${PROJECT_SOURCE_DIR}/dune.module - DESTINATION lib${${opm}_VER_DIR}/dunecontrol/${${opm}_NAME} + DESTINATION ${LIBDIR_MULTIARCH_UNAWARE}${${opm}_VER_DIR}/dunecontrol/${${opm}_NAME} ) endmacro (opm_install opm) diff --git a/cmake/Modules/UseDuneVer.cmake b/cmake/Modules/UseDuneVer.cmake index 116de6ce9..93e3674f6 100644 --- a/cmake/Modules/UseDuneVer.cmake +++ b/cmake/Modules/UseDuneVer.cmake @@ -41,6 +41,11 @@ function (find_dune_version suite module) # some modules does not have a library, use the directory of the # header files to find what would be the library dir. + # note that when we refer to a build tree, then the libraries always + # go into lib/, but we don't care about that because in that case, + # dune.module isn't in the lib/ directory anyway but must be retrieved + # from the source. hence, we only have to worry about the library + # directory of a system installation here. if (NOT ${suite}-${module}_LIBRARY) # this suffix is gotten from UseMultiArch.cmake set (_lib_path "${_inc_path}/${CMAKE_INSTALL_LIBDIR}") @@ -72,7 +77,7 @@ function (find_dune_version suite module) # from this point on, _lib_path does not contain an architecture- # specific component anymore; dune.module is always put in straight # noarch lib/ since it does not contain any paths to binaries - set (_dune_mod "${_lib_path}/lib${_multilib}/dunecontrol/${suite}-${module}/dune.module") + set (_dune_mod "${_lib_path}/${LIBDIR_MULTIARCH_UNAWARE}${_multilib}/dunecontrol/${suite}-${module}/dune.module") if (NOT EXISTS "${_dune_mod}") # use the name itself as a flag for whether it was found or not set (_dune_mod "")