HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
functionLite.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_BASE_ARCH_FUNCTION_LITE_H
8 #define PXR_BASE_ARCH_FUNCTION_LITE_H
9 
10 /// \file arch/functionLite.h
11 /// Define preprocessor function name macros.
12 ///
13 /// This file defines preprocessor macros for getting the current function
14 /// name and related information so they can be used in a architecture
15 /// independent manner. This file needs to be public but shouldn't be
16 /// included directly by anything outside of \c pxr/base/tf.
17 
18 #include "pxr/base/arch/defines.h"
19 // Note: this file specifically does not include <string>.
20 
21 #define __ARCH_FUNCTION__ __func__
22 
23 #if defined(ARCH_COMPILER_GCC) || defined(ARCH_COMPILER_ICC) || \
24  defined(ARCH_COMPILER_CLANG)
25 # define __ARCH_PRETTY_FUNCTION__ __PRETTY_FUNCTION__
26 #elif defined(ARCH_COMPILER_MSVC)
27 # define __ARCH_PRETTY_FUNCTION__ __FUNCSIG__
28 #else
29 # define __ARCH_PRETTY_FUNCTION__ __ARCH_FUNCTION__
30 #endif /* defined(ARCH_COMPILER_GCC) || defined(ARCH_COMPILER_ICC) ||
31  defined(ARCH_COMPILER_CLANG)*/
32 
33 #if defined(BUILD_COMPONENT_SRC_PREFIX)
34 # define __ARCH_FILE__ BUILD_COMPONENT_SRC_PREFIX __FILE__
35 #else
36 # define __ARCH_FILE__ __FILE__
37 #endif /* defined(BUILD_COMPONENT_SRC_PREFIX) */
38 
39 #endif // PXR_BASE_ARCH_FUNCTION_LITE_H