2013-04-22 16:23:53 -04:00
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
project(OSRM)
|
2013-05-12 18:49:14 -04:00
|
|
|
include(FindPackageHandleStandardArgs)
|
2013-07-03 07:32:31 -04:00
|
|
|
|
|
|
|
TRY_RUN(SHARED_LIBRARY_PATH_TYPE SHARED_LIBRARY_PATH_INFO_COMPILED ${PROJECT_BINARY_DIR}/CMakeTmp ${PROJECT_SOURCE_DIR}/cmake/size.cpp OUTPUT_VARIABLE IS_64_SYSTEM)
|
|
|
|
if(IS_64_SYSTEM)
|
|
|
|
message(STATUS "System supports 64 bits.")
|
|
|
|
else(IS_64_SYSTEM)
|
|
|
|
MESSAGE(WARNING "Compiling on a 32 bit system is unsupported!")
|
|
|
|
endif(IS_64_SYSTEM)
|
|
|
|
|
|
|
|
|
2013-04-22 16:23:53 -04:00
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
|
|
set(BOOST_COMPONENTS filesystem regex system thread)
|
|
|
|
|
|
|
|
file(GLOB ExtractorGlob Extractor/*.cpp)
|
|
|
|
set(ExtractorSources extractor.cpp ${ExtractorGlob})
|
|
|
|
add_executable(osrm-extract ${ExtractorSources})
|
|
|
|
|
|
|
|
file(GLOB PrepareGlob Contractor/*.cpp)
|
|
|
|
set(PrepareSources createHierarchy.cpp ${PrepareGlob})
|
|
|
|
add_executable(osrm-prepare ${PrepareSources})
|
|
|
|
|
2013-06-26 19:48:22 -04:00
|
|
|
add_executable(osrm-routed routed.cpp)
|
2013-04-22 16:23:53 -04:00
|
|
|
set_target_properties(osrm-routed PROPERTIES COMPILE_FLAGS -DROUTED)
|
|
|
|
|
2013-06-26 19:48:22 -04:00
|
|
|
file(GLOB DescriptorGlob Descriptors/*.cpp)
|
|
|
|
file(GLOB LibOSRMGlob Library/*.cpp)
|
|
|
|
file(GLOB SearchEngineSource DataStructures/SearchEngine*.cpp)
|
|
|
|
file(GLOB ServerStructureGlob Server/DataStructures/*.cpp)
|
|
|
|
|
|
|
|
set(OSRMSources ${LibOSRMGlob} ${DescriptorGlob} ${SearchEngineSource} ${ServerStructureGlob})
|
|
|
|
add_library(OSRM SHARED ${OSRMSources})
|
|
|
|
|
2013-04-22 16:23:53 -04:00
|
|
|
# Check the release mode
|
|
|
|
if(NOT CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
set(CMAKE_BUILD_TYPE Release)
|
2013-06-26 19:48:22 -04:00
|
|
|
endif(NOT CMAKE_BUILD_TYPE MATCHES Debug)
|
2013-04-22 16:23:53 -04:00
|
|
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
message(STATUS "Configuring OSRM in debug mode")
|
2013-06-26 19:48:22 -04:00
|
|
|
endif(CMAKE_BUILD_TYPE MATCHES Debug)
|
2013-04-22 16:23:53 -04:00
|
|
|
if(CMAKE_BUILD_TYPE MATCHES Release)
|
|
|
|
message(STATUS "Configuring OSRM in release mode")
|
2013-06-26 19:48:22 -04:00
|
|
|
endif(CMAKE_BUILD_TYPE MATCHES Release)
|
2013-04-22 16:23:53 -04:00
|
|
|
|
|
|
|
#Configuring compilers
|
|
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
# using Clang
|
2013-05-12 18:49:14 -04:00
|
|
|
set(CMAKE_CXX_FLAGS "-Wall -Wno-unknown-pragmas -Wno-unneeded-internal-declaration")
|
2013-04-22 16:23:53 -04:00
|
|
|
message(STATUS "OpenMP parallelization not available using clang++")
|
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
# using GCC
|
2013-06-26 19:48:22 -04:00
|
|
|
set(CMAKE_CXX_FLAGS "-Wall -fopenmp -pedantic")
|
2013-04-22 16:23:53 -04:00
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
|
|
|
|
# using Intel C++
|
|
|
|
set(CMAKE_CXX_FLAGS "-static-intel -wd10237 -Wall -openmp -ipo")
|
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
|
|
|
# using Visual Studio C++
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(APPLE)
|
|
|
|
SET(CMAKE_OSX_ARCHITECTURES "x86_64")
|
2013-05-14 23:09:18 -04:00
|
|
|
message("Set Architecture to x64 on OS X")
|
2013-04-22 16:23:53 -04:00
|
|
|
endif()
|
|
|
|
|
|
|
|
#Check Boost
|
|
|
|
set(BOOST_MIN_VERSION "1.44.0")
|
|
|
|
find_package( Boost ${BOOST_MIN_VERSION} COMPONENTS ${BOOST_COMPONENTS} REQUIRED )
|
|
|
|
if (NOT Boost_FOUND)
|
|
|
|
message(FATAL_ERROR "Fatal error: Boost (version >= 1.44.0) required.\n")
|
|
|
|
endif (NOT Boost_FOUND)
|
2013-05-14 23:09:18 -04:00
|
|
|
include_directories(${Boost_INCLUDE_DIRS})
|
2013-06-26 19:48:22 -04:00
|
|
|
|
|
|
|
target_link_libraries( OSRM ${Boost_LIBRARIES})
|
2013-04-22 16:23:53 -04:00
|
|
|
target_link_libraries( osrm-extract ${Boost_LIBRARIES} )
|
|
|
|
target_link_libraries( osrm-prepare ${Boost_LIBRARIES} )
|
2013-06-26 19:48:22 -04:00
|
|
|
target_link_libraries( osrm-routed ${Boost_LIBRARIES} OSRM)
|
2013-04-22 16:23:53 -04:00
|
|
|
|
|
|
|
find_package ( BZip2 REQUIRED )
|
|
|
|
include_directories(${BZIP_INCLUDE_DIRS})
|
|
|
|
target_link_libraries (osrm-extract ${BZIP2_LIBRARIES})
|
|
|
|
|
|
|
|
find_package( ZLIB REQUIRED )
|
|
|
|
target_link_libraries (osrm-extract ${ZLIB_LIBRARY})
|
|
|
|
target_link_libraries (osrm-routed ${ZLIB_LIBRARY})
|
|
|
|
|
|
|
|
find_package( Threads REQUIRED )
|
|
|
|
target_link_libraries (osrm-extract ${Threads_LIBRARY})
|
|
|
|
|
2013-07-09 07:38:44 -04:00
|
|
|
find_package( LuaJIT )
|
2013-07-03 07:46:55 -04:00
|
|
|
IF( LUAJIT_INCLUDE_DIR AND LUAJIT_LIBRARIES )
|
2013-07-03 05:41:14 -04:00
|
|
|
include_directories(${LUAJIT_INCLUDE_DIR})
|
|
|
|
target_link_libraries( osrm-extract ${LUAJIT_LIBRARIES} )
|
|
|
|
target_link_libraries( osrm-prepare ${LUAJIT_LIBRARIES} )
|
2013-07-03 07:46:55 -04:00
|
|
|
ELSE( LUAJIT_INCLUDE_DIR )
|
2013-07-09 07:38:44 -04:00
|
|
|
find_package( Lua51 REQUIRED AND LUAJIT_LIBRARIES )
|
2013-07-03 05:41:14 -04:00
|
|
|
include_directories(${LUA_INCLUDE_DIR})
|
|
|
|
target_link_libraries( osrm-extract ${LUA_LIBRARY} )
|
|
|
|
target_link_libraries( osrm-prepare ${LUA_LIBRARY} )
|
2013-07-03 07:46:55 -04:00
|
|
|
ENDIF( LUAJIT_INCLUDE_DIR AND LUAJIT_LIBRARIES )
|
2013-04-22 16:23:53 -04:00
|
|
|
|
|
|
|
find_package( LibXml2 REQUIRED )
|
|
|
|
include_directories(${LIBXML2_INCLUDE_DIR})
|
|
|
|
target_link_libraries (osrm-extract ${LIBXML2_LIBRARIES})
|
|
|
|
|
|
|
|
find_package( Luabind REQUIRED )
|
|
|
|
include_directories(${LUABIND_INCLUDE_DIR})
|
|
|
|
target_link_libraries (osrm-extract ${LUABIND_LIBRARY})
|
|
|
|
target_link_libraries (osrm-prepare ${LUABIND_LIBRARY})
|
|
|
|
|
|
|
|
find_package( Protobuf REQUIRED )
|
|
|
|
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
|
|
|
target_link_libraries (osrm-extract ${PROTOBUF_LIBRARY})
|
|
|
|
target_link_libraries (osrm-prepare ${PROTOBUF_LIBRARY})
|
|
|
|
|
|
|
|
find_package( STXXL REQUIRED )
|
|
|
|
include_directories(${STXXL_INCLUDE_DIR})
|
|
|
|
target_link_libraries (osrm-extract ${STXXL_LIBRARY})
|
|
|
|
target_link_libraries (osrm-prepare ${STXXL_LIBRARY})
|
|
|
|
|
|
|
|
find_package( OSMPBF REQUIRED )
|
|
|
|
include_directories(${OSMPBF_INCLUDE_DIR})
|
|
|
|
target_link_libraries (osrm-extract ${OSMPBF_LIBRARY})
|
|
|
|
target_link_libraries (osrm-prepare ${OSMPBF_LIBRARY})
|
|
|
|
|
|
|
|
if(WITH_TOOLS)
|
|
|
|
message("-- Activating OSRM internal tools")
|
|
|
|
find_package( GDAL )
|
|
|
|
if(GDAL_FOUND)
|
|
|
|
add_executable(osrm-components Tools/componentAnalysis.cpp)
|
|
|
|
include_directories(${GDAL_INCLUDE_DIR})
|
|
|
|
target_link_libraries( osrm-components ${GDAL_LIBRARIES} )
|
|
|
|
target_link_libraries( osrm-components ${Boost_LIBRARIES} )
|
|
|
|
endif(GDAL_FOUND)
|
2013-06-27 16:08:33 -04:00
|
|
|
add_executable ( osrm-cli Tools/simpleclient.cpp)
|
|
|
|
target_link_libraries( osrm-cli ${Boost_LIBRARIES} OSRM)
|
2013-04-22 16:23:53 -04:00
|
|
|
endif(WITH_TOOLS)
|