CMake/Source/cmLinkLibrariesCommand.h
2001-04-26 16:22:53 -04:00

89 lines
2.3 KiB
C++

/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2000 National Library of Medicine
All rights reserved.
See COPYRIGHT.txt for copyright details.
=========================================================================*/
#ifndef cmLinkLibrariesCommand_h
#define cmLinkLibrariesCommand_h
#include "cmStandardIncludes.h"
#include "cmCommand.h"
/** \class cmLinkLibrariesCommand
* \brief Specify a list of libraries to link into executables.
*
* cmLinkLibrariesCommand is used to specify a list of libraries to link
* into executable(s) or shared objects. The names of the libraries
* should be those defined by the LIBRARY(library) command(s).
*/
class cmLinkLibrariesCommand : public cmCommand
{
public:
/**
* This is a virtual constructor for the command.
*/
virtual cmCommand* Clone()
{
return new cmLinkLibrariesCommand;
}
/**
* This is called when the command is first encountered in
* the CMakeLists.txt file.
*/
virtual bool Invoke(std::vector<std::string>& args);
/**
* This determines if the command gets propagated down
* to makefiles located in subdirectories.
*/
virtual bool IsInherited() {return true;}
/**
* The name of the command as specified in CMakeList.txt.
*/
virtual const char* GetName() { return "LINK_LIBRARIES";}
/**
* Succinct documentation.
*/
virtual const char* GetTerseDocumentation()
{
return
"Specify a list of libraries to be linked into\n"
"executables or shared objects.";
}
/**
* More documentation.
*/
virtual const char* GetFullDocumentation()
{
return
"LINK_LIBRARIES(library1 <debug | optimized> library2 ...)\n"
"Specify a list of libraries to be linked into\n"
"executables or shared objects. This command is passed\n"
"down to all other commands. The library name should be\n"
"the same as the name used in the LIBRARY(library) command.\n"
"The debug and optimized strings may be used to indicate that\n"
"the next library listed is to be used only for that specific\n"
"type of build";
}
cmTypeMacro(cmLinkLibrariesCommand, cmCommand);
};
#endif