summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt78
-rw-r--r--src/audio/CMakeLists.txt12
-rw-r--r--src/base/CMakeLists.txt12
-rw-r--r--src/base/path.h.in1
-rw-r--r--src/base/tcp_server.c291
-rw-r--r--src/base/tcp_server.h19
-rw-r--r--src/client/CMakeLists.txt12
-rw-r--r--src/modules/CMakeLists.txt1
-rw-r--r--src/net/CMakeLists.txt12
-rw-r--r--src/screen/CMakeLists.txt12
-rw-r--r--src/server/CMakeLists.txt12
-rw-r--r--src/widget/CMakeLists.txt12
12 files changed, 98 insertions, 376 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9f80566..2d19042 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -22,64 +22,15 @@ ENDIF ( BUILD_SERVER )
###############################################################################
# SOURCE SPECIFICATION
###############################################################################
-# Command for finding correct file names in directory, replace DIR with
-# directory name you want eg: base
-# find ./ -maxdepth 1 -type f -name \*.c |grep "$" |sed -e 's/^\.\//\$\{WORKDIR\}\/DIR\//' -e 's/\.c//' |tr '\n' ' '
-SET ( SRC_base
- ${WORKDIR}/net/udp ${WORKDIR}/net/tcp
- ${WORKDIR}/base/udp_server
- ${WORKDIR}/base/main ${WORKDIR}/base/shot
- ${WORKDIR}/base/space ${WORKDIR}/base/checkFront
- ${WORKDIR}/base/storage ${WORKDIR}/base/myTimer
- ${WORKDIR}/base/protect ${WORKDIR}/base/list
- ${WORKDIR}/base/arena ${WORKDIR}/base/server
- ${WORKDIR}/base/serverSelect ${WORKDIR}/base/serverSendMsg
- ${WORKDIR}/base/textFile ${WORKDIR}/base/gun
- ${WORKDIR}/base/arenaFile ${WORKDIR}/base/modules
- ${WORKDIR}/base/net_multiplayer ${WORKDIR}/base/index
- ${WORKDIR}/base/item ${WORKDIR}/base/tux
- ${WORKDIR}/base/director ${WORKDIR}/base/idManager
- ${WORKDIR}/base/homeDirector ${WORKDIR}/base/proto
- ${WORKDIR}/base/shareFunction ${WORKDIR}/base/buffer
- ${WORKDIR}/base/archive ${WORKDIR}/base/downServer
- ${WORKDIR}/net/dns
-)
-
-SET ( SRC_client
- ${WORKDIR}/client/layer ${WORKDIR}/client/term
- ${WORKDIR}/client/screen ${WORKDIR}/client/interface
- ${WORKDIR}/client/client ${WORKDIR}/client/chat
- ${WORKDIR}/client/configFile ${WORKDIR}/client/saveLoad
- ${WORKDIR}/client/font ${WORKDIR}/client/game
- ${WORKDIR}/client/radar ${WORKDIR}/client/panel
- ${WORKDIR}/client/image ${WORKDIR}/client/keyboardBuffer
- ${WORKDIR}/client/pauza ${WORKDIR}/client/saveDialog
- ${WORKDIR}/client/hotKey ${WORKDIR}/client/fontConfig
-
- ${WORKDIR}/screen/choiceArena
- ${WORKDIR}/screen/settingKeys ${WORKDIR}/screen/table
- ${WORKDIR}/screen/setting ${WORKDIR}/screen/credits
- ${WORKDIR}/screen/world ${WORKDIR}/screen/analyze
- ${WORKDIR}/screen/mainMenu ${WORKDIR}/screen/browser
- ${WORKDIR}/screen/gameType ${WORKDIR}/screen/downArena
-
- ${WORKDIR}/widget/widget_check ${WORKDIR}/widget/widget_button
- ${WORKDIR}/widget/widget_textfield ${WORKDIR}/widget/widget_label
- ${WORKDIR}/widget/widget_buttonimage ${WORKDIR}/widget/widget_image
- ${WORKDIR}/widget/widget_select ${WORKDIR}/widget/widget_catchkey
- ${WORKDIR}/widget/widget_choicegroup ${WORKDIR}/widget/widget_statusbar
- ${WORKDIR}/widget/widget
-)
-
-SET ( SRC_audio
- ${WORKDIR}/audio/audio ${WORKDIR}/audio/music
- ${WORKDIR}/audio/sound
-)
-
-SET ( SRC_server
- ${WORKDIR}/server/log ${WORKDIR}/server/serverConfigFile
- ${WORKDIR}/server/highScore ${WORKDIR}/server/publicServer
-)
+FILE ( GLOB DIRS * )
+FOREACH ( dir ${DIRS} )
+ GET_FILENAME_COMPONENT (fn ${dir} NAME)
+ IF ( ${fn} STREQUAL "modules" )
+ ADD_SUBDIRECTORY ( ${fn} )
+ ELSE ( ${fn} STREQUAL "modules" )
+ INCLUDE ( ${fn}/CMakeLists.txt OPTIONAL )
+ ENDIF ( ${fn} STREQUAL "modules" )
+ENDFOREACH ( dir )
###############################################################################
# INCLUDE CONFIGURED HEADERS
###############################################################################
@@ -94,10 +45,11 @@ ENDIF ( ENABLE_IPV6 )
# AUDIO CHECK
###############################################################################
IF ( NOT BUILD_SERVER )
+ SET ( SRC_compile ${SRC_net} ${SRC_widget} ${SRC_screen} ${SRC_base} ${SRC_client} )
IF ( WITH_AUDIO )
MESSAGE ( STATUS "<Building with audio as requested>" )
- SET ( SRC_compile ${SRC_base} ${SRC_client} ${SRC_audio} )
- INCLUDE_DIRECTORIES ( ${WORKDIR}/audio )
+ SET ( SRC_compile ${SRC_compile} ${SRC_audio} )
+ INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_SOURCE_DIR}/audio )
ELSE ( WITH_AUDIO )
ADD_DEFINITIONS ( -DNO_SOUND )
ENDIF ( WITH_AUDIO )
@@ -109,15 +61,11 @@ IF ( WITH_OPENGL )
ADD_DEFINITIONS ( -DSUPPORT_OPENGL )
ENDIF ( WITH_OPENGL )
###############################################################################
-# MODULES
-###############################################################################
-ADD_SUBDIRECTORY ( modules )
-###############################################################################
# SERVER COMPILATION
###############################################################################
IF ( BUILD_SERVER )
MESSAGE ( STATUS "<Building server as requested>" )
- SET ( SRC_compile ${SRC_base} ${SRC_server} )
+ SET ( SRC_compile ${SRC_net} ${SRC_server} ${SRC_base} )
ADD_EXECUTABLE ( ${APPNAME} ${SRC_compile} )
ELSE ( BUILD_SERVER )
###############################################################################
diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/audio/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################
diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/base/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################
diff --git a/src/base/path.h.in b/src/base/path.h.in
index 79bce33..7e3a7a6 100644
--- a/src/base/path.h.in
+++ b/src/base/path.h.in
@@ -1,4 +1,3 @@
-
#ifndef PATH_H
#cmakedefine USE_MAGICK
#define TUXANCI_VERSION "@TUXANCI_VERSION@"
diff --git a/src/base/tcp_server.c b/src/base/tcp_server.c
deleted file mode 100644
index 1635c1a..0000000
--- a/src/base/tcp_server.c
+++ /dev/null
@@ -1,291 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/types.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/time.h>
-
-#ifndef __WIN32__
-# include <sys/ioctl.h>
-# include <sys/socket.h>
-# include <sys/select.h>
-#else
-# include <io.h>
-# include <winsock2.h>
-#endif
-
-#include "main.h"
-#include "list.h"
-#include "tux.h"
-#include "proto.h"
-#include "server.h"
-#include "myTimer.h"
-#include "arena.h"
-#include "net_multiplayer.h"
-#include "checkFront.h"
-#include "protect.h"
-#include "index.h"
-
-#ifndef PUBLIC_SERVER
-# include "screen_world.h"
-#endif
-
-#ifdef PUBLIC_SERVER
-# include "publicServer.h"
-# include "highScore.h"
-# include "log.h"
-#endif
-
-#include "tcp.h"
-#include "tcp_server.h"
-#include "serverSelect.h"
-
-static sock_tcp_t *sock_server_tcp;
-static sock_tcp_t *sock_server_tcp_second;
-
-client_t *server_tcp_new_client(sock_tcp_t * sock_tcp)
-{
- client_t *new;
-
- assert(sock_tcp != NULL);
-
- new = server_new_any_client();
- new->type = CLIENT_TYPE_TCP;
- new->socket_tcp = sock_tcp;
- new->recvBuffer = buffer_new(SERVER_TCP_BUFFER_LIMIT);
- new->sendBuffer = buffer_new(SERVER_TCP_BUFFER_LIMIT);
-
-#ifdef PUBLIC_SERVER
- char str_log[STR_LOG_SIZE];
- char str_ip[STR_IP_SIZE];
-
- sock_tcp_get_ip(sock_tcp, str_ip, STR_IP_SIZE);
- sprintf(str_log, _("New client \"%s\" on port \"%d\" connected"), str_ip,
- sock_tcp_get_port(sock_tcp));
- log_add(LOG_INF, str_log);
-#endif
-
- return new;
-}
-
-void server_tcp_send_client_buffer(client_t * client)
-{
- void *data;
- int len;
- int res;
-
- len = buffer_get_size(client->sendBuffer);
-
- if (len == 0) {
- return;
- }
-
- data = buffer_get_data(client->sendBuffer);
-
- res = sock_tcp_write(client->socket_tcp, data, len);
- //printf("sock_tcp_write = %d\n", res);
-
- if (res < 0) {
- client->status = NET_STATUS_ZOMBIE;
- return;
- }
-
- buffer_cut(client->sendBuffer, res);
-}
-
-void server_tcp_destroy_client(client_t * client)
-{
- check_front_event(client);
- server_tcp_send_client_buffer(client);
-
-#ifdef PUBLIC_SERVER
- char str_log[STR_LOG_SIZE];
- char str_ip[STR_IP_SIZE];
-
- sock_tcp_get_ip(client->socket_tcp, str_ip, STR_IP_SIZE);
- sprintf(str_log, _("Client \"%s\" on port \"%d\" disconnected"), str_ip,
- sock_tcp_get_port(client->socket_tcp));
- log_add(LOG_INF, str_log);
-#endif
-
- sock_tcp_close(client->socket_tcp);
- buffer_destroy(client->recvBuffer);
- buffer_destroy(client->sendBuffer);
-
- server_destroy_any_client(client);
-}
-
-int server_tcp_init(char *ip4, int port4, char *ip6, int port6)
-{
- int ret;
-
- ret = 0;
-
- if (ip4 != NULL) {
- sock_server_tcp = sock_tcp_bind(ip4, port4, PROTO_UDPv4);
-
- if (sock_server_tcp != NULL) {
- ret++;
- sock_tcp_diable_nagle(sock_server_tcp);
-
- DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\"\n"), ip4, port4);
- } else {
- DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\" FAILED!\n"), ip4, port4);
-
- }
- }
-
- if (ip6 != NULL) {
- sock_server_tcp_second = sock_tcp_bind(ip6, port6, PROTO_UDPv6);
-
- if (sock_server_tcp_second != NULL) {
- ret++;
- sock_tcp_diable_nagle(sock_server_tcp_second);
-
- DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\"\n"), ip6, port6);
- } else {
-
- DEBUG_MSG(_("Starting server: \"%s\" on port: \"%d\" FAILED!\n"), ip6, port6);
- }
- }
-
- return ret;
-}
-
-static void eventNewClient(sock_tcp_t * server_sock)
-{
- list_t *listClient;
- sock_tcp_t *sock;
- client_t *client;
-
- listClient = server_get_list_clients();
-
- sock = sock_tcp_accept(server_sock);
- sock_tcp_diable_nagle(sock);
- sock_tcp_set_non_block(sock);
-
- client = server_tcp_new_client(sock);
- list_add(listClient, client);
-}
-
-static void eventTcpClient(client_t * client)
-{
- char buffer[STR_PROTO_SIZE];
- int ret;
-
- memset(buffer, 0, STR_PROTO_SIZE);
-
- ret = sock_tcp_read(client->socket_tcp, buffer, STR_PROTO_SIZE - 1);
- //printf("sock_tcp_read = %d\n", ret);
-
- if (ret <= 0) {
- client->status = NET_STATUS_ZOMBIE;
- return;
- }
-
- if (buffer_append(client->recvBuffer, buffer, ret) < 0) {
- client->status = NET_STATUS_ZOMBIE;
- return;
- }
-
- while (buffer_get_line(client->recvBuffer, buffer, STR_PROTO_SIZE) >= 0) {
- list_add(client->listRecvMsg, strdup(buffer));
- }
-}
-
-void server_tcp_set_select()
-{
- list_t *listClient;
- int i;
-
- listClient = server_get_list_clients();
-
- if (sock_server_tcp != NULL) {
- select_add_sock_for_read(sock_server_tcp->sock);
- }
-
- if (sock_server_tcp_second != NULL) {
- select_add_sock_for_read(sock_server_tcp_second->sock);
- }
-
- for (i = 0; i < listClient->count; i++) {
- client_t *client;
-
- client = (client_t *) listClient->list[i];
-
- if (client->status != NET_STATUS_OK || client->type != CLIENT_TYPE_TCP) {
- continue;
- }
-
- select_add_sock_for_read(client->socket_tcp->sock);
- }
-}
-
-int server_tcp_select_sock()
-{
- list_t *listClient;
- int count;
- int i;
-
- count = 0;
-
- if (sock_server_tcp != NULL) {
- if (select_is_change_sock_for_read(sock_server_tcp->sock)) {
- eventNewClient(sock_server_tcp);
- count++;
- }
- }
-
- if (sock_server_tcp_second != NULL) {
- if (select_is_change_sock_for_read(sock_server_tcp_second->sock)) {
- eventNewClient(sock_server_tcp_second);
- count++;
- }
- }
-
- listClient = server_get_list_clients();
-
- for (i = 0; i < listClient->count; i++) {
- client_t *client;
-
- client = (client_t *) listClient->list[i];
-
- if (client->status != NET_STATUS_OK || client->type != CLIENT_TYPE_TCP) {
- continue;
- }
-
- if (select_is_change_sock_for_read(client->socket_tcp->sock)) {
- //printf("sChangeSockInSelectRead\n");
- eventTcpClient(client);
- count++;
- }
-/*
- if( select_is_change_sock_for_write(client->socket_tcp->sock) )
- {
- //printf("select_is_change_sock_for_write\n");
- server_tcp_send_client_buffer(client);
- count++;
- }
-*/
- }
-
- return count;
-}
-
-void server_tcp_quit()
-{
- if (sock_server_tcp != NULL) {
- DEBUG_MSG(_("Closing port: \"%d\"\n"), sock_tcp_get_port(sock_server_tcp));
- sock_tcp_close(sock_server_tcp);
- }
-
- if (sock_server_tcp_second != NULL) {
- DEBUG_MSG(_("Closing port: \"%d\"\n"), sock_tcp_get_port(sock_server_tcp_second));
- sock_tcp_close(sock_server_tcp_second);
- }
-
- DEBUG_MSG("Quitting TCP\n");
-}
diff --git a/src/base/tcp_server.h b/src/base/tcp_server.h
deleted file mode 100644
index e206402..0000000
--- a/src/base/tcp_server.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef SERVER_TCP_H
-
-# define SERVER_TCP_H
-
-# include "server.h"
-# include "tcp.h"
-
-# define SERVER_TCP_BUFFER_LIMIT 4096
-
-extern client_t *server_tcp_new_client(sock_tcp_t * sock_tcp);
-extern void server_tcp_destroy_client(client_t * p);
-extern int server_tcp_init(char *ip4, int port4, char *ip6, int port6);
-extern void server_tcp_set_select();
-extern int server_tcp_select_sock();
-extern void server_tcp_send_client_buffer(client_t * p);
-extern void server_tcp_quit();
-
-#endif
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/client/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################
diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt
index a041e87..33952ad 100644
--- a/src/modules/CMakeLists.txt
+++ b/src/modules/CMakeLists.txt
@@ -8,6 +8,7 @@ LINK_LIBRARIES ( ${CMAKE_DL_LIBS} )
###############################################################################
# SOURCE SPECIFICATION
###############################################################################
+INCLUDE_DIRECTORIES ( ${CMAKE_BINARY_DIR}/src/base/ )
IF ( BUILD_SERVER )
SET ( SRC_base_modules
${WORKDIR}/server/publicServer.h
diff --git a/src/net/CMakeLists.txt b/src/net/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/net/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################
diff --git a/src/screen/CMakeLists.txt b/src/screen/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/screen/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################
diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/server/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################
diff --git a/src/widget/CMakeLists.txt b/src/widget/CMakeLists.txt
new file mode 100644
index 0000000..6c8c7a1
--- /dev/null
+++ b/src/widget/CMakeLists.txt
@@ -0,0 +1,12 @@
+###############################################################################
+# tuxanci/src/*/CMakeLists.txt
+###############################################################################
+# Generate source_code files from .c files we find in directory
+###############################################################################
+FILE ( GLOB src ${fn}/*.c )
+FOREACH ( fle ${src} )
+ GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE )
+ GET_FILENAME_COMPONENT ( pth ${fle} PATH )
+ SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} )
+ENDFOREACH ( fle )
+###############################################################################