escript  Revision_
esysUtils/src/system_dep.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 
22 /*
23 * @(#) system_dep.h
24 */
25 
26 #ifndef esysutils_system_dep_h
27 #define esysutils_system_dep_h
28 
29 #include <cmath>
30 
31 #define ESYSUTILS_DLL_API
32 
33 #ifdef _WIN32
34 # ifndef ESYSUTILS_STATIC_LIB
35 # undef ESYSUTILS_DLL_API
36 # ifdef ESYSUTILS_EXPORTS
37 # define ESYSUTILS_DLL_API __declspec(dllexport)
38 # else
39 # define ESYSUTILS_DLL_API __declspec(dllimport)
40 # endif
41 # endif
42 
43 /* This is because of the different declarations of std::exception mentods
44 * on windows.
45 * Also, putting a "throw" in any declaration on windows causes a warning!!!!!!
46 * If you wish to generate a throw() on other systems, please use
47 * THROW(NO_ARG). This is because windows generates warnings if you say
48 * THROW(), so the NO_ARG trick must be used to avoid the mass of warnings.
49 */
50 
51 # define THROW(ARG)
52 #else
53 # define THROW(ARG) throw(ARG)
54 #endif
55 
56 #define NO_ARG
57 
58 #endif