Override default package for path resolution.
[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 /**
88  * Default prefix for installation (used to resolve relative paths).
89  */
90 #define SHIBSP_PREFIX  "c:/opt/shibboleth-sp"
91
92 #else
93 # include <shibsp/paths.h>
94 #endif
95
96 /**
97  * Logging category for Service Provider functions.
98  */
99 #define SHIBSP_LOGCAT "Shibboleth"
100
101 /**
102  * Logging category for Service Provider auditing.
103  */
104 #define SHIBSP_TX_LOGCAT "Shibboleth-TRANSACTION"
105
106 #endif /* __shibsp_base_h__ */