INCLUDE (CheckCXXSourceCompiles) unset(STXXL_WORKS CACHE) set (STXXL_CHECK_SRC "#include \n int main() { stxxl::vector 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() message(STATUS "Linking STXXL failed without libgomp, retrying ..") find_package(OpenMP) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${OpenMP_CXX_FLAGS}") CHECK_CXX_SOURCE_COMPILES("${STXXL_CHECK_SRC}" STXXL_LINKS) if (STXXL_LINKS) message(STATUS "STXXL needs to link against OpenMP") target_link_libraries(osrm-extract gomp) else() message(FATAL_ERROR "STXXL failed failed, libgomp missing?") endif() endif()