Browse Source

Use correct architecture dependent hadoop lib path
USE ARCH64BIT cmake var to generate correct hadoop lib path, based on
uris used by hadoop: Linux-amd64-64 or Linux-i386-32.

Signed-off-by: Rodrigo Pastrana <Rodrigo.Pastrana@lexisnexis.com>

Rodrigo Pastrana 13 years ago
parent
commit
1205aa5cd1
1 changed files with 19 additions and 3 deletions
  1. 19 3
      cmake_modules/FindLIBHDFS.cmake

+ 19 - 3
cmake_modules/FindLIBHDFS.cmake

@@ -33,9 +33,9 @@ if (NOT LIBHDFS_FOUND)
   IF (NOT ${EXTERNALS_DIRECTORY} STREQUAL "")
     IF (UNIX)
       IF (${ARCH64BIT} EQUAL 1)
-        SET (osdir "linux64_gcc4.1.1")
+        SET (osdir "Linux-amd64-64")
       ELSE()
-        SET (osdir "linux32_gcc4.1.1")
+        SET (osdir "Linux-i386-32")
       ENDIF()
     ELSEIF(WIN32)
       SET (osdir "lib")
@@ -51,7 +51,23 @@ if (NOT LIBHDFS_FOUND)
   if (USE_NATIVE_LIBRARIES)
     # if we didn't find in externals, look in system include path
     FIND_PATH (LIBHDFS_INCLUDE_DIR NAMES hdfs.h PATHS "${HADOOP_PATH}/src/c++/libhdfs" )
-    FIND_LIBRARY (LIBHDFS_LIBRARIES NAMES ${libhdfs_libs} PATHS "${HADOOP_PATH}/c++/Linux-amd64-64/lib" )
+
+    IF (UNIX)
+      IF (${ARCH64BIT} EQUAL 1)
+        SET (hdosdir "Linux-amd64-64")
+      ELSE()
+        SET (hdosdir "Linux-i386-32")
+      ENDIF()
+    ELSEIF(WIN32)
+      SET (hdosdir "lib")
+    ELSE()
+      SET (hdosdir "unknown")
+    ENDIF()
+
+    IF (NOT ("${hdosdir}" STREQUAL "unknown"))
+     FIND_LIBRARY (LIBHDFS_LIBRARIES NAMES ${libhdfs_libs} PATHS "${HADOOP_PATH}/c++/${hdosdir}/lib" )
+    ENDIF()
+
   endif()
 
   include(FindPackageHandleStandardArgs)