Skip to content

Commit

Permalink
ADDED: #238 First version of the CMake script for finding LibXML2 und…
Browse files Browse the repository at this point in the history
…er Linux, OSX, etc.
  • Loading branch information
dfighter1985 committed Sep 7, 2012
1 parent 457732c commit e88bcae
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
5 changes: 4 additions & 1 deletion cmake/CMakeLists.txt
Expand Up @@ -130,18 +130,21 @@ IF( NOT WIN32 )
find_package(OpenSSL REQUIRED)
find_package(Threads REQUIRED)
find_package(MySQL REQUIRED)
find_package(LibXML2 REQUIRED)
ELSE()
add_subdirectory(zlib)
add_subdirectory(pcre)
SET(MYSQL_LIBRARY "")
SET(LIBXML2_LIBRARIES "")
ENDIF()

IF(WIN32) #On windows, we have to specify the includes for libeay and mysql libs.
SET( GLOBAL_INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS}
${DEPENDENCY_INCLUDE_ROOT}/openssl
${DEPENDENCY_INCLUDE_ROOT}/mysql )
ELSE() #On apple n linux, mysql.h should have been found.
ELSE() #On apple and linux, mysql and libxml2 should have been found.
SET( GLOBAL_INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIR} )
SET( GLOBAL_INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} )
ENDIF()

#For windows, link to libeay and libmysql
Expand Down
2 changes: 1 addition & 1 deletion cmake/logon/CMakeLists.txt
Expand Up @@ -44,7 +44,7 @@ IF( CMAKE_GENERATOR MATCHES Visual*)
ADD_NATIVE_PRECOMPILED_HEADER(${PROJECT_NAME} LogonStdAfx.h ${prefix}/LogonStdAfx.cpp)
ENDIF()
#Link our shared lib.
target_link_libraries( ${PROJECT_NAME} shared ${ZLIB_LIBRARIES} ${PCRE_LIBRARIES} )
target_link_libraries( ${PROJECT_NAME} shared ${ZLIB_LIBRARIES} ${PCRE_LIBRARIES} ${LIBXML2_LIBRARIES} )
#Provide make install rules.
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION .)

2 changes: 1 addition & 1 deletion cmake/world/CMakeLists.txt
Expand Up @@ -294,7 +294,7 @@ ENDIF()
set_target_properties(${PROJECT_NAME} PROPERTIES ENABLE_EXPORTS TRUE)

add_dependencies( ${PROJECT_NAME} shared g3dlite vmaplib detour recast)
target_link_libraries( ${PROJECT_NAME} shared g3dlite vmaplib detour recast ${PCRE_LIBRARIES} )
target_link_libraries( ${PROJECT_NAME} shared g3dlite vmaplib detour recast ${PCRE_LIBRARIES} ${LIBXML2_LIBRARIES} )
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION .)


Expand Down
49 changes: 49 additions & 0 deletions cmake_modules/FindLibXML2.cmake
@@ -0,0 +1,49 @@
# Find the LibXML2 includes and library
#
# LIBXML2_INCLUDE_DIR - where to find the headers.
# LIBXML2_LIBRARIES - List of libraries.
# LIBXML2_FOUND - True if found.
#

IF (LIBXML2_INCLUDE_DIR)
# Already in cache, be silent
SET(LIBXML2_FIND_QUIETLY TRUE)
ENDIF (LIBXML2_INCLUDE_DIR)

FIND_PATH(LIBXML2_INCLUDE_DIR tree.h parser.h xmlmemory.h
/usr/local/include/libxml2/libxml
/usr/include/libxml2/libxml
/usr/local/libxml2/include/libxml
/opt/local/include/libxml2/libxml
)

SET(LIBXML2_NAMES libxml2 xml2 )
FIND_LIBRARY(LIBXML2_LIBRARY
NAMES ${LIBXML2_NAMES}
PATHS /usr/lib /usr/lib/libxml2 /usr/local/lib /usr/local/libxml2/lib /usr/local/lib/libxml2 /opt/local/lib/libxml2/libxml
)

IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
SET(LIBXML2_FOUND TRUE)
SET( LIBXML2_LIBRARIES ${LIBXML2_LIBRARY} )
ELSE (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
SET(LIBXML2_FOUND FALSE)
SET( LIBXML2_LIBRARIES )
ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)

IF (LIBXML2_FOUND)
IF (NOT LIBXML2_FIND_QUIETLY)
MESSAGE(STATUS "Found LIBXML2: ${LIBXML2_LIBRARY}")
ENDIF (NOT LIBXML2_FIND_QUIETLY)
ELSE (LIBXML2_FOUND)
IF (LIBXML2_FIND_REQUIRED)
MESSAGE(STATUS "Looked for LibXML2 libraries named ${LIBXML2_NAMES}.")
MESSAGE(FATAL_ERROR "Could NOT find LIBXML2 library")
ENDIF (LIBXML2_FIND_REQUIRED)
ENDIF (LIBXML2_FOUND)

MARK_AS_ADVANCED(
LIBXML2_LIBRARY
LIBXML2_INCLUDE_DIR
)

0 comments on commit e88bcae

Please sign in to comment.