summaryrefslogtreecommitdiff
path: root/3rdparty/cmake
diff options
context:
space:
mode:
authorTrojal <trojal@gmail.com>2013-01-10 20:09:39 -0800
committerTrojal <trojal@gmail.com>2013-01-10 20:32:02 -0800
commit83e7a4954437c13aec639b0b512252cc20a8f36c (patch)
treeb7f6d11b2058248d026f2d9944e8f4b6ac288d50 /3rdparty/cmake
parent51bfeb38eb139e97e0e1c096c85c15fba234f35b (diff)
parent38e583df21eccd9e4f31d38acaae32579c6f0d27 (diff)
downloadhercules-83e7a4954437c13aec639b0b512252cc20a8f36c.tar.gz
hercules-83e7a4954437c13aec639b0b512252cc20a8f36c.tar.bz2
hercules-83e7a4954437c13aec639b0b512252cc20a8f36c.tar.xz
hercules-83e7a4954437c13aec639b0b512252cc20a8f36c.zip
Merge rathena repository to form Hercules initial commit.
Diffstat (limited to '3rdparty/cmake')
-rw-r--r--3rdparty/cmake/FindFunctionLibrary.cmake47
-rw-r--r--3rdparty/cmake/FindMYSQL.cmake37
-rw-r--r--3rdparty/cmake/FindPCRE.cmake36
-rw-r--r--3rdparty/cmake/tests/HAVE_MONOTONIC_CLOCK.c8
4 files changed, 128 insertions, 0 deletions
diff --git a/3rdparty/cmake/FindFunctionLibrary.cmake b/3rdparty/cmake/FindFunctionLibrary.cmake
new file mode 100644
index 000000000..f1d32001e
--- /dev/null
+++ b/3rdparty/cmake/FindFunctionLibrary.cmake
@@ -0,0 +1,47 @@
+# - Check which library is needed to link a C function
+# find_function_library( <function> <variable> [<library> ...] )
+#
+# Check which library provides the <function>.
+# Sets <variable> to 0 if found in the global libraries.
+# Sets <variable> to the library path if found in the provided libraries.
+# Raises a FATAL_ERROR if not found.
+#
+# The following variables may be set before calling this macro to
+# modify the way the check is run:
+#
+# CMAKE_REQUIRED_FLAGS = string of compile command line flags
+# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+# CMAKE_REQUIRED_INCLUDES = list of include directories
+# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+include( CheckFunctionExists )
+
+macro( find_function_library FUNC VAR )
+ if( "${VAR}" MATCHES "^${VAR}$" )
+ CHECK_FUNCTION_EXISTS( ${FUNC} ${VAR} )
+ if( ${VAR} )
+ message( STATUS "Found ${FUNC} in global libraries" )
+ set( ${VAR} 0 CACHE INTERNAL "Found ${FUNC} in global libraries" )# global
+ else()
+ foreach( LIB IN ITEMS ${ARGN} )
+ message( STATUS "Looking for ${FUNC} in ${LIB}" )
+ find_library( ${LIB}_LIBRARY ${LIB} )
+ mark_as_advanced( ${LIB}_LIBRARY )
+ if( ${LIB}_LIBRARY )
+ unset( ${VAR} CACHE )
+ set( CMAKE_REQUIRED_LIBRARIES ${${LIB}_LIBRARY} )
+ CHECK_FUNCTION_EXISTS( ${FUNC} ${VAR} )
+ set( CMAKE_REQUIRED_LIBRARIES )
+ if( ${VAR} )
+ message( STATUS "Found ${FUNC} in ${LIB}: ${${LIB}_LIBRARY}" )
+ set( ${VAR} ${${LIB}_LIBRARY} CACHE INTERNAL "Found ${FUNC} in ${LIB}" )# lib
+ break()
+ endif()
+ endif()
+ endforeach()
+ if( NOT ${VAR} )
+ message( FATAL_ERROR "Function ${FUNC} not found" )
+ endif()
+ endif()
+ endif()
+endmacro( find_function_library )
+
diff --git a/3rdparty/cmake/FindMYSQL.cmake b/3rdparty/cmake/FindMYSQL.cmake
new file mode 100644
index 000000000..9da72073a
--- /dev/null
+++ b/3rdparty/cmake/FindMYSQL.cmake
@@ -0,0 +1,37 @@
+# - Find libmysql/mysqlclient
+# Find the native MySQL includes and library
+#
+# MYSQL_INCLUDE_DIRS - where to find mysql.h, etc.
+# MYSQL_LIBRARIES - mysqlclient library.
+# MYSQL_FOUND - True if mysqlclient is found.
+#
+
+find_path( MYSQL_INCLUDE_DIRS "mysql.h"
+ PATHS
+ "/usr/include/mysql"
+ "/usr/local/include/mysql"
+ "/usr/mysql/include/mysql"
+ "$ENV{PROGRAMFILES}/MySQL/*/include"
+ "$ENV{SYSTEMDRIVE}/MySQL/*/include" )
+
+find_library( MYSQL_LIBRARIES
+ NAMES "libmysql" "mysqlclient" "mysqlclient_r"
+ PATHS
+ "/usr/lib/mysql"
+ "/usr/local/lib/mysql"
+ "/usr/mysql/lib/mysql"
+ "$ENV{PROGRAMFILES}/MySQL/*/lib"
+ "$ENV{SYSTEMDRIVE}/MySQL/*/lib" )
+mark_as_advanced( MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS )
+
+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()
+
+# handle the QUIETLY and REQUIRED arguments and set MYSQL_FOUND to TRUE if
+# all listed variables are TRUE
+include( FindPackageHandleStandardArgs )
+FIND_PACKAGE_HANDLE_STANDARD_ARGS( MYSQL
+ REQUIRED_VARS MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS
+ VERSION_VAR MYSQL_VERSION_STRING )
diff --git a/3rdparty/cmake/FindPCRE.cmake b/3rdparty/cmake/FindPCRE.cmake
new file mode 100644
index 000000000..2215451d1
--- /dev/null
+++ b/3rdparty/cmake/FindPCRE.cmake
@@ -0,0 +1,36 @@
+# - Find pcre
+# Find the native PCRE includes and library
+#
+# PCRE_INCLUDE_DIRS - where to find pcre.h
+# PCRE_LIBRARIES - List of libraries when using pcre.
+# PCRE_FOUND - True if pcre found.
+
+
+find_path( PCRE_INCLUDE_DIR pcre.h
+ PATHS
+ "/usr/include/pcre" )
+set( PCRE_NAMES pcre )
+find_library( PCRE_LIBRARY NAMES ${PCRE_NAMES} )
+mark_as_advanced( PCRE_LIBRARY PCRE_INCLUDE_DIR )
+
+if( PCRE_INCLUDE_DIR AND EXISTS "${PCRE_INCLUDE_DIR}/pcre.h" )
+ file( STRINGS "${PCRE_INCLUDE_DIR}/pcre.h" PCRE_H REGEX "^#define[ \t]+PCRE_M[A-Z]+[ \t]+[0-9]+.*$" )
+ string( REGEX REPLACE "^.*PCRE_MAJOR[ \t]+([0-9]+).*$" "\\1" PCRE_MAJOR "${PCRE_H}" )
+ string( REGEX REPLACE "^.*PCRE_MINOR[ \t]+([0-9]+).*$" "\\1" PCRE_MINOR "${PCRE_H}" )
+
+ set( PCRE_VERSION_STRING "${PCRE_MAJOR}.${PCRE_MINOR}" )
+ set( PCRE_VERSION_MAJOR "${PCRE_MAJOR}" )
+ set( PCRE_VERSION_MINOR "${PCRE_MINOR}" )
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if
+# all listed variables are TRUE
+include( FindPackageHandleStandardArgs )
+FIND_PACKAGE_HANDLE_STANDARD_ARGS( PCRE
+ REQUIRED_VARS PCRE_LIBRARY PCRE_INCLUDE_DIR
+ VERSION_VAR PCRE_VERSION_STRING )
+
+if( PCRE_FOUND )
+ set( PCRE_LIBRARIES ${PCRE_LIBRARY} )
+ set( PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR} )
+endif()
diff --git a/3rdparty/cmake/tests/HAVE_MONOTONIC_CLOCK.c b/3rdparty/cmake/tests/HAVE_MONOTONIC_CLOCK.c
new file mode 100644
index 000000000..ad460a1af
--- /dev/null
+++ b/3rdparty/cmake/tests/HAVE_MONOTONIC_CLOCK.c
@@ -0,0 +1,8 @@
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+int main(int argc, char** argv)
+{
+ struct timespec tval;
+ return clock_gettime(CLOCK_MONOTONIC, &tval);
+}