First version of the cmake build system. Seems to be more portable and
easy to work with in non-POSIX enviroments than autotools. Still need to add installation support for the targets (so you can use "make install") and using sed to generate the config files. Usage: - autogen/configure become: "cmake /path/to/pvpgnsource"; only tested in the current directory so far, so "cmake ."; out of source builds should work too in theory - make becomes: make (suprise!) Will update docs with more instructions if we will use it after all.
This commit is contained in:
parent
9e93df6dda
commit
0d0b10c552
21 changed files with 601 additions and 0 deletions
pvpgn
CMakeLists.txtConfigureChecks.cmake
cmake/Modules
CheckIncludeFilesCXX.cmakeCheckMkdirArgs.cmakeCheckTypeSizeCXX.cmakeCheckTypeSizeCXX.cxx.inFindMySQL.cmakeFindSQLite3.cmake
src
14
pvpgn/CMakeLists.txt
Normal file
14
pvpgn/CMakeLists.txt
Normal file
|
@ -0,0 +1,14 @@
|
|||
project(pvpgn)
|
||||
|
||||
option(WITH_BNETD "compile the bnetd target" ON)
|
||||
option(WITH_D2CS "compile the d2cs target" ON)
|
||||
option(WITH_D2DBS "compile the d2dbs target" ON)
|
||||
option(WITH_ANSI "enforce strict ISO C++ conforming" ON)
|
||||
|
||||
#storage backends flags
|
||||
option(WITH_MYSQL "include MySQL user accounts support" OFF)
|
||||
option(WITH_SQLITE3 "include SQLite3 user accounts support" OFF)
|
||||
|
||||
include(ConfigureChecks.cmake)
|
||||
|
||||
add_subdirectory(src)
|
142
pvpgn/ConfigureChecks.cmake
Normal file
142
pvpgn/ConfigureChecks.cmake
Normal file
|
@ -0,0 +1,142 @@
|
|||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_SOURCE_DIR}/cmake/Modules
|
||||
)
|
||||
|
||||
include(CheckIncludeFileCXX)
|
||||
include(CheckIncludeFilesCXX)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckLibraryExists)
|
||||
include(CheckTypeSizeCXX)
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
check_include_files_cxx("cassert;cctype;cerrno;cmath;climits;csignal;cstdarg;cstddef;cstdio;cstdlib;cstring;ctime;deque;exception;fstream;iomanip;iostream;limits;list;map;memory;sstream;stdexcept;string;utility;vector" HAVE_STD_HEADERS)
|
||||
if(NOT HAVE_STD_HEADERS)
|
||||
MESSAGE(FATAL_ERROR "Standard C90/C++98 header missing, you need a fully standard compliant compiler/enviroment.")
|
||||
endif(NOT HAVE_STD_HEADERS)
|
||||
|
||||
check_include_file_cxx(fcntl.h HAVE_FCNTL_H)
|
||||
check_include_file_cxx(sys/time.h HAVE_SYS_TIME_H)
|
||||
check_include_file_cxx(sys/select.h HAVE_SYS_SELECT_H)
|
||||
check_include_file_cxx(unistd.h HAVE_UNISTD_H)
|
||||
check_include_file_cxx(sys/utsname.h HAVE_SYS_UTSNAME_H)
|
||||
check_include_file_cxx(sys/timeb.h HAVE_SYS_TIMEB_H)
|
||||
check_include_file_cxx(sys/socket.h HAVE_SYS_SOCKET_H)
|
||||
check_include_file_cxx(sys/param.h HAVE_SYS_PARAM_H)
|
||||
check_include_file_cxx(netinet/in.h HAVE_NETINET_IN_H)
|
||||
check_include_file_cxx(arpa/inet.h HAVE_ARPA_INET_H)
|
||||
check_include_file_cxx(netdb.h HAVE_NETDB_H)
|
||||
check_include_file_cxx(termios.h HAVE_TERMIOS_H)
|
||||
check_include_file_cxx(sys/types.h HAVE_SYS_TYPES_H)
|
||||
check_include_file_cxx(sys/wait.h HAVE_SYS_WAIT_H)
|
||||
check_include_file_cxx(sys/ioctl.h HAVE_SYS_IOCTL_H)
|
||||
check_include_file_cxx(stdint.h HAVE_STDINT_H)
|
||||
check_include_file_cxx(sys/file.h HAVE_SYS_FILE_H)
|
||||
check_include_file_cxx(poll.h HAVE_POLL_H)
|
||||
check_include_file_cxx(sys/poll.h HAVE_SYS_POLL_H)
|
||||
check_include_file_cxx(sys/stropts.h HAVE_SYS_STROPTS_H)
|
||||
check_include_file_cxx(sys/stat.h HAVE_SYS_STAT_H)
|
||||
check_include_file_cxx(pwd.h HAVE_PWD_H)
|
||||
check_include_file_cxx(grp.h HAVE_GRP_H)
|
||||
check_include_file_cxx(dir.h HAVE_DIR_H)
|
||||
check_include_file_cxx(dirent.h HAVE_DIRENT_H)
|
||||
check_include_file_cxx(ndir.h HAVE_NDIR_H)
|
||||
check_include_file_cxx(sys/ndir.h HAVE_SYS_NDIR_H)
|
||||
check_include_file_cxx(sys/dir.h HAVE_SYS_DIR_H)
|
||||
check_include_file_cxx(direct.h HAVE_DIRECT_H)
|
||||
check_include_file_cxx(sys/mman.h HAVE_SYS_MMAN_H)
|
||||
check_include_file_cxx(sys/event.h HAVE_SYS_EVENT_H)
|
||||
check_include_file_cxx(sys/epoll.h HAVE_SYS_EPOLL_H)
|
||||
check_include_file_cxx(sys/resource.h HAVE_SYS_RESOURCE_H)
|
||||
check_include_file_cxx(sqlite3.h HAVE_SQLITE3_H)
|
||||
check_include_file_cxx(pcap.h HAVE_PCAP_H)
|
||||
|
||||
check_type_size_cxx("unsigned char" SIZEOF_UNSIGNED_CHAR)
|
||||
check_type_size_cxx("unsigned short" SIZEOF_UNSIGNED_SHORT)
|
||||
check_type_size_cxx("unsigned int" SIZEOF_UNSIGNED_INT)
|
||||
check_type_size_cxx("unsigned long" SIZEOF_UNSIGNED_LONG)
|
||||
check_type_size_cxx("unsigned long long" SIZEOF_UNSIGNED_LONG_LONG)
|
||||
check_type_size_cxx("signed char" SIZEOF_SIGNED_CHAR)
|
||||
check_type_size_cxx("signed short" SIZEOF_SIGNED_SHORT)
|
||||
check_type_size_cxx("signed int" SIZEOF_SIGNED_INT)
|
||||
check_type_size_cxx("signed long" SIZEOF_SIGNED_LONG)
|
||||
check_type_size_cxx("signed long long" SIZEOF_SIGNED_LONG_LONG)
|
||||
|
||||
check_function_exists(mmap HAVE_MMAP)
|
||||
check_function_exists(gethostname HAVE_GETHOSTNAME)
|
||||
check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
|
||||
check_function_exists(select HAVE_SELECT)
|
||||
check_function_exists(socket HAVE_SOCKET)
|
||||
check_function_exists(strdup HAVE_STRDUP)
|
||||
check_function_exists(strtoul HAVE_STRTOUL)
|
||||
check_function_exists(inet_aton HAVE_INET_ATON)
|
||||
check_function_exists(inet_ntoa HAVE_INET_NTOA)
|
||||
check_function_exists(uname HAVE_UNAME)
|
||||
check_function_exists(recv HAVE_RECV)
|
||||
check_function_exists(send HAVE_SEND)
|
||||
check_function_exists(recvfrom HAVE_RECVFROM)
|
||||
check_function_exists(sendto HAVE_SENDTO)
|
||||
check_function_exists(uname HAVE_UNAME)
|
||||
check_function_exists(fork HAVE_FORK)
|
||||
check_function_exists(getpid HAVE_GETPID)
|
||||
check_function_exists(sigaction HAVE_SIGACTION)
|
||||
check_function_exists(sigprocmask HAVE_SIGPROCMASK)
|
||||
check_function_exists(sigaddset HAVE_SIGADDSET)
|
||||
check_function_exists(setpgid HAVE_SETPGID)
|
||||
check_function_exists(ftime HAVE_FTIME)
|
||||
check_function_exists(strcasecmp HAVE_STRCASECMP)
|
||||
check_function_exists(strncasecmp HAVE_STRNCASECMP)
|
||||
check_function_exists(stricmp HAVE_STRICMP)
|
||||
check_function_exists(strnicmp HAVE_STRNICMP)
|
||||
check_function_exists(chdir HAVE_CHDIR)
|
||||
check_function_exists(difftime HAVE_DIFFTIME)
|
||||
check_function_exists(strchr HAVE_STRCHR)
|
||||
check_function_exists(strrchr HAVE_STRRCHR)
|
||||
check_function_exists(index HAVE_INDEX)
|
||||
check_function_exists(rindex HAVE_RINDEX)
|
||||
check_function_exists(wait HAVE_WAIT)
|
||||
check_function_exists(waitpid HAVE_WAITPID)
|
||||
check_function_exists(pipe HAVE_PIPE)
|
||||
check_function_exists(getenv HAVE_GETENV)
|
||||
check_function_exists(ioctl HAVE_IOCTL)
|
||||
check_function_exists(setsid HAVE_SETSID)
|
||||
check_function_exists(poll HAVE_POLL)
|
||||
check_function_exists(gethostbyname HAVE_GETHOSTBYNAME)
|
||||
check_function_exists(getservbyname HAVE_GETSERVBYNAME)
|
||||
check_function_exists(getlogin HAVE_GETLOGIN)
|
||||
check_function_exists(getpwnam HAVE_GETPWNAME)
|
||||
check_function_exists(getgrnam HAVE_GETGRNAM)
|
||||
check_function_exists(getuid HAVE_GETUID)
|
||||
check_function_exists(getgid HAVE_GETGID)
|
||||
check_function_exists(setuid HAVE_SETUID)
|
||||
check_function_exists(mkdir HAVE_MKDIR)
|
||||
check_function_exists(_mkdir HAVE__MKDIR)
|
||||
check_function_exists(strsep HAVE_STRSEP)
|
||||
check_function_exists(getopt HAVE_GETOPT)
|
||||
check_function_exists(kqueue HAVE_KQUEUE)
|
||||
check_function_exists(setitimer HAVE_SETITIMER)
|
||||
check_function_exists(epoll_create HAVE_EPOLL_CREATE)
|
||||
check_function_exists(getrlimit HAVE_GETRLIMIT)
|
||||
check_function_exists(vsnprintf HAVE_VSNPRINTF)
|
||||
check_function_exists(_vsnprintf HAVE__VSNPRINTF)
|
||||
check_function_exists(snprintf HAVE_SNPRINTF)
|
||||
check_function_exists(_snprintf HAVE__SNPRINTF)
|
||||
check_function_exists(setpgrp HAVE_SETPGRP)
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
check_library_exists(pcap pcap_open_offline "" HAVE_LIBPCAP)
|
||||
|
||||
#storage module checks
|
||||
if(WITH_MYSQL)
|
||||
find_package(MySQL REQUIRED)
|
||||
endif(WITH_MYSQL)
|
||||
if(WITH_SQLITE3)
|
||||
find_package(SQLite3 REQUIRED)
|
||||
endif(WITH_SQLITE3)
|
||||
|
||||
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||
|
||||
check_cxx_compiler_flag("-Wall" WITH_FLAG_WALL)
|
||||
|
||||
if(WITH_ANSI)
|
||||
check_cxx_compiler_flag("-pedantic -ansi" WITH_FLAG_ANSIPEDANTIC)
|
||||
endif(WITH_ANSI)
|
59
pvpgn/cmake/Modules/CheckIncludeFilesCXX.cmake
Normal file
59
pvpgn/cmake/Modules/CheckIncludeFilesCXX.cmake
Normal file
|
@ -0,0 +1,59 @@
|
|||
# - Check if the files can be included
|
||||
#
|
||||
# CHECK_INCLUDE_FILES_CXX(INCLUDE VARIABLE)
|
||||
#
|
||||
# INCLUDE - list of files to include
|
||||
# VARIABLE - variable to return result
|
||||
#
|
||||
# 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
|
||||
|
||||
MACRO(CHECK_INCLUDE_FILES_CXX INCLUDE VARIABLE)
|
||||
IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_INCLUDE_FILES_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_INCLUDE_FILES_CXX_INCLUDE_DIRS)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_INCLUDE_FILES_CXX_CONTENT "/* */\n")
|
||||
SET(MACRO_CHECK_INCLUDE_FILES_CXX_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
FOREACH(FILE ${INCLUDE})
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n")
|
||||
ENDFOREACH(FILE)
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}\n\nint main(){return 0;}\n")
|
||||
CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.cxx" @ONLY IMMEDIATE)
|
||||
|
||||
MESSAGE(STATUS "Looking for include files ${VARIABLE}")
|
||||
TRY_COMPILE(${VARIABLE}
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.cxx
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILES_CXX_FLAGS}
|
||||
"${CHECK_INCLUDE_FILES_CXX_INCLUDE_DIRS}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
IF(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for include files ${VARIABLE} - found")
|
||||
SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${VARIABLE}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if files ${INCLUDE} "
|
||||
"exist passed with the following output:\n"
|
||||
"${OUTPUT}\n\n")
|
||||
ELSE(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for include files ${VARIABLE} - not found.")
|
||||
SET(${VARIABLE} "" CACHE INTERNAL "Have includes ${VARIABLE}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if files ${INCLUDE} "
|
||||
"exist failed with the following output:\n"
|
||||
"${OUTPUT}\nSource:\n${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
|
||||
ENDIF(${VARIABLE})
|
||||
ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$")
|
||||
ENDMACRO(CHECK_INCLUDE_FILES_CXX)
|
58
pvpgn/cmake/Modules/CheckMkdirArgs.cmake
Normal file
58
pvpgn/cmake/Modules/CheckMkdirArgs.cmake
Normal file
|
@ -0,0 +1,58 @@
|
|||
# - Check if the files can be included
|
||||
#
|
||||
# CHECK_MKDIR_ARGS(VARIABLE)
|
||||
#
|
||||
# VARIABLE - variable to return if mkdir/_mkdir need a single argument
|
||||
#
|
||||
# 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
|
||||
|
||||
MACRO(CHECK_MKDIR_ARGS INCLUDE VARIABLE)
|
||||
IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_INCLUDE_FILES_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_INCLUDE_FILES_CXX_INCLUDE_DIRS)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_INCLUDE_FILES_CXX_CONTENT "/* */\n")
|
||||
SET(MACRO_CHECK_INCLUDE_FILES_CXX_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
FOREACH(FILE ${INCLUDE})
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n")
|
||||
ENDFOREACH(FILE)
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}\n\nint main(){return 0;}\n")
|
||||
CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.cxx" @ONLY IMMEDIATE)
|
||||
|
||||
MESSAGE(STATUS "Looking for include files ${VARIABLE}")
|
||||
TRY_COMPILE(${VARIABLE}
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.cxx
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILES_CXX_FLAGS}
|
||||
"${CHECK_INCLUDE_FILES_CXX_INCLUDE_DIRS}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
IF(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for include files ${VARIABLE} - found")
|
||||
SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${VARIABLE}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if files ${INCLUDE} "
|
||||
"exist passed with the following output:\n"
|
||||
"${OUTPUT}\n\n")
|
||||
ELSE(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for include files ${VARIABLE} - not found.")
|
||||
SET(${VARIABLE} "" CACHE INTERNAL "Have includes ${VARIABLE}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if files ${INCLUDE} "
|
||||
"exist failed with the following output:\n"
|
||||
"${OUTPUT}\nSource:\n${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
|
||||
ENDIF(${VARIABLE})
|
||||
ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$")
|
||||
ENDMACRO(CHECK_INCLUDE_FILES_CXX)
|
68
pvpgn/cmake/Modules/CheckTypeSizeCXX.cmake
Normal file
68
pvpgn/cmake/Modules/CheckTypeSizeCXX.cmake
Normal file
|
@ -0,0 +1,68 @@
|
|||
# - Check sizeof a type
|
||||
# CHECK_TYPE_SIZE_CXX(TYPE VARIABLE)
|
||||
# Check if the type exists and determine size of type. if the type
|
||||
# exists, the size will be stored to the variable.
|
||||
# VARIABLE - variable to store size if the type exists.
|
||||
# HAVE_${VARIABLE} - does the variable exists or not
|
||||
# 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
|
||||
|
||||
MACRO(CHECK_TYPE_SIZE_CXX TYPE VARIABLE)
|
||||
SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1)
|
||||
IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
|
||||
SET(CHECK_TYPE_SIZE_CXX_TYPE "${TYPE}")
|
||||
SET(MACRO_CHECK_TYPE_CXX_SIZE_FLAGS
|
||||
"${CMAKE_REQUIRED_FLAGS}")
|
||||
FOREACH(def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H)
|
||||
IF("${def}")
|
||||
SET(MACRO_CHECK_TYPE_SIZE_CXX_FLAGS
|
||||
"${MACRO_CHECK_TYPE_SIZE_CXX_FLAGS} -D${def}")
|
||||
ENDIF("${def}")
|
||||
ENDFOREACH(def)
|
||||
SET(CHECK_TYPE_SIZE_CXX_PREINCLUDE)
|
||||
SET(CHECK_TYPE_SIZE_CXX_PREMAIN)
|
||||
FOREACH(def ${CMAKE_EXTRA_INCLUDE_FILES})
|
||||
SET(CHECK_TYPE_SIZE_CXX_PREMAIN "${CHECK_TYPE_SIZE_CXX_PREMAIN}#include \"${def}\"\n")
|
||||
ENDFOREACH(def)
|
||||
CONFIGURE_FILE("${CMAKE_MODULE_PATH}/CheckTypeSizeCXX.cxx.in"
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSizeCXX.cxx" IMMEDIATE @ONLY)
|
||||
FILE(READ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSizeCXX.cxx"
|
||||
CHECK_TYPE_SIZE_CXX_FILE_CONTENT)
|
||||
MESSAGE(STATUS "Check size of ${TYPE}")
|
||||
IF(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_TYPE_SIZE_CXX_ADD_LIBRARIES
|
||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
|
||||
ELSE(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_TYPE_SIZE_CXX_ADD_LIBRARIES)
|
||||
ENDIF(CMAKE_REQUIRED_LIBRARIES)
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_TYPE_SIZE_CXX_ADD_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_TYPE_SIZE_CXX_ADD_INCLUDES)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
|
||||
${CMAKE_BINARY_DIR}
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSizeCXX.cxx"
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_CXX_FLAGS}
|
||||
"${CHECK_TYPE_SIZE_CXX_ADD_LIBRARIES}"
|
||||
"${CHECK_TYPE_SIZE_CXX_ADD_INCLUDES}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
IF(HAVE_${VARIABLE})
|
||||
MESSAGE(STATUS "Check size of ${TYPE} - done")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n")
|
||||
ELSE(HAVE_${VARIABLE})
|
||||
MESSAGE(STATUS "Check size of ${TYPE} - failed")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSizeCXX.cxx:\n${CHECK_TYPE_SIZE_CXX_FILE_CONTENT}\n\n")
|
||||
ENDIF(HAVE_${VARIABLE})
|
||||
ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
|
||||
SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS )
|
||||
ENDMACRO(CHECK_TYPE_SIZE_CXX)
|
28
pvpgn/cmake/Modules/CheckTypeSizeCXX.cxx.in
Normal file
28
pvpgn/cmake/Modules/CheckTypeSizeCXX.cxx.in
Normal file
|
@ -0,0 +1,28 @@
|
|||
#cmakedefine CHECK_TYPE_SIZE_CXX_TYPE @CHECK_TYPE_SIZE_CXX_TYPE@
|
||||
#ifdef CHECK_TYPE_SIZE_CXX_TYPE
|
||||
|
||||
@CHECK_TYPE_SIZE_CXX_PREINCLUDE@
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif /* HAVE_SYS_TYPES_H */
|
||||
|
||||
#ifdef HAVE_STDINT_H
|
||||
# include <stdint.h>
|
||||
#endif /* HAVE_STDINT_H */
|
||||
|
||||
#ifdef HAVE_STDDEF_H
|
||||
# include <stddef.h>
|
||||
#endif /* HAVE_STDDEF_H */
|
||||
|
||||
@CHECK_TYPE_SIZE_CXX_PREMAIN@
|
||||
|
||||
int main(int ac, char*av[]){
|
||||
if(ac > 1000){return *av[0];}
|
||||
return sizeof(CHECK_TYPE_SIZE_CXX_TYPE);
|
||||
}
|
||||
|
||||
#else /* CHECK_TYPE_SIZE_CXX_TYPE */
|
||||
|
||||
# error "CHECK_TYPE_SIZE_CXX_TYPE has to specify the type"
|
||||
|
||||
#endif /* CHECK_TYPE_SIZE_CXX_TYPE */
|
50
pvpgn/cmake/Modules/FindMySQL.cmake
Normal file
50
pvpgn/cmake/Modules/FindMySQL.cmake
Normal file
|
@ -0,0 +1,50 @@
|
|||
# - 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.
|
||||
|
||||
IF (MYSQL_INCLUDE_DIR)
|
||||
# Already in cache, be silent
|
||||
SET(MYSQL_FIND_QUIETLY TRUE)
|
||||
ENDIF (MYSQL_INCLUDE_DIR)
|
||||
|
||||
FIND_PATH(MYSQL_INCLUDE_DIR mysql.h
|
||||
/usr/local/mysql/include
|
||||
/usr/local/include/mysql
|
||||
/usr/local/include
|
||||
/usr/include/mysql
|
||||
/usr/include
|
||||
/usr/mysql/include
|
||||
)
|
||||
|
||||
SET(MYSQL_NAMES mysqlclient mysqlclient_r)
|
||||
FIND_LIBRARY(MYSQL_LIBRARY
|
||||
NAMES ${MYSQL_NAMES}
|
||||
PATHS /usr/local/mysql/lib /usr/local/lib /usr/lib
|
||||
)
|
||||
|
||||
IF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
||||
SET(MYSQL_FOUND TRUE)
|
||||
SET( MYSQL_LIBRARIES ${MYSQL_LIBRARY} )
|
||||
ELSE (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
||||
SET(MYSQL_FOUND FALSE)
|
||||
SET( MYSQL_LIBRARIES )
|
||||
ENDIF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
||||
|
||||
IF (MYSQL_FOUND)
|
||||
IF (NOT MYSQL_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found MySQL: ${MYSQL_LIBRARY}")
|
||||
ENDIF (NOT MYSQL_FIND_QUIETLY)
|
||||
ELSE (MYSQL_FOUND)
|
||||
IF (MYSQL_FIND_REQUIRED)
|
||||
MESSAGE(STATUS "Looked for MySQL libraries named ${MYSQL_NAMES}.")
|
||||
MESSAGE(FATAL_ERROR "Could NOT find MySQL library")
|
||||
ENDIF (MYSQL_FIND_REQUIRED)
|
||||
ENDIF (MYSQL_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
MYSQL_LIBRARY
|
||||
MYSQL_INCLUDE_DIR
|
||||
)
|
48
pvpgn/cmake/Modules/FindSQLite3.cmake
Normal file
48
pvpgn/cmake/Modules/FindSQLite3.cmake
Normal file
|
@ -0,0 +1,48 @@
|
|||
# - Find sqlite3
|
||||
# Find the native SQLite3 includes and library
|
||||
#
|
||||
# SQLITE3_INCLUDE_DIR - where to find sqlite3.h
|
||||
# SQLITE3_LIBRARIES - List of libraries when using SQLite3.
|
||||
# SQLITE3_FOUND - True if SQLite3 found.
|
||||
|
||||
IF (SQLITE3_INCLUDE_DIR)
|
||||
# Already in cache, be silent
|
||||
SET(SQLITE3_FIND_QUIETLY TRUE)
|
||||
ENDIF (SQLITE3_INCLUDE_DIR)
|
||||
|
||||
FIND_PATH(SQLITE3_INCLUDE_DIR sqlite3.h
|
||||
/usr/local/include/sqlite3
|
||||
/usr/local/include
|
||||
/usr/include/sqlite3
|
||||
/usr/include
|
||||
)
|
||||
|
||||
SET(SQLITE3_NAMES sqlite3)
|
||||
FIND_LIBRARY(SQLITE3_LIBRARY
|
||||
NAMES ${SQLITE3_NAMES}
|
||||
PATHS /usr/local/lib /usr/lib
|
||||
)
|
||||
|
||||
IF (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY)
|
||||
SET(SQLITE3_FOUND TRUE)
|
||||
SET( SQLITE3_LIBRARIES ${SQLITE3_LIBRARY} )
|
||||
ELSE (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY)
|
||||
SET(SQLITE3_FOUND FALSE)
|
||||
SET( SQLITE3_LIBRARIES )
|
||||
ENDIF (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY)
|
||||
|
||||
IF (SQLITE3_FOUND)
|
||||
IF (NOT SQLITE3_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found SQLite3: ${SQLITE3_LIBRARY}")
|
||||
ENDIF (NOT SQLITE3_FIND_QUIETLY)
|
||||
ELSE (SQLITE3_FOUND)
|
||||
IF (SQLITE3_FIND_REQUIRED)
|
||||
MESSAGE(STATUS "Looked for SQLite3 libraries named ${SQLITE3_NAMES}.")
|
||||
MESSAGE(FATAL_ERROR "Could NOT find SQLite3 library")
|
||||
ENDIF (SQLITE3_FIND_REQUIRED)
|
||||
ENDIF (SQLITE3_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
SQLITE3_LIBRARY
|
||||
SQLITE3_INCLUDE_DIR
|
||||
)
|
57
pvpgn/src/CMakeLists.txt
Normal file
57
pvpgn/src/CMakeLists.txt
Normal file
|
@ -0,0 +1,57 @@
|
|||
#first setup the includes and link paths
|
||||
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src)
|
||||
|
||||
if(MYSQL_INCLUDE_DIR)
|
||||
include_directories(${MYSQL_INCLUDE_DIR})
|
||||
endif(MYSQL_INCLUDE_DIR)
|
||||
if(SQLITE3_INCLUDE_DIR)
|
||||
include_directories(${SQLITE3_INCLUDE_DIR})
|
||||
endif(SQLITE3_INCLUDE_DIR)
|
||||
|
||||
link_directories(${CMAKE_BINARY_DIR}/src/common
|
||||
${CMAKE_BINARY_DIR}/src/compat
|
||||
${CMAKE_BINARY_DIR}/src/tinycdb
|
||||
${CMAKE_BINARY_DIR}/src/win32)
|
||||
|
||||
#this is needed to be compatible with existent code
|
||||
add_definitions("-DHAVE_CONFIG_H")
|
||||
|
||||
if(WITH_FLAG_WALL)
|
||||
add_definitions("-Wall")
|
||||
endif(WITH_FLAG_WALL)
|
||||
|
||||
if(WITH_FLAG_ANSIPEDANTIC)
|
||||
add_definitions("-pedantic -ansi")
|
||||
endif(WITH_FLAG_ANSIPEDANTIC)
|
||||
|
||||
if(MYSQL_FOUND)
|
||||
add_definitions("-DWITH_SQL_MYSQL")
|
||||
endif(MYSQL_FOUND)
|
||||
if(SQLITE3_FOUND)
|
||||
add_definitions("-DWITH_SQL_SQLITE3")
|
||||
endif(SQLITE3_FOUND)
|
||||
|
||||
add_subdirectory(compat)
|
||||
add_subdirectory(common)
|
||||
add_subdirectory(tinycdb)
|
||||
add_subdirectory(win32)
|
||||
add_subdirectory(bntrackd)
|
||||
add_subdirectory(client)
|
||||
add_subdirectory(bniutils)
|
||||
add_subdirectory(bnpass)
|
||||
|
||||
if(WITH_BNETD)
|
||||
add_subdirectory(bnetd)
|
||||
endif(WITH_BNETD)
|
||||
|
||||
if(WITH_D2CS)
|
||||
add_subdirectory(d2cs)
|
||||
endif(WITH_D2CS)
|
||||
|
||||
if(WITH_D2DBS)
|
||||
add_subdirectory(d2dbs)
|
||||
endif(WITH_D2DBS)
|
||||
|
||||
if(HAVE_PCAP_H AND HAVE_LIBPCAP)
|
||||
add_subdirectory(bnpcap)
|
||||
endif(HAVE_PCAP_H AND HAVE_LIBPCAP)
|
16
pvpgn/src/bnetd/CMakeLists.txt
Normal file
16
pvpgn/src/bnetd/CMakeLists.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
add_executable(bnetd account.cpp account_wrap.cpp adbanner.cpp alias_command.cpp anongame.cpp
|
||||
anongame_gameresult.cpp anongame_infos.cpp anongame_maplists.cpp attrgroup.cpp
|
||||
attrlayer.cpp autoupdate.cpp channel.cpp channel_conv.cpp character.cpp clan.cpp
|
||||
cmdline.cpp command.cpp command_groups.cpp connection.cpp file.cpp file_cdb.cpp
|
||||
file_plain.cpp friends.cpp game.cpp game_conv.cpp handle_anongame.cpp
|
||||
handle_bnet.cpp handle_bot.cpp handle_d2cs.cpp handle_file.cpp handle_init.cpp
|
||||
handle_irc.cpp handle_telnet.cpp handle_udp.cpp helpfile.cpp ipban.cpp irc.cpp
|
||||
ladder.cpp ladder_calc.cpp mail.cpp main.cpp message.cpp news.cpp
|
||||
output.cpp prefs.cpp realm.cpp runprog.cpp server.cpp sql_dbcreator.cpp
|
||||
sql_mysql.cpp sql_odbc.cpp sql_pgsql.cpp sql_sqlite3.cpp storage.cpp
|
||||
storage_file.cpp storage_sql.cpp support.cpp team.cpp tick.cpp timer.cpp topic.cpp
|
||||
tournament.cpp tracker.cpp udptest_send.cpp versioncheck.cpp watch.cpp
|
||||
storage_sql2.cpp sql_common.cpp handle_wol.cpp handle_irc_common.cpp
|
||||
handle_apireg.cpp)
|
||||
target_link_libraries(bnetd compat common tinycdb
|
||||
${ZLIB_LIBRARIES} ${MYSQL_LIBRARIES} ${SQLITE3_LIBRARIES})
|
14
pvpgn/src/bniutils/CMakeLists.txt
Normal file
14
pvpgn/src/bniutils/CMakeLists.txt
Normal file
|
@ -0,0 +1,14 @@
|
|||
add_executable(bnilist bnilist.cpp fileio.cpp tga.cpp)
|
||||
target_link_libraries(bnilist common compat)
|
||||
|
||||
add_executable(bni2tga bni2tga.cpp fileio.cpp)
|
||||
target_link_libraries(bni2tga common)
|
||||
|
||||
add_executable(bniextract bniextract.cpp fileio.cpp tga.cpp bni.cpp)
|
||||
target_link_libraries(bniextract common compat)
|
||||
|
||||
add_executable(bnibuild bnibuild.cpp fileio.cpp bni.cpp tga.cpp)
|
||||
target_link_libraries(bnibuild common compat)
|
||||
|
||||
add_executable(tgainfo tgainfo.cpp fileio.cpp tga.cpp)
|
||||
target_link_libraries(tgainfo common compat)
|
5
pvpgn/src/bnpass/CMakeLists.txt
Normal file
5
pvpgn/src/bnpass/CMakeLists.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
add_executable(bnpass bnpass.cpp)
|
||||
target_link_libraries(bnpass common compat)
|
||||
|
||||
add_executable(sha1hash sha1hash.cpp)
|
||||
target_link_libraries(sha1hash common compat)
|
2
pvpgn/src/bnpcap/CMakeLists.txt
Normal file
2
pvpgn/src/bnpcap/CMakeLists.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
add_executable(bnpcap bnpcap.cpp)
|
||||
target_link_libraries(bnpcap common pcap)
|
2
pvpgn/src/bntrackd/CMakeLists.txt
Normal file
2
pvpgn/src/bntrackd/CMakeLists.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
add_executable(bntrackd bntrackd.cpp)
|
||||
target_link_libraries(bntrackd common compat)
|
11
pvpgn/src/client/CMakeLists.txt
Normal file
11
pvpgn/src/client/CMakeLists.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
add_executable(bnchat bnchat.cpp client.cpp client_connect.cpp udptest.cpp)
|
||||
target_link_libraries(bnchat common compat)
|
||||
|
||||
add_executable(bnftp bnftp.cpp client.cpp)
|
||||
target_link_libraries(bnftp common compat)
|
||||
|
||||
add_executable(bnbot bnbot.cpp client.cpp)
|
||||
target_link_libraries(bnbot common compat)
|
||||
|
||||
add_executable(bnstat bnstat.cpp client.cpp client_connect.cpp udptest.cpp)
|
||||
target_link_libraries(bnstat common compat)
|
7
pvpgn/src/common/CMakeLists.txt
Normal file
7
pvpgn/src/common/CMakeLists.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
add_library(common conf.cpp list.cpp eventlog.cpp hexdump.cpp bn_type.cpp
|
||||
util.cpp addr.cpp d2char_checksum.cpp xalloc.cpp network.cpp packet.cpp
|
||||
xstring.cpp asnprintf.cpp bnethash.cpp bnethashconv.cpp bnettime.cpp
|
||||
fdwatch.cpp fdwatch_epoll.cpp fdwatch_kqueue.cpp fdwatch_poll.cpp
|
||||
fdwatch_select.cpp give_up_root_privileges.cpp hashtable.cpp proginfo.cpp
|
||||
queue.cpp rcm.cpp rlimit.cpp tag.cpp token.cpp trans.cpp fdwbackend.cpp
|
||||
xstr.cpp systemerror.cpp wolhash.cpp)
|
3
pvpgn/src/compat/CMakeLists.txt
Normal file
3
pvpgn/src/compat/CMakeLists.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
add_library(compat psock.cpp strerror.cpp strsep.cpp pgetopt.cpp
|
||||
gettimeofday.cpp inet_aton.cpp inet_ntoa.cpp mmap.cpp pdir.cpp snprintf.cpp
|
||||
strcasecmp.cpp strdup.cpp strncasecmp.cpp strtoul.cpp uname.cpp vsnprintf.cpp)
|
5
pvpgn/src/d2cs/CMakeLists.txt
Normal file
5
pvpgn/src/d2cs/CMakeLists.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
add_executable(d2cs bnetd.cpp cmdline.cpp connection.cpp d2charfile.cpp
|
||||
d2charlist.cpp d2gs.cpp d2ladder.cpp game.cpp gamequeue.cpp handle_bnetd.cpp
|
||||
handle_d2cs.cpp handle_d2gs.cpp handle_init.cpp handle_signal.cpp main.cpp
|
||||
net.cpp prefs.cpp s2s.cpp server.cpp serverqueue.cpp)
|
||||
target_link_libraries(d2cs common compat win32)
|
3
pvpgn/src/d2dbs/CMakeLists.txt
Normal file
3
pvpgn/src/d2dbs/CMakeLists.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
add_executable(d2dbs charlock.cpp d2ladder.cpp dbserver.cpp dbspacket.cpp
|
||||
cmdline.cpp prefs.cpp handle_signal.cpp dbsdupecheck.cpp main.cpp)
|
||||
target_link_libraries(d2dbs common compat)
|
8
pvpgn/src/tinycdb/CMakeLists.txt
Normal file
8
pvpgn/src/tinycdb/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
add_library(tinycdb cdb_find.cpp cdb_findnext.cpp cdb_hash.cpp cdb_init.cpp
|
||||
cdb_make_add.cpp cdb_make.cpp cdb_make_find.cpp cdb_make_put.cpp cdb_seek.cpp
|
||||
cdb_seq.cpp cdb_unpack.cpp)
|
||||
|
||||
add_executable(bncdb cdb.cpp)
|
||||
target_link_libraries(bncdb tinycdb
|
||||
${CMAKE_BINARY_DIR}/src/common/libcommon.a
|
||||
${CMAKE_BINARY_DIR}/src/compat/libcompat.a )
|
1
pvpgn/src/win32/CMakeLists.txt
Normal file
1
pvpgn/src/win32/CMakeLists.txt
Normal file
|
@ -0,0 +1 @@
|
|||
add_library(win32 service.cpp)
|
Loading…
Add table
Reference in a new issue