Update ms_stdint.h in metis. Export libraries correctly
parent
0771b1658b
commit
ad74a4b8c9
|
@ -322,8 +322,10 @@ endif(GTSAM_BUILD_UNSTABLE)
|
||||||
|
|
||||||
# Install config and export files
|
# Install config and export files
|
||||||
GtsamMakeConfigFile(GTSAM "${CMAKE_CURRENT_SOURCE_DIR}/gtsam_extra.cmake.in")
|
GtsamMakeConfigFile(GTSAM "${CMAKE_CURRENT_SOURCE_DIR}/gtsam_extra.cmake.in")
|
||||||
|
message("GTSAM export: ${GTSAM_EXPORTED_TARGETS}")
|
||||||
export(TARGETS ${GTSAM_EXPORTED_TARGETS} FILE GTSAM-exports.cmake)
|
export(TARGETS ${GTSAM_EXPORTED_TARGETS} FILE GTSAM-exports.cmake)
|
||||||
|
|
||||||
|
|
||||||
# Check for doxygen availability - optional dependency
|
# Check for doxygen availability - optional dependency
|
||||||
find_package(Doxygen)
|
find_package(Doxygen)
|
||||||
|
|
||||||
|
|
|
@ -73,3 +73,5 @@ endif()
|
||||||
if(GTSAM_INSTALL_GEOGRAPHICLIB)
|
if(GTSAM_INSTALL_GEOGRAPHICLIB)
|
||||||
add_subdirectory(GeographicLib)
|
add_subdirectory(GeographicLib)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
|
||||||
|
|
|
@ -47,3 +47,5 @@ if(GTSAM_BUILD_METIS_EXECUTABLES)
|
||||||
add_subdirectory("programs")
|
add_subdirectory("programs")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
||||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||||
//
|
//
|
||||||
// Copyright (c) 2006 Alexander Chemeris
|
// Copyright (c) 2006-2013 Alexander Chemeris
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without
|
// Redistribution and use in source and binary forms, with or without
|
||||||
// modification, are permitted provided that the following conditions are met:
|
// modification, are permitted provided that the following conditions are met:
|
||||||
|
@ -13,8 +13,9 @@
|
||||||
// notice, this list of conditions and the following disclaimer in the
|
// notice, this list of conditions and the following disclaimer in the
|
||||||
// documentation and/or other materials provided with the distribution.
|
// documentation and/or other materials provided with the distribution.
|
||||||
//
|
//
|
||||||
// 3. The name of the author may be used to endorse or promote products
|
// 3. Neither the name of the product nor the names of its contributors may
|
||||||
// derived from this software without specific prior written permission.
|
// be used to endorse or promote products derived from this software
|
||||||
|
// without specific prior written permission.
|
||||||
//
|
//
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
@ -40,31 +41,60 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_VER >= 1600 // [
|
||||||
|
#include <stdint.h>
|
||||||
|
#else // ] _MSC_VER >= 1600 [
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
// For Visual Studio 6 in C++ mode wrap <wchar.h> include with 'extern "C++" {}'
|
// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
|
||||||
|
// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
|
||||||
// or compiler give many errors like this:
|
// or compiler give many errors like this:
|
||||||
// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
|
// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
|
||||||
#if (_MSC_VER < 1300) && defined(__cplusplus)
|
#ifdef __cplusplus
|
||||||
extern "C++" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
# include <wchar.h>
|
# include <wchar.h>
|
||||||
#if (_MSC_VER < 1300) && defined(__cplusplus)
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Define _W64 macros to mark types changing their size, like intptr_t.
|
||||||
|
#ifndef _W64
|
||||||
|
# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
|
||||||
|
# define _W64 __w64
|
||||||
|
# else
|
||||||
|
# define _W64
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// 7.18.1 Integer types
|
// 7.18.1 Integer types
|
||||||
|
|
||||||
// 7.18.1.1 Exact-width integer types
|
// 7.18.1.1 Exact-width integer types
|
||||||
typedef __int8 int8_t;
|
|
||||||
typedef __int16 int16_t;
|
// Visual Studio 6 and Embedded Visual C++ 4 doesn't
|
||||||
typedef __int32 int32_t;
|
// realize that, e.g. char has the same size as __int8
|
||||||
typedef __int64 int64_t;
|
// so we give up on __intX for them.
|
||||||
|
#if (_MSC_VER < 1300)
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef signed short int16_t;
|
||||||
|
typedef signed int int32_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
#else
|
||||||
|
typedef signed __int8 int8_t;
|
||||||
|
typedef signed __int16 int16_t;
|
||||||
|
typedef signed __int32 int32_t;
|
||||||
typedef unsigned __int8 uint8_t;
|
typedef unsigned __int8 uint8_t;
|
||||||
typedef unsigned __int16 uint16_t;
|
typedef unsigned __int16 uint16_t;
|
||||||
typedef unsigned __int32 uint32_t;
|
typedef unsigned __int32 uint32_t;
|
||||||
|
#endif
|
||||||
|
typedef signed __int64 int64_t;
|
||||||
typedef unsigned __int64 uint64_t;
|
typedef unsigned __int64 uint64_t;
|
||||||
|
|
||||||
|
|
||||||
// 7.18.1.2 Minimum-width integer types
|
// 7.18.1.2 Minimum-width integer types
|
||||||
typedef int8_t int_least8_t;
|
typedef int8_t int_least8_t;
|
||||||
typedef int16_t int_least16_t;
|
typedef int16_t int_least16_t;
|
||||||
|
@ -87,11 +117,11 @@ typedef uint64_t uint_fast64_t;
|
||||||
|
|
||||||
// 7.18.1.4 Integer types capable of holding object pointers
|
// 7.18.1.4 Integer types capable of holding object pointers
|
||||||
#ifdef _WIN64 // [
|
#ifdef _WIN64 // [
|
||||||
typedef __int64 intptr_t;
|
typedef signed __int64 intptr_t;
|
||||||
typedef unsigned __int64 uintptr_t;
|
typedef unsigned __int64 uintptr_t;
|
||||||
#else // _WIN64 ][
|
#else // _WIN64 ][
|
||||||
typedef int intptr_t;
|
typedef _W64 signed int intptr_t;
|
||||||
typedef unsigned int uintptr_t;
|
typedef _W64 unsigned int uintptr_t;
|
||||||
#endif // _WIN64 ]
|
#endif // _WIN64 ]
|
||||||
|
|
||||||
// 7.18.1.5 Greatest-width integer types
|
// 7.18.1.5 Greatest-width integer types
|
||||||
|
@ -213,10 +243,17 @@ typedef uint64_t uintmax_t;
|
||||||
#define UINT64_C(val) val##ui64
|
#define UINT64_C(val) val##ui64
|
||||||
|
|
||||||
// 7.18.4.2 Macros for greatest-width integer constants
|
// 7.18.4.2 Macros for greatest-width integer constants
|
||||||
|
// These #ifndef's are needed to prevent collisions with <boost/cstdint.hpp>.
|
||||||
|
// Check out Issue 9 for the details.
|
||||||
|
#ifndef INTMAX_C // [
|
||||||
# define INTMAX_C INT64_C
|
# define INTMAX_C INT64_C
|
||||||
|
#endif // INTMAX_C ]
|
||||||
|
#ifndef UINTMAX_C // [
|
||||||
# define UINTMAX_C UINT64_C
|
# define UINTMAX_C UINT64_C
|
||||||
|
#endif // UINTMAX_C ]
|
||||||
|
|
||||||
#endif // __STDC_CONSTANT_MACROS ]
|
#endif // __STDC_CONSTANT_MACROS ]
|
||||||
|
|
||||||
|
#endif // _MSC_VER >= 1600 ]
|
||||||
|
|
||||||
#endif // _MSC_STDINT_H_ ]
|
#endif // _MSC_STDINT_H_ ]
|
|
@ -14,4 +14,7 @@ install(TARGETS metis
|
||||||
RUNTIME DESTINATION include/gtsam/3rdparty/metis/lib
|
RUNTIME DESTINATION include/gtsam/3rdparty/metis/lib
|
||||||
ARCHIVE DESTINATION include/gtsam/3rdparty/metis/lib)
|
ARCHIVE DESTINATION include/gtsam/3rdparty/metis/lib)
|
||||||
|
|
||||||
|
install(TARGETS metis EXPORT GTSAM-exports ARCHIVE DESTINATION lib)
|
||||||
|
|
||||||
|
list(APPEND GTSAM_EXPORTED_TARGETS metis)
|
||||||
|
set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
|
||||||
|
|
|
@ -85,17 +85,21 @@ configure_file("${PROJECT_SOURCE_DIR}/cmake/dllexport.h.in" "dllexport.h")
|
||||||
list(APPEND gtsam_srcs "${PROJECT_BINARY_DIR}/gtsam/config.h" "${PROJECT_BINARY_DIR}/gtsam/dllexport.h")
|
list(APPEND gtsam_srcs "${PROJECT_BINARY_DIR}/gtsam/config.h" "${PROJECT_BINARY_DIR}/gtsam/dllexport.h")
|
||||||
install(FILES "${PROJECT_BINARY_DIR}/gtsam/config.h" "${PROJECT_BINARY_DIR}/gtsam/dllexport.h" DESTINATION include/gtsam)
|
install(FILES "${PROJECT_BINARY_DIR}/gtsam/config.h" "${PROJECT_BINARY_DIR}/gtsam/dllexport.h" DESTINATION include/gtsam)
|
||||||
|
|
||||||
|
list(APPEND GTSAM_ADDITIONAL_LIBRARIES metis)
|
||||||
|
|
||||||
# Versions
|
# Versions
|
||||||
set(gtsam_version ${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH})
|
set(gtsam_version ${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH})
|
||||||
set(gtsam_soversion ${GTSAM_VERSION_MAJOR})
|
set(gtsam_soversion ${GTSAM_VERSION_MAJOR})
|
||||||
message(STATUS "GTSAM Version: ${gtsam_version}")
|
message(STATUS "GTSAM Version: ${gtsam_version}")
|
||||||
message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
|
message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
|
||||||
message(STATUS "GTSAM Additional: ${GTSAM_ADDITIONAL_LIBRARIES}")
|
message("GTSAM Additional: ${GTSAM_ADDITIONAL_LIBRARIES}")
|
||||||
|
message("GTSAM Exports: ${GTSAM_EXPORTED_TARGETS}")
|
||||||
|
|
||||||
# build shared and static versions of the library
|
# build shared and static versions of the library
|
||||||
if (GTSAM_BUILD_STATIC_LIBRARY)
|
if (GTSAM_BUILD_STATIC_LIBRARY)
|
||||||
message(STATUS "Building GTSAM - static")
|
message(STATUS "Building GTSAM - static")
|
||||||
add_library(gtsam STATIC ${gtsam_srcs})
|
add_library(gtsam STATIC ${gtsam_srcs})
|
||||||
target_link_libraries(gtsam ${GTSAM_BOOST_LIBRARIES} metis ${GTSAM_ADDITIONAL_LIBRARIES})
|
target_link_libraries(gtsam ${GTSAM_BOOST_LIBRARIES} ${GTSAM_ADDITIONAL_LIBRARIES})
|
||||||
set_target_properties(gtsam PROPERTIES
|
set_target_properties(gtsam PROPERTIES
|
||||||
OUTPUT_NAME gtsam
|
OUTPUT_NAME gtsam
|
||||||
CLEAN_DIRECT_OUTPUT 1
|
CLEAN_DIRECT_OUTPUT 1
|
||||||
|
@ -112,7 +116,7 @@ if (GTSAM_BUILD_STATIC_LIBRARY)
|
||||||
else()
|
else()
|
||||||
message(STATUS "Building GTSAM - shared")
|
message(STATUS "Building GTSAM - shared")
|
||||||
add_library(gtsam SHARED ${gtsam_srcs})
|
add_library(gtsam SHARED ${gtsam_srcs})
|
||||||
target_link_libraries(gtsam ${GTSAM_BOOST_LIBRARIES} metis ${GTSAM_ADDITIONAL_LIBRARIES})
|
target_link_libraries(gtsam ${GTSAM_BOOST_LIBRARIES} ${GTSAM_ADDITIONAL_LIBRARIES})
|
||||||
set_target_properties(gtsam PROPERTIES
|
set_target_properties(gtsam PROPERTIES
|
||||||
OUTPUT_NAME gtsam
|
OUTPUT_NAME gtsam
|
||||||
CLEAN_DIRECT_OUTPUT 1
|
CLEAN_DIRECT_OUTPUT 1
|
||||||
|
|
|
@ -155,7 +155,7 @@ namespace gtsam {
|
||||||
static GTSAM_EXPORT Ordering METIS(const MetisIndex& met);
|
static GTSAM_EXPORT Ordering METIS(const MetisIndex& met);
|
||||||
|
|
||||||
template<class FACTOR>
|
template<class FACTOR>
|
||||||
static GTSAM_EXPORT Ordering METIS(const FactorGraph<FACTOR>& graph)
|
static Ordering METIS(const FactorGraph<FACTOR>& graph)
|
||||||
{
|
{
|
||||||
return METIS(MetisIndex(graph));
|
return METIS(MetisIndex(graph));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue