From 7de27df3095155a1d46c439ac81639e722bd9d73 Mon Sep 17 00:00:00 2001 From: DennisOSRM Date: Wed, 20 Nov 2013 16:22:39 +0100 Subject: [PATCH] fix linking on Ubuntu 13.10 --- CMakeLists.txt | 35 +++++++++++++++++++++-------------- cmake/FindLuaJIT.cmake | 31 +++++++++++++++++++------------ 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e333c0878..af8258d5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,20 +138,27 @@ target_link_libraries (osrm-routed ${ZLIB_LIBRARY}) find_package( Threads REQUIRED ) target_link_libraries (osrm-extract ${Threads_LIBRARY}) -find_package( LuaJIT ) -IF( NOT APPLE AND LUAJIT_INCLUDE_DIR AND LUAJIT_LIBRARIES ) - include_directories(${LUAJIT_INCLUDE_DIR}) - target_link_libraries( osrm-extract ${LUAJIT_LIBRARIES} ) - target_link_libraries( osrm-prepare ${LUAJIT_LIBRARIES} ) -ELSE( NOT APPLE AND LUAJIT_INCLUDE_DIR AND LUAJIT_LIBRARIES ) - find_package( Lua52 ) - IF ( NOT LUA52_FOUND ) - find_package( Lua51 REQUIRED AND LUAJIT_LIBRARIES ) - ENDIF ( NOT LUA52_FOUND ) - include_directories(${LUA_INCLUDE_DIR}) - target_link_libraries( osrm-extract ${LUA_LIBRARY} ) - target_link_libraries( osrm-prepare ${LUA_LIBRARY} ) -ENDIF( NOT APPLE AND LUAJIT_INCLUDE_DIR AND LUAJIT_LIBRARIES ) +find_package( Lua52 ) +IF ( NOT LUA52_FOUND ) + find_package( Lua51 REQUIRED ) + IF (NOT APPLE) + find_package( LuaJIT 5.1 ) + ENDIF ( NOT APPLE ) +ELSE( NOT LUA52_FOUND ) + IF(NOT APPLE) + find_package( LuaJIT 5.2 ) + ENDIF(NOT APPLE) +ENDIF( NOT LUA52_FOUND ) + +IF ( LUAJIT_FOUND ) + target_link_libraries( osrm-extract ${LUAJIT_LIBRARIES} ) + target_link_libraries( osrm-prepare ${LUAJIT_LIBRARIES} ) +ELSE () + target_link_libraries( osrm-extract ${LUA_LIBRARY} ) + target_link_libraries( osrm-prepare ${LUA_LIBRARY} ) +ENDIF () +include_directories(${LUA_INCLUDE_DIR}) + find_package( LibXml2 REQUIRED ) include_directories(${LIBXML2_INCLUDE_DIR}) diff --git a/cmake/FindLuaJIT.cmake b/cmake/FindLuaJIT.cmake index 864d83b74..5d5e6aceb 100644 --- a/cmake/FindLuaJIT.cmake +++ b/cmake/FindLuaJIT.cmake @@ -1,8 +1,8 @@ # Locate Lua library # This module defines -# LUAJIT_FOUND, if false, do not try to link to Lua +# LUAJIT_FOUND, if false, do not try to link to Lua # LUAJIT_LIBRARIES -# LUAJIT_INCLUDE_DIR, where to find lua.h +# LUAJIT_INCLUDE_DIR, where to find lua.h # # Note that the expected include convention is # #include "lua.h" @@ -28,8 +28,12 @@ # 2010 - modified for cronkite to find luajit instead of lua, as it was before. # +if ( NOT LuaJIT_FIND_VERSION ) + MESSAGE(FATAL_ERROR "You need to specify a version of libluajit to use") +ENDIF() + IF( NOT LUAJIT_FIND_QUIETLY ) - MESSAGE(STATUS "Looking for LuaJIT...") + MESSAGE(STATUS "Looking for LuaJIT ${LuaJIT_FIND_VERSION}") ENDIF() FIND_PATH(LUAJIT_INCLUDE_DIR lua.h @@ -47,8 +51,8 @@ FIND_PATH(LUAJIT_INCLUDE_DIR lua.h /opt ) -FIND_LIBRARY(LUAJIT_LIBRARY - NAMES luajit-51 luajit-5.1 luajit +FIND_LIBRARY(LUAJIT_LIBRARY + NAMES luajit-${LuaJIT_FIND_VERSION_MAJOR}${LuaJIT_FIND_VERSION_MINOR} luajit-${LuaJIT_FIND_VERSION} HINTS $ENV{LUAJIT_DIR} PATH_SUFFIXES lib64 lib @@ -63,6 +67,7 @@ FIND_LIBRARY(LUAJIT_LIBRARY /opt ) +IF(LUAJIT_LIBRARY) # include the math library for Unix IF(UNIX AND NOT APPLE) FIND_LIBRARY(LUAJIT_MATH_LIBRARY m) @@ -71,16 +76,18 @@ FIND_LIBRARY(LUAJIT_LIBRARY ELSE(UNIX AND NOT APPLE) SET( LUAJIT_LIBRARIES "${LUAJIT_LIBRARY}" CACHE STRING "Lua Libraries") ENDIF(UNIX AND NOT APPLE) -#ENDIF(LUAJIT_LIBRARY) +ENDIF(LUAJIT_LIBRARY) INCLUDE(FindPackageHandleStandardArgs) -# handle the QUIETLY and REQUIRED arguments and set LUAJIT_FOUND to TRUE if +# handle the QUIETLY and REQUIRED arguments and set LUAJIT_FOUND to TRUE if # all listed variables are TRUE -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LuaJIT DEFAULT_MSG LUAJIT_LIBRARIES LUAJIT_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LUAJIT DEFAULT_MSG LUAJIT_LIBRARIES LUAJIT_INCLUDE_DIR) IF( NOT LUAJIT_FIND_QUIETLY ) - IF( LUAJIT_FOUND ) - MESSAGE(STATUS "Found LuaJIT: ${LUAJIT_LIBRARY}" ) - ENDIF() + IF( LUAJIT_FOUND AND LUAJIT_LIBRARIES) + MESSAGE(STATUS "Found LuaJIT: ${LUAJIT_LIBRARY}" ) + MARK_AS_ADVANCED(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARIES LUAJIT_LIBRARY LUAJIT_MATH_LIBRARY) + ELSE() + SET ( LUAJIT_FOUND FALSE ) + ENDIF() ENDIF() -MARK_AS_ADVANCED(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARIES LUAJIT_LIBRARY LUAJIT_MATH_LIBRARY)