* CMake: added search for math library, made CPack existence optional, updated the search for mysqlclient and corrected misspelled variables (tested with FreeBSD-8.2-i386)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14893 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
flaviojs 2011-07-09 07:39:27 +00:00
parent ac908248b5
commit 31cbbf1917
5 changed files with 54 additions and 43 deletions

View File

@ -42,25 +42,10 @@ endif( WIN32 )
# system
#
message( STATUS "Detecting system MYSQL" )
find_program( MYSQL_CONFIG_EXECUTABLE "mysql_config" )
mark_as_advanced( MYSQL_CONFIG_EXECUTABLE )
if( MYSQL_CONFIG_EXECUTABLE )
# use mysql_config data
message( "Found mysql_config: ${MYSQL_CONFIG_EXECUTABLE}" )
execute_process( COMMAND "${MYSQL_CONFIG_EXECUTABLE} --libs"
OUTPUT_VARIABLE MYSQL_LIBRARIES )
execute_process( COMMAND "${MYSQL_CONFIG_EXECUTABLE} --include"
OUTPUT_VARIABLE MYSQL_INCLUDE_DIRS )
execute_process( COMMAND "${MYSQL_CONFIG_EXECUTABLE} --version"
OUTPUT_VARIABLE MYSQL_VERSION )
message( STATUS "Found MYSQL: ${MYSQL_LIBRARIES} (found version ${MYSQL_VERSION})" )
else()
# find mysql package
unset( MYSQL_LIBRARIES CACHE )
unset( MYSQL_INCLUDE_DIRS CACHE )
set( CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH} )
find_package( MYSQL )
endif()
unset( MYSQL_LIBRARIES CACHE )
unset( MYSQL_INCLUDE_DIRS CACHE )
set( CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH} )
find_package( MYSQL )
set( MYSQL_SYSTEM_LIBRARIES "${MYSQL_LIBRARIES}"
CACHE PATH "system mysql libraries" )
set( MYSQL_SYSTEM_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}"

View File

@ -1,23 +1,29 @@
# - Find mysqlclient
# Find the native MySQL includes and library
#
# MYSQL_INCLUDE_DIR - where to find mysql.h, etc.
# MYSQL_LIBRARIES - List of libraries when using MySQL.
# MYSQL_FOUND - True if MySQL found.
# MYSQL_INCLUDE_DIRS - where to find mysql.h, etc.
# MYSQL_LIBRARIES - mysqlclient library.
# MYSQL_FOUND - True if mysqlclient is found.
#
# Based on: http://www.itk.org/Wiki/CMakeUserFindMySQL
find_path( MYSQL_INCLUDE_DIR "mysql.h"
PATH_SUFFIXES "mysql" )
find_path( MYSQL_INCLUDE_DIRS "mysql.h"
PATHS
"/usr/include/mysql"
"/usr/local/include/mysql"
"$ENV{PROGRAMFILES}/MySQL/*/include"
"$ENV{SYSTEMDRIVE}/MySQL/*/include" )
set( MYSQL_NAMES mysqlclient mysqlclient_r )
find_library( MYSQL_LIBRARY
NAMES ${MYSQL_NAMES}
PATH_SUFFIXES "mysql" )
mark_as_advanced( MYSQL_LIBRARY MYSQL_INCLUDE_DIR )
find_library( MYSQL_LIBRARIES
NAMES "mysqlclient" "mysqlclient_r"
PATHS
"/usr/lib/mysql"
"/usr/local/lib/mysql"
"$ENV{PROGRAMFILES}/MySQL/*/lib"
"$ENV{SYSTEMDRIVE}/MySQL/*/lib" )
mark_as_advanced( MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS )
if( MYSQL_INCLUDE_DIR AND EXISTS "${MYSQL_INCLUDE_DIR}/mysql_version.h" )
file( STRINGS "${MYSQL_INCLUDE_DIR}/mysql_version.h" MYSQL_VERSION_H REGEX "^#define[ \t]+MYSQL_SERVER_VERSION[ \t]+\"[^\"]+\".*$" )
if( MYSQL_INCLUDE_DIRS AND EXISTS "${MYSQL_INCLUDE_DIRS}/mysql_version.h" )
file( STRINGS "${MYSQL_INCLUDE_DIRS}/mysql_version.h" MYSQL_VERSION_H REGEX "^#define[ \t]+MYSQL_SERVER_VERSION[ \t]+\"[^\"]+\".*$" )
string( REGEX REPLACE "^.*MYSQL_SERVER_VERSION[ \t]+\"([^\"]+)\".*$" "\\1" MYSQL_VERSION_STRING "${MYSQL_VERSION_H}" )
endif()
@ -25,10 +31,5 @@ endif()
# all listed variables are TRUE
include( FindPackageHandleStandardArgs )
FIND_PACKAGE_HANDLE_STANDARD_ARGS( MYSQL
REQUIRED_VARS MYSQL_LIBRARY MYSQL_INCLUDE_DIR
REQUIRED_VARS MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS
VERSION_VAR MYSQL_VERSION_STRING )
if( MYSQL_FOUND )
set( MYSQL_LIBRARIES ${PCRE_LIBRARY} )
set( MYSQL_INCLUDE_DIRS ${PCRE_INCLUDE_DIR} )
endif()

