1 // 2 // Copyright 2016 Pixar 3 // 4 // Licensed under the Apache License, Version 2.0 (the "Apache License") 5 // with the following modification; you may not use this file except in 6 // compliance with the Apache License and the following modification to it: 7 // Section 6. Trademarks. is deleted and replaced with: 8 // 9 // 6. Trademarks. This License does not grant permission to use the trade 10 // names, trademarks, service marks, or product names of the Licensor 11 // and its affiliates, except as required to comply with Section 4(c) of 12 // the License and to reproduce the content of the NOTICE file. 13 // 14 // You may obtain a copy of the Apache License at 15 // 16 // http://www.apache.org/licenses/LICENSE-2.0 17 // 18 // Unless required by applicable law or agreed to in writing, software 19 // distributed under the Apache License with the above modification is 20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 21 // KIND, either express or implied. See the Apache License for the specific 22 // language governing permissions and limitations under the Apache License. 23 // 24 #ifndef PXR_BASE_ARCH_FUNCTION_LITE_H 25 #define PXR_BASE_ARCH_FUNCTION_LITE_H 26 27 /// \file arch/functionLite.h 28 /// Define preprocessor function name macros. 29 /// 30 /// This file defines preprocessor macros for getting the current function 31 /// name and related information so they can be used in a architecture 32 /// independent manner. This file needs to be public but shouldn't be 33 /// included directly by anything outside of \c pxr/base/tf. 34 35 #include "pxr/base/arch/defines.h" 36 // Note: this file specifically does not include <string>. 37 38 #define __ARCH_FUNCTION__ __func__ 39 40 #if defined(ARCH_COMPILER_GCC) || defined(ARCH_COMPILER_ICC) || \ 41 defined(ARCH_COMPILER_CLANG) 42 # define __ARCH_PRETTY_FUNCTION__ __PRETTY_FUNCTION__ 43 #elif defined(ARCH_COMPILER_MSVC) 44 # define __ARCH_PRETTY_FUNCTION__ __FUNCSIG__ 45 #else 46 # define __ARCH_PRETTY_FUNCTION__ __ARCH_FUNCTION__ 47 #endif /* defined(ARCH_COMPILER_GCC) || defined(ARCH_COMPILER_ICC) || 48 defined(ARCH_COMPILER_CLANG)*/ 49 50 #if defined(BUILD_COMPONENT_SRC_PREFIX) 51 # define __ARCH_FILE__ BUILD_COMPONENT_SRC_PREFIX __FILE__ 52 #else 53 # define __ARCH_FILE__ __FILE__ 54 #endif /* defined(BUILD_COMPONENT_SRC_PREFIX) */ 55 56 #endif // PXR_BASE_ARCH_FUNCTION_LITE_H 57