diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2001-11-28 16:12:15 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2001-11-28 16:12:15 (GMT) |
commit | fd516c022d96188507582f625d8d0dc1afccd8c4 (patch) | |
tree | 4f7a1c5a2c346cc7ed31800cac7ef0451c336593 /Source/cmBorlandMakefileGenerator2.h | |
parent | af9bc3fa9fcf887e135c44dad067fb87af651ead (diff) | |
download | CMake-fd516c022d96188507582f625d8d0dc1afccd8c4.zip CMake-fd516c022d96188507582f625d8d0dc1afccd8c4.tar.gz CMake-fd516c022d96188507582f625d8d0dc1afccd8c4.tar.bz2 |
add new borland generator
Diffstat (limited to 'Source/cmBorlandMakefileGenerator2.h')
-rw-r--r-- | Source/cmBorlandMakefileGenerator2.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/Source/cmBorlandMakefileGenerator2.h b/Source/cmBorlandMakefileGenerator2.h new file mode 100644 index 0000000..58fb2fd --- /dev/null +++ b/Source/cmBorlandMakefileGenerator2.h @@ -0,0 +1,112 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + +Copyright (c) 2001 Insight Consortium +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * The name of the Insight Consortium, nor the names of any consortium members, + nor of any contributors, may be used to endorse or promote products derived + from this software without specific prior written permission. + + * Modified source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS'' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +=========================================================================*/ +#ifndef cmBorlandMakefileGenerator2_h +#define cmBorlandMakefileGenerator2_h + +#include "cmNMakeMakefileGenerator.h" + +/** \class cmBorlandMakefileGenerator2 + * \brief Write an NMake makefile. + * + * cmBorlandMakefileGenerator2 produces a Unix makefile from its + * member m_Makefile. + */ +class cmBorlandMakefileGenerator2 : public cmNMakeMakefileGenerator +{ +public: + ///! Set cache only and recurse to false by default. + cmBorlandMakefileGenerator2(); + + virtual ~cmBorlandMakefileGenerator2(); + + ///! Get the name for the generator. + virtual const char* GetName() {return "Borland Makefiles2";} + + ///! virtual copy constructor + virtual cmMakefileGenerator* CreateObject() + { return new cmBorlandMakefileGenerator2;} + + ///! figure out about the current system information + virtual void ComputeSystemInfo(); +protected: + virtual void OutputMakeVariables(std::ostream&); + virtual void BuildInSubDirectory(std::ostream& fout, + const char* directory, + const char* target1, + const char* target2); + void OutputMakeRule(std::ostream& fout, + const char* comment, + const char* target, + const char* depends, + const char* command, + const char* command2=0, + const char* command3=0, + const char* command4=0); + + + virtual void OutputBuildObjectFromSource(std::ostream& fout, + const char* shortName, + const cmSourceFile& source, + const char* extraCompileFlags, + bool sharedTarget); + virtual void OutputSharedLibraryRule(std::ostream&, const char* name, + const cmTarget &); + virtual void OutputModuleLibraryRule(std::ostream&, const char* name, + const cmTarget &); + virtual void OutputStaticLibraryRule(std::ostream&, const char* name, + const cmTarget &); + virtual void OutputExecutableRule(std::ostream&, const char* name, + const cmTarget &); + virtual std::string GetOutputExtension(const char* sourceExtension); + virtual void OutputBuildLibraryInDir(std::ostream& fout, + const char* path, + const char* library, + const char* fullpath); + ///! return true if the two paths are the same (checks short paths) + virtual bool SamePath(const char* path1, const char* path2); +private: + bool m_QuoteNextCommand; // if this is true, OutputMakeRule + // will not quote the next commands + // it is reset to false after each + // call to OutputMakeRule +}; + +#endif |