fastcdr: Rolling
  • Links
    • Rosindex
    • Website
    • Bugtracker
    • Repository
  • C++ API
    • Class Hierarchy
    • File Hierarchy
    • Full C++ API
      • Namespaces
        • Namespace eprosima
        • Namespace eprosima::fastcdr
        • Namespace eprosima::fastcdr::detail
        • Namespace eprosima::fastcdr::exception
        • Namespace std
      • Classes and Structs
        • Template Struct optional_storage
        • Template Struct optional_storage< T, typename std::enable_if< std::is_trivially_destructible< T >::value >::type >
        • Template Struct fixed_string
        • Struct nullopt_t
        • Class _FastBuffer_iterator
        • Class Cdr
        • Class Cdr::state
        • Class CdrSizeCalculator
        • Class BadOptionalAccessException
        • Class BadParamException
        • Class Exception
        • Class LockedExternalAccessException
        • Class NotEnoughMemoryException
        • Template Class external
        • Class FastBuffer
        • Class FastCdr
        • Class FastCdr::state
        • Class MemberId
        • Template Class optional
      • Enums
        • Enum CdrVersion
        • Enum EncodingAlgorithmFlag
      • Functions
        • Template Function eprosima::fastcdr::calculate_serialized_size
        • Template Function eprosima::fastcdr::deserialize
        • Function eprosima::fastcdr::is_multi_array_primitive(…)
        • Template Function eprosima::fastcdr::is_multi_array_primitive(_T const *)
        • Template Function eprosima::fastcdr::is_multi_array_primitive(std::array<_T, _N> const *)
        • Template Function eprosima::fastcdr::serialize
        • Function size_to_uint32
      • Variables
        • Variable eprosima::fastcdr::MEMBER_ID_INVALID
        • Variable eprosima::fastcdr::nullopt
      • Defines
        • Define Cdr_DllAPI
        • Define EPROSIMA_LIB_NAME
        • Define FASTCDR_STATIC_LINK
        • Define MEMCCPY
      • Typedefs
        • Typedef eprosima::fastcdr::string_255
      • Directories
        • Directory include
        • Directory fastcdr
        • Directory cdr
        • Directory config
        • Directory detail
        • Directory exceptions
        • Directory xcdr
        • Directory detail
      • Files
        • File BadOptionalAccessException.hpp
        • File BadParamException.h
        • File Cdr.h
        • File CdrEncoding.hpp
        • File CdrSizeCalculator.hpp
        • File container_recursive_inspector.hpp
        • File doxygen_modules.h
        • File eProsima_auto_link.h
        • File Exception.h
        • File external.hpp
        • File FastBuffer.h
        • File FastCdr.h
        • File fastcdr_dll.h
        • File fixed_size_string.hpp
        • File LockedExternalAccessException.hpp
        • File MemberId.hpp
        • File NotEnoughMemoryException.h
        • File optional.hpp
        • File optional.hpp
  • Standard Documents
    • CONTRIBUTING
      • Contribution Guidelines
        • Contributions Licensing
        • Developer Certificate of Origin
        • Code Coverage
    • README
      • Commercial support
      • Build
      • Quality Declaration
    • PACKAGE
    • LICENSE
  • Index
fastcdr: Rolling
  • C++ API
  • File eProsima_auto_link.h
  • Program Listing for File eProsima_auto_link.h
  • View page source

Program Listing for File eProsima_auto_link.h

↰ Return to documentation for file (include/fastcdr/eProsima_auto_link.h)

// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*
   Expected defines.

   - EPROSIMA_LIB_NAME
   - FASTCDR_VERSION_MAJOR
   - FASTCDR_VERSION_MINOR
 */

#if defined(_MSC_VER)
    #define EPROSIMA_STRINGIZE(X) EPROSIMA_DO_STRINGIZE(X)
    #define EPROSIMA_DO_STRINGIZE(X) #X

    #if defined(_DEBUG)
        #define EPROSIMA_LIB_DEBUG_TAG "d"
    #else
        #define EPROSIMA_LIB_DEBUG_TAG
    #endif // _DEBUG

// Select linkage option.
    #if (defined(_DLL) || defined(_RTLDLL)) && defined(EPROSIMA_DYN_LINK)
        #define EPROSIMA_LIB_PREFIX
    #elif defined(EPROSIMA_DYN_LINK)
        #error "Mixing a dll eprosima library with a static runtime is a bad idea"
    #else
        #define EPROSIMA_LIB_PREFIX "lib"
    #endif // if (defined(_DLL) || defined(_RTLDLL)) && defined(EPROSIMA_DYN_LINK)

// Include library
    #if defined(EPROSIMA_LIB_NAME) \
    && defined(EPROSIMA_LIB_PREFIX) \
    && defined(EPROSIMA_LIB_DEBUG_TAG) \
    && defined(FASTCDR_VERSION_MAJOR) \
    && defined(FASTCDR_VERSION_MINOR)
        #pragma \
    comment(lib, EPROSIMA_LIB_PREFIX EPROSIMA_STRINGIZE(EPROSIMA_LIB_NAME) EPROSIMA_LIB_DEBUG_TAG "-" EPROSIMA_STRINGIZE(FASTCDR_VERSION_MAJOR) "." EPROSIMA_STRINGIZE(FASTCDR_VERSION_MINOR) ".lib")
    #else
    #error "Some required macros where not defined"
    #endif // if defined(EPROSIMA_LIB_NAME) && defined(EPROSIMA_LIB_PREFIX) && defined(EPROSIMA_LIB_DEBUG_TAG) && defined(FASTCDR_VERSION_MAJOR) && defined(FASTCDR_VERSION_MINOR)

#endif // _MSC_VER

// Undef macros
#ifdef EPROSIMA_LIB_PREFIX
#undef EPROSIMA_LIB_PREFIX
#endif // ifdef EPROSIMA_LIB_PREFIX

#ifdef EPROSIMA_LIB_NAME
#undef EPROSIMA_LIB_NAME
#endif // ifdef EPROSIMA_LIB_NAME

#ifdef EPROSIMA_LIB_DEBUG_TAG
#undef EPROSIMA_LIB_DEBUG_TAG
#endif // ifdef EPROSIMA_LIB_DEBUG_TAG
Previous Next

© Copyright The <fastcdr> Contributors. License: Apache 2.0.

Built with Sphinx using a theme provided by Read the Docs.