msvc_traits.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:7k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: msvc_traits.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/16 17:05:12  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef PROJECT_TREE_BUILDER__MSVC_TRAITS__HPP
  10. #define PROJECT_TREE_BUILDER__MSVC_TRAITS__HPP
  11. /* $Id: msvc_traits.hpp,v 1000.1 2004/06/16 17:05:12 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Author:  Viatcheslav Gorelenkov
  37.  *
  38.  */
  39. #include <string>
  40. #include <corelib/ncbienv.hpp>
  41. BEGIN_NCBI_SCOPE
  42. /// Traits for MSVC projects:
  43. /// RunTime library traits.
  44. #if 0
  45. // Quota from MDE VC++ system engine typelib:
  46. typedef enum {
  47.     rtMultiThreaded = 0,
  48.     rtMultiThreadedDebug = 1,
  49.     rtMultiThreadedDLL = 2,
  50.     rtMultiThreadedDebugDLL = 3,
  51.     rtSingleThreaded = 4,
  52.     rtSingleThreadedDebug = 5
  53. } runtimeLibraryOption;
  54. #endif
  55. struct SCrtMultiThreaded
  56. {
  57.     static string RuntimeLibrary(void)
  58.     {
  59.     return "0";
  60.     }
  61. };
  62. struct SCrtMultiThreadedDebug
  63. {
  64.     static string RuntimeLibrary(void)
  65.     {
  66.     return "1";
  67.     }
  68. };
  69. struct SCrtMultiThreadedDLL
  70. {
  71.     static string RuntimeLibrary(void)
  72.     {
  73.         return "2";
  74.     }
  75. };
  76. struct SCrtMultiThreadedDebugDLL
  77. {
  78.     static string RuntimeLibrary(void)
  79.     {
  80.     return "3";
  81.     }
  82. };
  83. struct SCrtSingleThreaded
  84. {
  85.     static string RuntimeLibrary(void)
  86.     {
  87.     return "4";
  88.     }
  89. };
  90. struct SCrtSingleThreadedDebug
  91. {
  92.     static string RuntimeLibrary(void)
  93.     {
  94.     return "5";
  95.     }
  96. };
  97. /// Debug/Release traits.
  98. #if 0
  99. typedef enum {
  100.     debugDisabled = 0,
  101.     debugOldStyleInfo = 1,
  102.     debugLineInfoOnly = 2,
  103.     debugEnabled = 3,
  104.     debugEditAndContinue = 4
  105. } debugOption;
  106. typedef enum {
  107.     expandDisable = 0,
  108.     expandOnlyInline = 1,
  109.     expandAnySuitable = 2
  110. } inlineExpansionOption;
  111. typedef enum {
  112.     optReferencesDefault = 0,
  113.     optNoReferences = 1,
  114.     optReferences = 2
  115. } optRefType;
  116. typedef enum {
  117.     optFoldingDefault = 0,
  118.     optNoFolding = 1,
  119.     optFolding = 2
  120. } optFoldingType;
  121. #endif
  122. struct SDebug
  123. {
  124.     static bool debug(void)
  125.     {
  126.         return true;
  127.     }
  128.     static string Optimization(void)
  129.     {
  130.     return "0";
  131.     }
  132.     static string PreprocessorDefinitions(void)
  133.     {
  134.     return "_DEBUG;";
  135.     }
  136.     static string BasicRuntimeChecks(void)
  137.     {
  138.         return "3";
  139.     }
  140.     static string DebugInformationFormat(void)
  141.     {
  142.     return "1";
  143.     }
  144.     static string InlineFunctionExpansion(void)
  145.     {
  146.     return "";
  147.     }
  148.     static string OmitFramePointers(void)
  149.     {
  150.     return "";
  151.     }
  152.     static string StringPooling(void)
  153.     {
  154.     return "";
  155.     }
  156.     static string EnableFunctionLevelLinking(void)
  157.     {
  158.     return "";
  159.     }
  160.     static string GenerateDebugInformation(void)
  161.     {
  162.     return "TRUE";
  163.     }
  164.     static string OptimizeReferences(void)
  165.     {
  166.     return "";
  167.     }
  168.     static string EnableCOMDATFolding(void)
  169.     {
  170.     return "";
  171.     }
  172.     static string GlobalOptimizations(void)
  173.     {
  174.     return "FALSE";
  175.     }
  176.     static string FavorSizeOrSpeed(void)
  177.     {
  178.     return "0";
  179.     }
  180.     static string BrowseInformation(void)
  181.     {
  182.     return "1";
  183.     }
  184. };
  185. struct SRelease
  186. {
  187.     static bool debug(void)
  188.     {
  189.         return false;
  190.     }
  191.     static string Optimization(void)
  192.     {
  193.     return "2"; //VG: MaxSpeed
  194.     }
  195.     static string PreprocessorDefinitions(void)
  196.     {
  197.     return "NDEBUG;";
  198.     }
  199.     static string BasicRuntimeChecks(void)
  200.     {
  201.         return "0";
  202.     }
  203.     static string DebugInformationFormat(void)
  204.     {
  205.     return "0";
  206.     }
  207.     static string InlineFunctionExpansion(void)
  208.     {
  209.     return "1";
  210.     }
  211.     static string OmitFramePointers(void)
  212.     {
  213.     return "FALSE";
  214.     }
  215.     static string StringPooling(void)
  216.     {
  217.     return "TRUE";
  218.     }
  219.     static string EnableFunctionLevelLinking(void)
  220.     {
  221.     return "TRUE";
  222.     }
  223.     static string GenerateDebugInformation(void)
  224.     {
  225.     return "FALSE";
  226.     }
  227.     static string OptimizeReferences(void)
  228.     {
  229.     return "2";
  230.     }
  231.     static string EnableCOMDATFolding(void)
  232.     {
  233.     return "2";
  234.     }
  235.     static string GlobalOptimizations(void)
  236.     {
  237.     return "TRUE";
  238.     }
  239.     static string FavorSizeOrSpeed(void)
  240.     {
  241.     return "1";
  242.     }
  243.     static string BrowseInformation(void)
  244.     {
  245.     return "0";
  246.     }
  247. };
  248. /// Congiguration Type (Target type) traits.
  249. #if 0
  250. typedef enum {
  251.     typeUnknown = 0,
  252.     typeApplication = 1,
  253.     typeDynamicLibrary = 2,
  254.     typeStaticLibrary = 4,
  255.     typeGeneric = 10
  256. } ConfigurationTypes;
  257. #endif
  258. struct SApp
  259. {
  260.     static string ConfigurationType(void)
  261.     {
  262.     return "1";
  263.     }
  264.     static string PreprocessorDefinitions(void)
  265.     {
  266.     return "WIN32;_CONSOLE;";
  267.     }
  268.     static bool IsDll(void)
  269.     {
  270.     return false;
  271.     }
  272.     static string TargetExtension(void)
  273.     {
  274.     return ".exe";
  275.     }
  276.     static string SubSystem(void)
  277.     {
  278.     return "1"; //console
  279.     }
  280. };
  281. struct SLib
  282. {
  283.     static string ConfigurationType(void)
  284.     {
  285.     return "4";
  286.     }
  287.     static string PreprocessorDefinitions(void)
  288.     {
  289.     return "WIN32;_LIB;";
  290.     }
  291.     static bool IsDll(void)
  292.     {
  293.     return false;
  294.     }
  295.     static string TargetExtension(void)
  296.     {
  297.     return ".lib";
  298.     }
  299.     static string SubSystem(void)
  300.     {
  301.     return "1"; //console
  302.     }
  303. };
  304. struct SDll
  305. {
  306.     static string ConfigurationType(void)
  307.     {
  308.     return "2";
  309.     }
  310.     static string PreprocessorDefinitions(void)
  311.     {
  312.     return "WIN32;_WINDOWS;_USRDLL;";
  313.     }
  314.     static bool IsDll(void)
  315.     {
  316.     return true;
  317.     }
  318.     static string TargetExtension(void)
  319.     {
  320.     return ".dll";
  321.     }
  322.     static string SubSystem(void)
  323.     {
  324.     return "2"; //windows
  325.     }
  326. };
  327. END_NCBI_SCOPE
  328. /*
  329.  * ===========================================================================
  330.  * $Log: msvc_traits.hpp,v $
  331.  * Revision 1000.1  2004/06/16 17:05:12  gouriano
  332.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  333.  *
  334.  * Revision 1.5  2004/06/10 15:12:55  gorelenk
  335.  * Added newline at the file end to avoid GCC warning.
  336.  *
  337.  * Revision 1.4  2004/01/26 19:25:42  gorelenk
  338.  * += MSVC meta makefile support
  339.  * += MSVC project makefile support
  340.  *
  341.  * Revision 1.3  2004/01/22 17:57:09  gorelenk
  342.  * first version
  343.  *
  344.  * ===========================================================================
  345.  */
  346. #endif //PROJECT_TREE_BUILDER__MSVC_TRAITS__HPP