View File

@ -47,6 +47,9 @@ endif()
message( STATUS "Detecting svnversion" )
find_program( SVNVERSION_EXECUTABLE svnversion )
mark_as_advanced( SVNVERSION_EXECUTABLE )
if( SVNVERSION_EXECUTABLE )
message( STATUS "Found svnversion: ${SVNVERSION_EXECUTABLE}" )
endif()
message( STATUS "Detecting svnversion - done" )
@ -58,6 +61,19 @@ find_package( Subversion )
message( STATUS "Detecting Subversion - done" )
#
# Find math library (FreeBSD)
#
message( STATUS "Detecting math library" )
find_library( M_LIBRARIES m )
mark_as_advanced( M_LIBRARIES )
if( M_LIBRARIES )
message( STATUS "Found m: ${M_LIBRARIES}" )
list( APPEND GLOBAL_LIBRARIES ${M_LIBRARIES} )
endif()
message( STATUS "Detecting math library - done" )
#
# PACKETVER
#
@ -93,7 +109,15 @@ set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "MMORPG server package" )
set( CPACK_PACKAGE_VERSION ${SVNVERSION} )
set( CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE )
#set( CPACK_MONOLITHIC_INSTALL ON )
include( CPACK )
include( CPACK OPTIONAL RESULT_VARIABLE HAVE_CPACK )
if( NOT HAVE_CPACK )
# empty replacements
macro( cpack_add_component_group )
endmacro()
macro( cpack_add_component )
endmacro()
message( STATUS "CPACK not found, package creation disabled" )
endif()
set( Runtime "Runtime files" CACHE INTERNAL "" )
set( Runtime_base "configurations, dbs, npcs, docs, ..." CACHE INTERNAL "" )
@ -111,10 +135,10 @@ cpack_add_component( Development_base DESCRIPTION ${Development_base} DISPLAY_NA
#
# install stuff
#
option( WITH_COMPONENT_RUNTIME "install files needed to run the project" ON )
option( WITH_COMPONENT_DEVELOPMENT "install files needed to build the project" OFF )
option( WITH_COMPONENT_RUNTIME "install/package files needed to run the project" ON )
option( WITH_COMPONENT_DEVELOPMENT "install/package files needed to build the project" OFF )
option( INSTALL_TO_PATH "copy files to INSTALL_PATH" OFF )
option( INSTALL_TO_SOURCE "copy files to source directory (${CMAKE_CURRENT_SOURCE_DIR})" OFF )
option( INSTALL_TO_SOURCE "copy files to source directory, skips what is already there (${CMAKE_CURRENT_SOURCE_DIR})" OFF )
option( INSTALL_TO_SUBDIR "copy files to subdirectory (${CMAKE_CURRENT_BINARY_DIR}/install)" OFF )
set( INSTALL_PATH "${CMAKE_INSTALL_PREFIX}" CACHE STRING "install path (only used when INSTALL_TO_PATH is set)" )
mark_as_advanced( CMAKE_INSTALL_PREFIX )

View File

@ -1,6 +1,7 @@
Date Added
2011/07/09
* CMake: added search for math library, made CPack existence optional, updated the search for mysqlclient and corrected misspelled variables (tested with FreeBSD-8.2-i386) [FlavioJS]
* Removed duplicate entries for Gunslinger and Ninja in msg_athena.conf (since r5506). [Ai4rei]
2011/07/07
* Replaced compress/uncompress inline code (encode_zip/decode_zip) with the respective zlib library calls while keeping 3rdparty calls inside common code (follow up to r14888, related r14808). [Ai4rei]

View File

@ -25,7 +25,7 @@ source_group( common FILES ${COMMON_HEADERS} ${COMMON_SOURCES} )
source_group( mapcache FILES ${MAPCACHE_SOURCES} )
add_executable( mapcache ${SOURCE_FILES} )
include_directories( ${INCLUDE_DIRS} )
target_link_libraries( mapcache ${ZLIB_LIBRARIES} )
target_link_libraries( mapcache ${LIBRARIES} )
set_target_properties( mapcache PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
if( WITH_COMPONENT_RUNTIME )
cpack_add_component( Runtime_mapcache DESCRIPTION "mapcache generator" DISPLAY_NAME "mapcache" GROUP Runtime )