| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- /*
- ** Command & Conquer Generals Zero Hour(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation, either version 3 of the License, or
- ** (at your option) any later version.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- /////////////////////////////////////////////////////////////////////////EA-V1
- // $File: //depot/GeneralsMD/Staging/code/Libraries/Source/debug/debug.h $
- // $Author: mhoffe $
- // $Revision: #1 $
- // $DateTime: 2003/07/03 11:55:26 $
- //
- // ©2003 Electronic Arts
- //
- // Debugging module
- //////////////////////////////////////////////////////////////////////////////
- #ifdef _MSC_VER
- # pragma once
- #endif
- #ifndef DEBUG_H // Include guard
- #define DEBUG_H
- /**
- \page lib_var Library variants
- Generally speaking there are four different library variants:
- - Internal: all asserts/checks/logs, full optimizations (_INTERNAL macro defined)
- - %Debug: all asserts/checks/logs, no optimizations (_DEBUG macro defined)
- - Profile: all asserts/checks/logs, full optimizations, profiling active (_PROFILE macro defined)
- - Release: no asserts/checks/logs, full optimizations
- These variants will be broken down into separate features which
- can be queried for by #ifdef(HAS_FEATURE):
- <table><tr>
- <td><b>Variant</b></td>
- <td><b>HAS_ASSERTS</b></td>
- <td><b>HAS_LOGS</b></td>
- <td><b>HAS_OPT</b></td>
- <td><b>HAS_PROFILE</b></td>
- </tr><tr>
- <td>Internal</td>
- <td><center>Y</center></td>
- <td><center>Y</center></td>
- <td><center>Y</center></td>
- <td><center></center></td>
- </tr><tr>
- <td>%Debug</td>
- <td><center>Y</center></td>
- <td><center>Y</center></td>
- <td><center></center></td>
- <td><center></center></td>
- </tr><tr>
- <td>Profile</td>
- <td><center>Y</center></td>
- <td><center>Y</center></td>
- <td><center>Y</center></td>
- <td><center>Y</center></td>
- </tr><tr>
- <td>Release</td>
- <td><center></center></td>
- <td><center></center></td>
- <td><center>Y</center></td>
- <td><center></center></td>
- </tr></table>
- Library files have a suffix appended that depends on the
- library variant:
- - Internal: XXXInternal.lib
- - %Debug: XXXDebug.lib
- - Profile: XXXProfile.lib
- - Release: XXX.lib
- */
- #if defined(_DEBUG) && defined(_INTERNAL)
- #error "Only either _DEBUG or _INTERNAL should ever be defined"
- #endif
- // Define which libraries to use.
- #if defined(_INTERNAL)
- # pragma comment (lib,"debuginternal.lib")
- # define HAS_ASSERTS
- # define HAS_LOGS
- # define HAS_OPT
- #elif defined(_DEBUG)
- # pragma comment (lib,"debugdebug.lib")
- # define HAS_ASSERTS
- # define HAS_LOGS
- #elif defined(_PROFILE)
- # pragma comment (lib,"debugprofile.lib")
- # define HAS_ASSERTS
- # define HAS_LOGS
- # define HAS_OPT
- # define HAS_PROFILE
- #else
- # pragma comment (lib,"debug.lib")
- # define HAS_OPT
- #endif
- // include all our public header files (use double quotes here)
- #include "debug_doc.h"
- #include "debug_macro.h"
- #include "debug_io.h"
- #include "debug_cmd.h"
- #include "debug_stack.h"
- #include "debug_debug.h"
- #endif // DEBUG_H
|