648fce4bf138fd8ead95a8af9e09d91f2eb5e290
[shibboleth/sp.git] / shibsp / base.h
1 /*
2  *  Copyright 2001-2007 Internet2
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file shibsp/base.h
19  * 
20  * Base header file definitions
21  * Must be included prior to including any other header
22  */
23
24 #ifndef __shibsp_base_h__
25 #define __shibsp_base_h__
26
27 #ifdef SHIBSP_LITE
28 # define XMLTOOLING_LITE
29 # include <xmltooling/base.h>
30 #else
31 # include <saml/base.h>
32 #endif
33
34 // Windows and GCC4 Symbol Visibility Macros
35 #ifdef WIN32
36   #define SHIBSP_IMPORT __declspec(dllimport)
37   #define SHIBSP_EXPORT __declspec(dllexport)
38   #define SHIBSP_DLLLOCAL
39   #define SHIBSP_DLLPUBLIC
40 #else
41   #define SHIBSP_IMPORT
42   #ifdef GCC_HASCLASSVISIBILITY
43     #define SHIBSP_EXPORT __attribute__ ((visibility("default")))
44     #define SHIBSP_DLLLOCAL __attribute__ ((visibility("hidden")))
45     #define SHIBSP_DLLPUBLIC __attribute__ ((visibility("default")))
46   #else
47     #define SHIBSP_EXPORT
48     #define SHIBSP_DLLLOCAL
49     #define SHIBSP_DLLPUBLIC
50   #endif
51 #endif
52
53 // Define SHIBSP_API for DLL builds
54 #ifdef SHIBSP_EXPORTS
55   #define SHIBSP_API SHIBSP_EXPORT
56 #else
57   #define SHIBSP_API SHIBSP_IMPORT
58 #endif
59
60 // Throwable classes must always be visible on GCC in all binaries
61 #ifdef WIN32
62   #define SHIBSP_EXCEPTIONAPI(api) api
63 #elif defined(GCC_HASCLASSVISIBILITY)
64   #define SHIBSP_EXCEPTIONAPI(api) SHIBSP_EXPORT
65 #else
66   #define SHIBSP_EXCEPTIONAPI(api)
67 #endif
68
69 #ifdef WIN32
70
71 /**
72  * Default catalog path on Windows.
73  */
74 # define SHIBSP_SCHEMAS "c:\\opt\\shibboleth-sp\\share\\xml\\xmltooling\\catalog.xml;c:\\opt\\shibboleth-sp\\share\\xml\\opensaml\\saml20-catalog.xml;c:\\opt\\shibboleth-sp\\share\\xml\\opensaml\\saml11-catalog.xml;c:\\opt\\shibboleth-sp\\share\\xml\\shibboleth\\catalog.xml"
75
76 /**
77  * Default path to configuration file on Windows.
78  */
79 # define SHIBSP_CONFIG "c:\\opt\\shibboleth-sp\\etc\\shibboleth\\shibboleth2.xml"
80
81 /**
82  * Controls default logging level of console tools and other situations
83  * where fully-configured logging isn't used.
84  */
85 #define SHIBSP_LOGGING "c:\\opt\\shibboleth-sp\\etc\\shibboleth\\console.logger"
86
87 #else
88 # include <shibsp/paths.h>
89 #endif
90
91 /**
92  * Logging category for Service Provider functions.
93  */
94 #define SHIBSP_LOGCAT "Shibboleth"
95
96 /**
97  * Logging category for Service Provider auditing.
98  */
99 #define SHIBSP_TX_LOGCAT "Shibboleth-TRANSACTION"
100
101 #endif /* __shibsp_base_h__ */