GCLinkage.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //  (c) 2007 by Basler Vision Technologies
00003 //  Section: Vision Components
00004 //  Project: GenICam
00005 //  Author:  Fritz Dierks
00006 //
00007 //  License: This file is published under the license of the EMVA GenICam  Standard Group.
00008 //  A text file describing the legal terms is included in  your installation as 'GenICam_license.pdf'.
00009 //  If for some reason you are missing  this file please contact the EMVA or visit the website
00010 //  (http://www.genicam.org) for a full copy.
00011 //
00012 //  THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
00013 //  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00014 //  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00015 //  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD  GROUP
00016 //  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,
00017 //  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT  LIMITED TO,
00018 //  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  DATA, OR PROFITS;
00019 //  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY  THEORY OF LIABILITY,
00020 //  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)
00021 //  ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00022 //  POSSIBILITY OF SUCH DAMAGE.
00023 //-----------------------------------------------------------------------------
00029 #ifndef LINKAGE_H
00030 #define LINKAGE_H
00031 
00032 #include <GenICamVersion.h>
00033 
00034 #if defined (_MSC_VER)
00035 
00036 #   if defined (_WIN32) && defined (_MT )
00037 #     if defined(GENICAM_USER_ALWAYS_LINK_RELEASE)
00038 // for the central installation always the Release version is used
00039 #           define CONFIGURATION "MD"
00040 #     else 
00041 #       if defined(_DEBUG) || defined(DEBUG)
00042 #           define CONFIGURATION "MDd"
00043 #       else
00044 #           define CONFIGURATION "MD"
00045 #       endif
00046 #     endif // defined(GENICAM_USER_ALWAYS_LINK_RELEASE)
00047 #   else
00048 #       error Invalid configuration
00049 #   endif
00050 
00051 #   if defined(COMPILER) // COMPILER  may be force set from outside
00052 #       undef GENICAM_COMPILER_STR
00053 #       define GENICAM_COMPILER_STR COMPILER
00054 #   endif
00055 
00056 // _MSC_VER==1400 : VC80  : Visual C++ 2005
00057 // _MSC_VER==1500 : VC90  : Visual C++ 2008
00058 // _MSC_VER==1600 : VC100 : Visual C++ 2010
00059 // _MSC_VER==1700 : VC110 : Visual C++ 2012
00060 // _MSC_VER==1800 : VC120 : Visual C++ 2013
00061 // _MSC_VER==1900 : VC140 : Visual C++ 2015
00062 #   if !( _MSC_VER==1400 || _MSC_VER==1500 || _MSC_VER==1600 || _MSC_VER==1700 || _MSC_VER==1800 || _MSC_VER==1900 ) && ! defined(GENICAM_USER_ACCEPTS_ANY_COMPILER)
00063 #     define COMPILER_VERSION_2( s ) #s
00064 #     define COMPILER_VERSION_STRING(version) COMPILER_VERSION_2( version )
00065 #     pragma message( "Notice: Using GenICam with untested compiler, version " COMPILER_VERSION_STRING(_MSC_VER) " detected!" )
00066 #     pragma message( "Following versions were tested: 1400, 1500, 1600, 1700, 1800, 1900." )
00067 #     undef COMPILER_VERSION_2
00068 #     undef COMPILER_VERSION_STRING
00069 #   endif
00070 
00071 #   if defined(GENICAM_COMPANY_SUFFIX)
00072 #       define GENICAM_SUFFIX( CONFIGURATION, GENICAM_COMPILER_STR, VERSION_MAJOR, VERSION_MINOR, EXTENSION ) \
00073             "_" CONFIGURATION "_" GENICAM_COMPILER_STR "_v" VERSION_MAJOR "_" VERSION_MINOR "_" TOSTRING(GENICAM_COMPANY_SUFFIX) "." EXTENSION
00074 #   else
00075 #       define GENICAM_SUFFIX( CONFIGURATION, GENICAM_COMPILER_STR, VERSION_MAJOR, VERSION_MINOR, EXTENSION ) \
00076             "_" CONFIGURATION "_" GENICAM_COMPILER_STR "_v" VERSION_MAJOR "_" VERSION_MINOR "." EXTENSION
00077 #   endif
00078         // _MDd_VC80_v3_0_Company
00079         // _MD_VC80_v3_0_Company
00080         // _MDd_VC80_v3_0
00081         // _MD_VC80_v3_0
00082 
00083 #   define LIB_SUFFIX \
00084         GENICAM_SUFFIX( CONFIGURATION, GENICAM_COMPILER_STR, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "lib" )
00085 #if defined(UNDER_RTSS)
00086 #   define DLL_SUFFIX \
00087         GENICAM_SUFFIX( CONFIGURATION, GENICAM_COMPILER_STR, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "rtdll" )
00088 #else
00089 #   define DLL_SUFFIX \
00090         GENICAM_SUFFIX( CONFIGURATION, GENICAM_COMPILER_STR, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "dll" )
00091 #endif // defined(UNDER_RTSS)
00092 #   define EXE_SUFFIX \
00093         GENICAM_SUFFIX( CONFIGURATION, GENICAM_COMPILER_STR, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "exe" )
00094             
00095 #   define DLL_PREFIX ""
00096 
00097 #elif defined (__GNUC__) && (defined (__linux__) || defined(__APPLE__) || defined(VXWORKS))
00098 
00099 #   if defined(_DEBUG) || defined(DEBUG)
00100 #      define CONFIGURATION "_d"
00101 #   else
00102 #      define CONFIGURATION ""
00103 #   endif
00104 
00105 #   if defined(GENICAM_COMPANY_SUFFIX)
00106 #       define GENICAM_SUFFIX( CONFIGURATION, VERSION_MAJOR, VERSION_MINOR, EXTENSION ) \
00107             CONFIGURATION "_" GENICAM_COMPILER_STR "_v" VERSION_MAJOR "_" VERSION_MINOR "_" TOSTRING(GENICAM_COMPANY_SUFFIX) "." EXTENSION
00108 #   else
00109 #       define GENICAM_SUFFIX( CONFIGURATION, VERSION_MAJOR, VERSION_MINOR, EXTENSION ) \
00110             CONFIGURATION "_" GENICAM_COMPILER_STR "_v" VERSION_MAJOR "_" VERSION_MINOR "." EXTENSION
00111 #   endif
00112         // _d_gcc40_v3_0_Company
00113         // _gcc40_v3_0_Company
00114         // _d_gcc40_v3_0
00115         // _gcc40_v3_0
00116 
00117     
00118 #   define LIB_SUFFIX \
00119         GENICAM_SUFFIX( CONFIGURATION, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "a" )
00120 
00121 #   if defined(__linux__)
00122 #       define DLL_SUFFIX \
00123             GENICAM_SUFFIX( CONFIGURATION, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "so" )
00124 #   elif defined(VXWORKS)
00125 #       define DLL_SUFFIX \
00126             GENICAM_SUFFIX( CONFIGURATION, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "out" )
00127 #   else
00128 #       define DLL_SUFFIX \
00129             GENICAM_SUFFIX( CONFIGURATION, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "dylib" )
00130 #   endif
00131                 
00132 #   define EXE_SUFFIX \
00133         GENICAM_SUFFIX( CONFIGURATION, GENICAM_VERSION_MAJOR_STR, GENICAM_VERSION_MINOR_STR, "" )
00134 
00135 #   if defined(VXWORKS)
00136 #       define DLL_PREFIX ""
00137 #   else
00138 #       define DLL_PREFIX "lib"
00139 #   endif
00140 
00141 #else
00142 
00143 #   error Unknown shared library support
00144 
00145 #endif
00146 
00147 #define LIB_NAME( MODULE ) \
00148     MODULE LIB_SUFFIX
00149 
00150 #define DLL_NAME( MODULE ) \
00151     DLL_PREFIX MODULE DLL_SUFFIX
00152 
00153 #define EXE_NAME( MODULE ) \
00154     MODULE EXE_SUFFIX
00155 
00156 
00157 // The CameraLink standard defines the names for certain DLLs we build that do not match the GenICam naming scheme
00158 #if defined(_DEBUG) || defined(DEBUG)
00159 #   define CAMERALINK_CONFIGURATION "d"
00160 #else
00161 #   define CAMERALINK_CONFIGURATION ""
00162 #endif
00163 #
00164 #if defined(_MSC_VER)
00165 #   if defined(UNDER_RTSS)
00166 #       define CAMERALINK_DLL_SUFFIX ".rtdll"
00167 #   else
00168 #       define CAMERALINK_DLL_SUFFIX ".dll"
00169 #   endif
00170 #elif defined (__GNUC__) && (defined (__linux__) || defined(__APPLE__) || defined(VXWORKS))
00171 #   if defined(__linux__)
00172 #       define CAMERALINK_DLL_SUFFIX ".so"
00173 #   elif defined(VXWORKS)
00174 #       define CAMERALINK_DLL_SUFFIX ".out"
00175 #   else
00176 #       define CAMERALINK_DLL_SUFFIX ".dylib"
00177 #   endif
00178 #endif
00179 #
00180 #define CAMERALINK_DLL_NAME( MODULE) \
00181     MODULE CAMERALINK_CONFIGURATION CAMERALINK_DLL_SUFFIX
00182 
00183 #endif // LINKAGE_H


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Thu Jun 6 2019 18:42:47