Browse Source

* CMake: added search for math.h, added search for socket/nsl library. (tested with Solaris-201011-x86)
* Added missing include to socket.c.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14903 54d463be-8e91-2dee-dedb-b68131a5f0ec

flaviojs 14 years ago
parent
commit
13a4063735
5 changed files with 46 additions and 7 deletions
  1. 2 0
      3rdparty/cmake/FindMYSQL.cmake
  2. 3 2
      3rdparty/cmake/FindPCRE.cmake
  3. 36 5
      CMakeLists.txt
  4. 2 0
      Changelog-Trunk.txt
  5. 3 0
      src/common/socket.c

+ 2 - 0
3rdparty/cmake/FindMYSQL.cmake

@@ -10,6 +10,7 @@ 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" )
 
@@ -18,6 +19,7 @@ find_library( MYSQL_LIBRARIES
 	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 )

+ 3 - 2
3rdparty/cmake/FindPCRE.cmake

@@ -6,8 +6,9 @@
 #  PCRE_FOUND        - True if pcre found.
 
 
-find_path( PCRE_INCLUDE_DIR pcre.h )
-
+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 )

+ 36 - 5
CMakeLists.txt

@@ -40,11 +40,12 @@ elseif( "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}" )
 	message( FATAL_ERROR
 		"Do not use the source directory to build your files, instead delete CMakeCache.txt, create a separate folder and build there.\n"
 		"Example: (build in subdir 'build' and install to source dir)\n"
+		"  rm -f CMakeCache.txt\n"
 		"  mkdir build && cd build\n"
-		"  cmake -G\"Unix Makefiles\" -DINSTALL_TO_SOURCE:bool=ON ..\n"
+		"  cmake -G\"Unix Makefiles\" -DINSTALL_TO_SOURCE=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ..\n"
 		"  make install\n"
 		"  cd .. && rm -rf build\n"
-		"To skip this check, set ALLOW_SAME_DIRECTORY to ON (-DALLOW_SAME_DIRECTORY:bool=ON)" )
+		"To skip this check, set ALLOW_SAME_DIRECTORY to ON (-DALLOW_SAME_DIRECTORY=ON)" )
 endif()
 
 
@@ -96,17 +97,23 @@ endif()
 # SVNVERSION
 #
 if( SVNVERSION_EXECUTABLE )
+	message( STATUS "Getting svn version" )
 	execute_process( COMMAND ${SVNVERSION_EXECUTABLE} ${PROJECT_SOURCE_DIR}
 		OUTPUT_VARIABLE SVNVERSION
 		OUTPUT_STRIP_TRAILING_WHITESPACE )
 	string( REGEX REPLACE "[^1234567890MSexported]" "_" SVNVERSION ${SVNVERSION} )
+	message( STATUS "Found version: ${SVNVERSION}" )
+	message( STATUS "Getting svn version - done" )
 endif()
 if( Subversion_FOUND AND SVNVERSION )
+	message( STATUS "Getting svn branch" )
 	Subversion_WC_INFO( ${PROJECT_SOURCE_DIR} eAthena )
 	if( eAthena_WC_URL )
 		string( REGEX MATCH "[^/]+$" BRANCH ${eAthena_WC_URL} )
 		set( SVNVERSION "${BRANCH}-${SVNVERSION}" )
+		message( STATUS "Found branch: ${BRANCH}" )
 	endif()
+	message( STATUS "Getting svn branch - done" )
 endif()
 
 
@@ -115,15 +122,19 @@ endif()
 #
 add_subdirectory( 3rdparty )
 include( FindFunctionLibrary )
+include( CheckIncludeFile )
 
 
 #
-# math library (FreeBSD/Linux)
+# math library (FreeBSD/Linux/Solaris)
 #
 message( STATUS "Detecting m library (math)" )
+CHECK_INCLUDE_FILE( math.h HAVE_MATH_H )
+if( NOT HAVE_MATH_H )
+	message( FATAL_ERROR "math.h not found" )
+endif()
 set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
 find_function_library( floor FUNCTION_FLOOR_LIBRARIES m )
-mark_as_advanced( FUNCTION_FLOOR_LIBRARIES )
 if( FUNCTION_FLOOR_LIBRARIES )
 	message( STATUS "Adding global library: ${FUNCTION_FLOOR_LIBRARIES}" )
 	list( APPEND GLOBAL_LIBRARIES ${FUNCTION_FLOOR_LIBRARIES} )
@@ -138,7 +149,6 @@ if( NOT WIN32 )
 message( STATUS "Detecting dl library (dynamic loading)" )
 set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
 find_function_library( dlopen FUNCTION_DLOPEN_LIBRARIES dl )
-mark_as_advanced( FUNCTION_DLOPEN_LIBRARIES )
 if( FUNCTION_DLOPEN_LIBRARIES )
 	message( STATUS "Adding global library: ${FUNCTION_DLOPEN_LIBRARIES}" )
 	list( APPEND GLOBAL_LIBRARIES ${FUNCTION_DLOPEN_LIBRARIES} )
@@ -147,6 +157,27 @@ message( STATUS "Detecting dl library (dynamic loading) - done" )
 endif()
 
 
+#
+# socket/nsl library (Solaris)
+#
+if( NOT WIN32 )
+message( STATUS "Detecting socket/nsl library (networking)" )
+set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
+find_function_library( bind FUNCTION_BIND_LIBRARIES socket )
+if( FUNCTION_BIND_LIBRARIES )
+	message( STATUS "Adding global library: ${FUNCTION_BIND_LIBRARIES}" )
+	list( APPEND GLOBAL_LIBRARIES ${FUNCTION_BIND_LIBRARIES} )
+endif()
+set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
+find_function_library( gethostbyname FUNCTION_GETHOSTBYNAME_LIBRARIES nsl )
+if( FUNCTION_GETHOSTBYNAME_LIBRARIES )
+	message( STATUS "Adding global library: ${FUNCTION_GETHOSTBYNAME_LIBRARIES}" )
+	list( APPEND GLOBAL_LIBRARIES ${FUNCTION_GETHOSTBYNAME_LIBRARIES} )
+endif()
+message( STATUS "Detecting socket/nsl library (networking) - done" )
+endif()
+
+
 #####################################################################
 # package stuff
 #

+ 2 - 0
Changelog-Trunk.txt

@@ -2,6 +2,8 @@ Date	Added
 
 2011/07/12
 	* CMake: set project language to C, added module FindFunctionLibrary, added search for dl library. (tested with debian-wheezy-i386) [FlavioJS]
+	* CMake: added search for math.h, added search for socket/nsl library. (tested with Solaris-201011-x86)
+	* Added missing include to socket.c.
 2011/07/11
 	* Rev. 14901 Added bonus3 bAddClassDropItem, care of Epoque. [L0ne_W0lf]
 2011/07/10

+ 3 - 0
src/common/socket.c

@@ -32,6 +32,9 @@
 	#ifndef SIOCGIFCONF
 	#include <sys/sockio.h> // SIOCGIFCONF on Solaris, maybe others? [Shinomori]
 	#endif
+	#ifndef FIONBIO
+	#include <sys/filio.h> // FIONBIO on Solaris [FlavioJS]
+	#endif
 
 	#ifdef HAVE_SETRLIMIT
 	#include <sys/resource.h>