85 lines
2.5 KiB
CMake
85 lines
2.5 KiB
CMake
|
# 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)
|
||
|
|