1# Manage a package that may appear in the local packages/ directory,
2# or may have been previously defined with PACKAGE_DIR by a parent
3#   package: package name in capitals
4#   dirname: directory containing package
5function(ManageRelocatablePackage package dirname)
6  if(HAVE_${package})
7    message(STATUS
8      "Finding relocatable package ${package} with directory ${dirname}")
9    if(NOT ${package}_DIR)
10      if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${dirname}")
11	# Need PARENT_SCOPE since this is a function
12        set(${package}_DIR "${CMAKE_CURRENT_BINARY_DIR}/${dirname}" PARENT_SCOPE)
13	message(STATUS
14	  "Setting ${package}_DIR = ${CMAKE_CURRENT_BINARY_DIR}/${dirname}")
15	add_subdirectory(${dirname})
16      else()
17	message(SEND_ERROR
18	  "Directory ${CMAKE_CURRENT_SOURCE_DIR}/${dirname} missing")
19      endif()
20    endif()
21  endif()
22endfunction()
23