diff options
Diffstat (limited to 'extern/libmv/third_party/ceres/bundle.sh')
-rwxr-xr-x | extern/libmv/third_party/ceres/bundle.sh | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/extern/libmv/third_party/ceres/bundle.sh b/extern/libmv/third_party/ceres/bundle.sh index a6f040b6d29..10c70ec51f7 100755 --- a/extern/libmv/third_party/ceres/bundle.sh +++ b/extern/libmv/third_party/ceres/bundle.sh @@ -43,8 +43,11 @@ done rm -rf $tmp -sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/' | grep -v -E 'schur_eliminator_[0-9]_[0-9]_[0-9d].cc' | sort -d` -generated_sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//#\t\t/' | grep -E 'schur_eliminator_[0-9]_[0-9]_[0-9d].cc' | sort -d` +sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/' | \ + grep -v -E 'schur_eliminator_[0-9]_[0-9d]_[0-9d].cc' | \ + grep -v -E 'partitioned_matrix_view_[0-9]_[0-9d]_[0-9d].cc' | sort -d` +generated_sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//#\t\t/' | \ + grep -E 'schur_eliminator_[0-9]_[0-9d]_[0-9d].cc|partitioned_matrix_view_[0-9]_[0-9d]_[0-9d].cc' | sort -d` headers=`find ./include ./internal -type f -iname '*.h' | sed -r 's/^\.\//\t/' | sort -d` src_dir=`find ./internal -type f -iname '*.cc' -exec dirname {} \; -or -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {} \; | sed -r 's/^\.\//\t/' | sort -d | uniq` @@ -171,23 +174,18 @@ if(WITH_OPENMP) ) endif() -if(MSVC10) - add_definitions( - -D"CERES_HASH_NAMESPACE_START=namespace std {" - -D"CERES_HASH_NAMESPACE_END=}" - ) +include(CheckIncludeFileCXX) +CHECK_INCLUDE_FILE_CXX(unordered_map UNORDERED_MAP_IN_STD_NAMESPACE) +if(UNORDERED_MAP_IN_STD_NAMESPACE) + ADD_DEFINITIONS(-DCERES_STD_UNORDERED_MAP) else() - add_definitions( - -D"CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {" - -D"CERES_HASH_NAMESPACE_END=}}" - ) -endif() - -if(APPLE) - if(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.5") - add_definitions( - -DCERES_NO_TR1 - ) + CHECK_INCLUDE_FILE_CXX("tr1/unordered_map" UNORDERED_MAP_IN_TR1_NAMESPACE) + if(UNORDERED_MAP_IN_TR1_NAMESPACE) + ADD_DEFINITIONS(-DCERES_TR1_UNORDERED_MAP) + else() + MESSAGE("-- Unable to find <unordered_map> or <tr1/unordered_map>. ") + MESSAGE("-- Replacing unordered_map/set with map/set (warning: slower!)") + ADD_DEFINITIONS(-DCERES_NO_UNORDERED_MAP) endif() endif() @@ -211,11 +209,10 @@ defs = [] $src src += env.Glob('internal/ceres/generated/schur_eliminator_d_d_d.cc') +src += env.Glob('internal/ceres/generated/partitioned_matrix_view_d_d_d.cc') #src += env.Glob('internal/ceres/generated/*.cc') defs.append('CERES_HAVE_PTHREAD') -defs.append('CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {') -defs.append('CERES_HASH_NAMESPACE_END=}}') defs.append('CERES_NO_SUITESPARSE') defs.append('CERES_NO_CXSPARSE') defs.append('CERES_NO_LAPACK') @@ -225,8 +222,15 @@ defs.append('CERES_HAVE_RWLOCK') if env['WITH_BF_OPENMP']: defs.append('CERES_USE_OPENMP') -if 'Mac OS X 10.5' in env['MACOSX_SDK']: - defs.append('CERES_NO_TR1') +conf = Configure(env) +if conf.CheckCXXHeader("unordered_map"): + defs.append('CERES_STD_UNORDERED_MAP') +elif conf.CheckCXXHeader("tr1/unordered_map"): + defs.append('CERES_TR1_UNORDERED_MAP') +else: + print("-- Unable to find <unordered_map> or <tr1/unordered_map>. ") + print("-- Replacing unordered_map/set with map/set (warning: slower!)") + defs.append('CERES_NO_UNORDERED_MAP') incs = '. ../../ ../../../Eigen3 ./include ./internal ../gflags' |