check if stxxl compiles with or without libgomp, fixes #1361
This commit is contained in:
parent
ade94c87b5
commit
8b2ca6b13d
@ -176,7 +176,7 @@ endif()
|
||||
|
||||
# Activate C++11
|
||||
if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
ADD_DEFINITIONS(-std=c++11)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ")
|
||||
endif()
|
||||
|
||||
# Configuring other platform dependencies
|
||||
@ -265,6 +265,9 @@ target_link_libraries(OSRM ${STXXL_LIBRARY})
|
||||
target_link_libraries(osrm-extract ${STXXL_LIBRARY})
|
||||
target_link_libraries(osrm-prepare ${STXXL_LIBRARY})
|
||||
|
||||
# check if we need to link against libgomp
|
||||
include(check_stxxl)
|
||||
|
||||
if(MINGW)
|
||||
# STXXL needs OpenMP library
|
||||
target_link_libraries(osrm-extract gomp)
|
||||
|
24
cmake/check_stxxl.cmake
Normal file
24
cmake/check_stxxl.cmake
Normal file
@ -0,0 +1,24 @@
|
||||
INCLUDE (CheckCXXSourceCompiles)
|
||||
unset(STXXL_WORKS CACHE)
|
||||
set (STXXL_CHECK_SRC "#include <stxxl/vector>\n int main() { stxxl::vector<int> vec; return 0;}")
|
||||
set (CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE})
|
||||
set (CMAKE_REQUIRED_INCLUDES "${STXXL_INCLUDE_DIR}")
|
||||
set (CMAKE_REQUIRED_LIBRARIES "${STXXL_LIBRARY}")
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("${STXXL_CHECK_SRC}" STXXL_WORKS)
|
||||
|
||||
if(STXXL_WORKS)
|
||||
message(STATUS "STXXL can be used without linking against libgomp")
|
||||
else()
|
||||
unset(STXXL_WORKS)
|
||||
message(STATUS "STXXL failed without libgomp, retrying ..")
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} -lgomp)
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("${STXXL_CHECK_SRC}" STXXL_WORKS)
|
||||
|
||||
if (STXXL_WORKS)
|
||||
target_link_libraries(osrm-extract gomp)
|
||||
else()
|
||||
message(FATAL "STXXL failed failed, libgomp missing?")
|
||||
endif()
|
||||
endif()
|
Loading…
Reference in New Issue
Block a user