# Copyright 2009-2010, Iowa State University
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
# SPDX-License-Identifier: BSL-1.0

digraph {
	size="7.5,10"
	nodesep = .25
	ranksep = 1.0
	label = "Dependencies of CMake Modules - All require CMake 2.6 or newer";

	subgraph cluster_upstream {
		label = "Included with upstream 2.8.0 or cmake-2.8.0-modules";
		SelectLibraryConfigurations;
		FindBoost;
		FindOpenSceneGraph -> { FindOpenThreads; FindosgALL [label = "Findosg*"]; }
	}

	// Directories
	PackageMacosxDirectory [label = "cmake/package/macosx/"];
	workaroundsTcharDirectory [label = "cmake/workarounds/tchar/"];
	cmakeUpstreamModulesDirectories [label = "cmake/cmake-*-modules/"];

	// other Modules
	BundleOSGRuntime;
	BundleVRJ22Runtime;
	CheckMacHIDAPI;
	CheckVersion;
	CleanDirectoryList;
	CleanLibraryList;
	CreateMSVCUserFiles -> { ListFilter; ProgramFilesGlob; CleanDirectoryList; }
	FixWinInstallPrefix;
	GetCompilerInfoString;
	GetForceIncludeDefinitions;
	ListCombinations;
	ListFilter;
	MakeVRJugglerAppBundle -> PackageMacosxDirectory;
	PrefixListGlob;
	ProgramFilesGlob -> { PrefixListGlob; CleanDirectoryList;}
	SearchProgramFilesForOpenSceneGraph -> { ProgramFilesGlob; ListFilter; PrefixListGlob; CleanDirectoryList; }


	subgraph cluster_findmodules {
		label = "find_package Find Modules";

		subgraph cluster_vrjuggler22 {
			label = "VR Juggler 2.2 suite: All require CleanLibraryList and CleanDirectoryList, and recommend FindFlagpoll";
			FindTweek12 -> FindVPR20;
			FindJCCL12 -> FindVPR20;
			FindGadgeteer12 -> { FindJCCL12; FindVPR20; }
			FindSonix12 -> FindVPR20;
			FindVRJ22 -> { FindJCCL12; FindGadgeteer12; FindSonix12; FindVPR20; }
			FindVRJOGL22 -> FindVRJ22;
			FindVRJuggler22 -> FindVRJOGL22;
		} -> {FindFlagpoll; CleanLibraryList; CleanDirectoryList;}
		FindVPR20 -> { FindBoost; FindCPPDOM; }
		FindGadgeteer12 -> FindGMTL;
		FindSonix12 -> FindGMTL;
		//cluster_vrjuggler22 -> {FindFlagpoll; CleanLibraryList;}
		BundleVRJ22Runtime -> FindVRJuggler22;

		FindGLUI;
		FindGPM;
		FindJtTk -> { ListCombinations; CheckVersion; PrefixListGlob; ProgramFilesGlob; }
		FindMacHID -> CheckMacHIDAPI;
		FindOpenHaptics -> { SelectLibraryConfigurations; CleanDirectoryList; CleanLibraryList; ListCombinations; ProgramFilesGlob; }
		FindParasolid -> { ListCombinations; CheckVersion; ProgramFilesGlob; }
		Findquatlib;
		FindVPS -> { SelectLibraryConfigurations; ListCombinations; CheckVersion; ListFilter; }
		FindWiiUse;
	}



	TCHARWorkaround -> workaroundsTcharDirectory;
	UseBackportedModules -> cmakeUpstreamModulesDirectories;
}
