diff options
Diffstat (limited to 'mgizapp/cmake/FindTR1.cmake')
-rw-r--r-- | mgizapp/cmake/FindTR1.cmake | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/mgizapp/cmake/FindTR1.cmake b/mgizapp/cmake/FindTR1.cmake new file mode 100644 index 0000000..3ef2b44 --- /dev/null +++ b/mgizapp/cmake/FindTR1.cmake @@ -0,0 +1,84 @@ +# Check availability of C++ TR1 contents. + +# Sets the following variables: +# +# TR1_SHARED_PTR_FOUND -- std::tr1::shared_ptr1<T> available +# TR1_SHARED_PTR_USE_TR1_MEMORY -- #include <tr1/memory> +# TR1_SHARED_PTR_USE_MEMORY -- #include <memory> + +# We need to have at least this version to support the VERSION_LESS argument to 'if' (2.6.2) and unset (2.6.3) +cmake_policy(PUSH) + cmake_minimum_required(VERSION 2.6.3) +cmake_policy(POP) + +INCLUDE(${PROJECT_SOURCE_DIR}/cmake/CheckCXXSourceCompiles.cmake) +# --------------------------------------------------------------------------- +# std::tr1::shared_ptr<T> +# --------------------------------------------------------------------------- + +check_cxx_source_compiles( + " + #include <tr1/memory> + int main() { + std::tr1::shared_ptr<int> ptr; + return 0; + } + " +TR1_SHARED_PTR_USE_TR1_MEMORY) +check_cxx_source_compiles( + " + #include <memory> + int main() { + std::tr1::shared_ptr<int> ptr; + return 0; + } + " +TR1_SHARED_PTR_USE_MEMORY) + +set (TR1_SHARED_PTR -NOTFOUND) +if (TR1_SHARED_PTR_USE_TR1_MEMORY) +set (TR1_SHARED_PTR_FOUND TRUE) +endif (TR1_SHARED_PTR_USE_TR1_MEMORY) +if (TR1_SHARED_PTR_USE_MEMORY) +set (TR1_SHARED_PTR_FOUND TRUE) +endif (TR1_SHARED_PTR_USE_MEMORY) + +mark_as_advanced (TR1_SHARED_PTR_FOUND) +mark_as_advanced (TR1_SHARED_PTR_USE_TR1_MEMORY) +mark_as_advanced (TR1_SHARED_PTR_USE_MEMORY) + +# --------------------------------------------------------------------------- +# std::tr1::unordered_map<K, V> +# --------------------------------------------------------------------------- + +check_cxx_source_compiles( + " + #include <tr1/unordered_map> + int main() { + std::tr1::unordered_map<int, int> m; + return 0; + } + " + TR1_UNORDERED_MAP_USE_TR1_UNORDERED_MAP) +check_cxx_source_compiles( + " + #include <unordered_map> + int main() { + std::tr1::unordered_map<int, int> m; + return 0; + } + " + TR1_UNORDERED_MAP_USE_UNORDERED_MAP) + +set (TR1_UNORDERED_MAP -NOTFOUND) +if (TR1_UNORDERED_MAP_USE_TR1_UNORDERED_MAP) +set (TR1_UNORDERED_MAP_FOUND TRUE) +endif (TR1_UNORDERED_MAP_USE_TR1_UNORDERED_MAP) +if (TR1_UNORDERED_MAP_USE_UNORDERED_MAP) +set (TR1_UNORDERED_MAP_FOUND TRUE) +endif (TR1_UNORDERED_MAP_USE_UNORDERED_MAP) + +mark_as_advanced (TR1_UNORDERED_MAP_FOUND) +mark_as_advanced (TR1_UNORDERED_MAP_USE_TR1_UNORDERED_MAP) +mark_as_advanced (TR1_UNORDERED_MAP_USE_UNORDERED_MAP) + |