Skip to content
Snippets Groups Projects
Commit da5f82f4 authored by Markus Blatt's avatar Markus Blatt
Browse files

[CMake] Guess build directory of dune-common

Previously we relied on CMake's export(PACKAGE ...) function when
finding dune packages without dune-control. This is error prone
when using several instances of a dune-module (either with differing
versions or built using different options). In this case there is no
control which of the instances is used.

Now we try to guess the correct build directory, if it was not
provided with ${module}_DIR, ${module}_Root or in the
CMAKE_PREFIX_PATH. Note that when using dunecontrol ${module}_DIR will
always be set. We take the path of the current toplevel build
directory and simply substitute any occurence of the name of current
module with name of the module that we try to find. This works for
both  building in a subdirectory of the source tree
(e.g. ${module-source}/build-cmake) or in a sibling directory
parent 5ed89d7a
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,14 @@ project("dune-istl" C CXX)
# general stuff
cmake_minimum_required(VERSION 2.8.6)
# guess build tree of dune-common
if(NOT (dune-common_DIR OR dune-common_ROOT OR
"${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
string(REPLACE ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
${PROJECT_BINARY_DIR})
endif()
#find dune-common and set the module path
find_package(dune-common)
list(APPEND CMAKE_MODULE_PATH ${dune-common_MODULE_PATH}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment