always link against libgomp
This commit is contained in:
parent
4195b0d0e6
commit
da469911d3
@ -122,9 +122,17 @@ if(CMAKE_BUILD_TYPE MATCHES Release)
|
|||||||
message(STATUS "Configuring OSRM in release mode")
|
message(STATUS "Configuring OSRM in release mode")
|
||||||
# Check if LTO is available
|
# Check if LTO is available
|
||||||
set(LTO_FLAGS "")
|
set(LTO_FLAGS "")
|
||||||
CHECK_CXX_COMPILER_FLAG("-flto" HAS_LTO_FLAG)
|
check_cxx_compiler_flag("-flto" LTO_AVAILABLE)
|
||||||
if (HAS_LTO_FLAG)
|
if (LTO_AVAILABLE)
|
||||||
set(LTO_FLAGS "${LTO_FLAGS} -flto")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
|
||||||
|
set(CHECK_LTO_SRC "int main(){return 0;}")
|
||||||
|
CHECK_CXX_SOURCE_COMPILES("${CHECK_LTO_SRC}" LTO_WORKS)
|
||||||
|
if(LTO_WORKS)
|
||||||
|
message(STATUS "LTO working")
|
||||||
|
else()
|
||||||
|
message(STATUS "LTO broken")
|
||||||
|
set(CMAKE_CXX_FLAGS "${OLD_CXX_FLAGS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Since gcc 4.9 the LTO format is non-standart ('slim'), so we need to use the build-in tools
|
# Since gcc 4.9 the LTO format is non-standart ('slim'), so we need to use the build-in tools
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND
|
||||||
@ -132,9 +140,8 @@ if(CMAKE_BUILD_TYPE MATCHES Release)
|
|||||||
message(STATUS "Using gcc specific binutils for LTO.")
|
message(STATUS "Using gcc specific binutils for LTO.")
|
||||||
set(CMAKE_AR "/usr/bin/gcc-ar")
|
set(CMAKE_AR "/usr/bin/gcc-ar")
|
||||||
set(CMAKE_RANLIB "/usr/bin/gcc-ranlib")
|
set(CMAKE_RANLIB "/usr/bin/gcc-ranlib")
|
||||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
|
||||||
endif()
|
endif()
|
||||||
endif (HAS_LTO_FLAG)
|
endif ()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
@ -246,7 +253,7 @@ include_directories(${LUABIND_INCLUDE_DIR})
|
|||||||
target_link_libraries(osrm-extract ${LUABIND_LIBRARY})
|
target_link_libraries(osrm-extract ${LUABIND_LIBRARY})
|
||||||
target_link_libraries(osrm-prepare ${LUABIND_LIBRARY})
|
target_link_libraries(osrm-prepare ${LUABIND_LIBRARY})
|
||||||
|
|
||||||
if( LUAJIT_FOUND )
|
if(LUAJIT_FOUND)
|
||||||
target_link_libraries(osrm-extract ${LUAJIT_LIBRARIES})
|
target_link_libraries(osrm-extract ${LUAJIT_LIBRARIES})
|
||||||
target_link_libraries(osrm-prepare ${LUAJIT_LIBRARIES})
|
target_link_libraries(osrm-prepare ${LUAJIT_LIBRARIES})
|
||||||
else()
|
else()
|
||||||
@ -259,21 +266,15 @@ find_package(EXPAT REQUIRED)
|
|||||||
include_directories(${EXPAT_INCLUDE_DIRS})
|
include_directories(${EXPAT_INCLUDE_DIRS})
|
||||||
target_link_libraries(osrm-extract ${EXPAT_LIBRARIES})
|
target_link_libraries(osrm-extract ${EXPAT_LIBRARIES})
|
||||||
|
|
||||||
find_package( STXXL REQUIRED )
|
find_package(STXXL REQUIRED)
|
||||||
include_directories(${STXXL_INCLUDE_DIR})
|
include_directories(${STXXL_INCLUDE_DIR})
|
||||||
target_link_libraries(OSRM ${STXXL_LIBRARY})
|
target_link_libraries(OSRM ${STXXL_LIBRARY})
|
||||||
target_link_libraries(osrm-extract ${STXXL_LIBRARY})
|
target_link_libraries(osrm-extract ${STXXL_LIBRARY})
|
||||||
target_link_libraries(osrm-prepare ${STXXL_LIBRARY})
|
target_link_libraries(osrm-prepare ${STXXL_LIBRARY})
|
||||||
|
|
||||||
# check if we need to link against libgomp
|
target_link_libraries(osrm-extract gomp)
|
||||||
include(check_stxxl)
|
|
||||||
|
|
||||||
if(MINGW)
|
find_package(OSMPBF REQUIRED)
|
||||||
# STXXL needs OpenMP library
|
|
||||||
target_link_libraries(osrm-extract gomp)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package( OSMPBF REQUIRED )
|
|
||||||
include_directories(${OSMPBF_INCLUDE_DIR})
|
include_directories(${OSMPBF_INCLUDE_DIR})
|
||||||
target_link_libraries(osrm-extract ${OSMPBF_LIBRARY})
|
target_link_libraries(osrm-extract ${OSMPBF_LIBRARY})
|
||||||
target_link_libraries(osrm-prepare ${OSMPBF_LIBRARY})
|
target_link_libraries(osrm-prepare ${OSMPBF_LIBRARY})
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
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()
|
|
||||||
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()
|
|
Loading…
Reference in New Issue
Block a user