hpp-centroidal-dynamics: include/hpp/centroidal-dynamics/local_config.hh Source File

hpp-centroidal-dynamics 9.0.2 Utility classes for testing (robust) equilibrium of a system in contact with the environment, and other centroidal dynamics methods.

Loading...
Searching...
No Matches
local_config.hh
Go to the documentation of this file.
1/*
2 * Copyright 2015, LAAS-CNRS
3 * Author: Andrea Del Prete
4 */
5
6#ifndef HPP_CENTROIDAL_DYNAMICS_LOCAL_CONFIG_HH
7#define HPP_CENTROIDAL_DYNAMICS_LOCAL_CONFIG_HH
8
9// Package version (header).
10#define CENTROIDAL_DYNAMICS_VERSION "UNKNOWN"
11
12// Handle portable symbol export.
13// Defining manually which symbol should be exported is required
14// under Windows whether MinGW or MSVC is used.
15//
16// The headers then have to be able to work in two different modes:
17// - dllexport when one is building the library,
18// - dllimport for clients using the library.
19//
20// On Linux, set the visibility accordingly. If C++ symbol visibility
21// is handled by the compiler, see: http://gcc.gnu.org/wiki/Visibility
22#if defined _WIN32 || defined __CYGWIN__
23// On Microsoft Windows, use dllimport and dllexport to tag symbols.
24#define CENTROIDAL_DYNAMICS_DLLIMPORT __declspec(dllimport)
25#define CENTROIDAL_DYNAMICS_DLLEXPORT __declspec(dllexport)
26#define CENTROIDAL_DYNAMICS_DLLLOCAL
27#else
28// On Linux, for GCC >= 4, tag symbols using GCC extension.
29#if __GNUC__ >= 4
30#define CENTROIDAL_DYNAMICS_DLLIMPORT __attribute__((visibility("default")))
31#define CENTROIDAL_DYNAMICS_DLLEXPORT __attribute__((visibility("default")))
32#define CENTROIDAL_DYNAMICS_DLLLOCAL __attribute__((visibility("hidden")))
33#else
34// Otherwise (GCC < 4 or another compiler is used), export everything.
35#define CENTROIDAL_DYNAMICS_DLLIMPORT
36#define CENTROIDAL_DYNAMICS_DLLEXPORT
37#define CENTROIDAL_DYNAMICS_DLLLOCAL
38#endif // __GNUC__ >= 4
39#endif // defined _WIN32 || defined __CYGWIN__
40
41#ifdef CENTROIDAL_DYNAMICS_STATIC
42// If one is using the library statically, get rid of
43// extra information.
44#define CENTROIDAL_DYNAMICS_DLLAPI
45#define CENTROIDAL_DYNAMICS_LOCAL
46#else
47// Depending on whether one is building or using the
48// library define DLLAPI to import or export.
49#ifdef CENTROIDAL_DYNAMICS_EXPORTS
50#define CENTROIDAL_DYNAMICS_DLLAPI CENTROIDAL_DYNAMICS_DLLEXPORT
51#else
52#define CENTROIDAL_DYNAMICS_DLLAPI CENTROIDAL_DYNAMICS_DLLIMPORT
53#endif // CENTROIDAL_DYNAMICS_EXPORTS
54#define CENTROIDAL_DYNAMICS_LOCAL CENTROIDAL_DYNAMICS_DLLLOCAL
55#endif // CENTROIDAL_DYNAMICS_STATIC
56
57#endif // HPP_CENTROIDAL_DYNAMICS_LOCAL_CONFIG_HH