author | Tero Marttila <terom@fixme.fi> |
Wed, 01 Apr 2009 01:41:08 +0300 | |
changeset 106 | f00661136ac2 |
parent 105 | b6b183fbf373 |
child 116 | 92e71129074d |
permissions | -rw-r--r-- |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
1 |
# dependancies |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
find_package (LibEvent REQUIRED) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
find_package (GnuTLS REQUIRED) |
67
aa94bf2b5f9b
implement the SQL logs table and the INSERT-logging code for mod_irc_log
Tero Marttila <terom@fixme.fi>
parents:
59
diff
changeset
|
4 |
find_package (LibPQ REQUIRED) |
aa94bf2b5f9b
implement the SQL logs table and the INSERT-logging code for mod_irc_log
Tero Marttila <terom@fixme.fi>
parents:
59
diff
changeset
|
5 |
find_package (Evsql REQUIRED) |
93
42ade8285570
add some rudimentary lua support, by having a simple interactive console, and providing access to irc_client_quit
Tero Marttila <terom@fixme.fi>
parents:
92
diff
changeset
|
6 |
find_package (Lua51 REQUIRED) |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
7 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
8 |
# add our include path |
93
42ade8285570
add some rudimentary lua support, by having a simple interactive console, and providing access to irc_client_quit
Tero Marttila <terom@fixme.fi>
parents:
92
diff
changeset
|
9 |
include_directories (${LibEvent_INCLUDE_DIRS} ${GnuTLS_INCLUDE_DIRS} ${Evsql_INCLUDE_DIRS} ${Lua51_INCLUDE_DIRS}) |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
10 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
11 |
# define our source code modules |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
12 |
set (CORE_SOURCES error.c log.c) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
13 |
set (SOCK_SOURCES sock.c sock_tcp.c sock_gnutls.c sock_test.c line_proto.c) |
90
9d489b1039b2
implement irc_queue, with some basic functionality tests
Tero Marttila <terom@fixme.fi>
parents:
83
diff
changeset
|
14 |
set (IRC_SOURCES irc_line.c irc_conn.c irc_net.c irc_chan.c chain.c irc_cmd.c irc_proto.c irc_client.c irc_user.c irc_queue.c) |
106
f00661136ac2
add nexus_lua_error for unified LUA_ERR* -> ERR_LUA_* mapping, and lua configuration support
Tero Marttila <terom@fixme.fi>
parents:
105
diff
changeset
|
15 |
set (LUA_SOURCES nexus_lua.c lua_objs.c lua_config.c) |
105
b6b183fbf373
implement a separate nexus_lua module
Tero Marttila <terom@fixme.fi>
parents:
93
diff
changeset
|
16 |
set (CONSOLE_SOURCES console.c lua_console.c) |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
17 |
|
105
b6b183fbf373
implement a separate nexus_lua module
Tero Marttila <terom@fixme.fi>
parents:
93
diff
changeset
|
18 |
set (NEXUS_SOURCES nexus.c ${CORE_SOURCES} ${SOCK_SOURCES} ${IRC_SOURCES} ${LUA_SOURCES} ${CONSOLE_SOURCES} signals.c module.c config.c) |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
19 |
set (TEST_SOURCES test.c ${CORE_SOURCES} ${SOCK_SOURCES} ${IRC_SOURCES}) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
20 |
set (IRC_LOG_SOURCES irc_log.c) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
21 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
22 |
# define our libraries |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
23 |
set (MODULE_LIBRARIES "dl") |
93
42ade8285570
add some rudimentary lua support, by having a simple interactive console, and providing access to irc_client_quit
Tero Marttila <terom@fixme.fi>
parents:
92
diff
changeset
|
24 |
set (NEXUS_LIBRARIES ${LibEvent_LIBRARIES} ${GnuTLS_LIBRARIES} ${MODULE_LIBRARIES} "readline" ${Lua51_LIBRARIES}) |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
25 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
26 |
# compiler flags |
68
591a574f390e
add FindEvsql/FindLibPQ cmake modules and irc_log.sql definition, and implement logging of JOIN, PART, MODE, TOPIC, KICK, PRIVMSG, NOTICE and OPEN messages
Tero Marttila <terom@fixme.fi>
parents:
67
diff
changeset
|
27 |
set (CFLAGS "-Wall -Wextra -std=gnu99") |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
28 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
29 |
# add our binaries |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
30 |
add_executable (nexus ${NEXUS_SOURCES}) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
31 |
add_executable (test EXCLUDE_FROM_ALL ${TEST_SOURCES}) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
32 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
33 |
# add our modules |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
34 |
add_library (irc_log MODULE ${IRC_LOG_SOURCES}) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
35 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
36 |
# set libraries |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
37 |
target_link_libraries (nexus ${NEXUS_LIBRARIES}) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
38 |
target_link_libraries (test ${NEXUS_LIBRARIES}) |
67
aa94bf2b5f9b
implement the SQL logs table and the INSERT-logging code for mod_irc_log
Tero Marttila <terom@fixme.fi>
parents:
59
diff
changeset
|
39 |
target_link_libraries (irc_log ${Evsql_LIBRARIES}) |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
40 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
41 |
# global target properties |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
42 |
set_target_properties (nexus test irc_log PROPERTIES |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
43 |
COMPILE_FLAGS ${CFLAGS} |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
44 |
) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
45 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
46 |
# nexus needs to export its symbols to be able to load modules |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
47 |
set_target_properties (nexus PROPERTIES |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
48 |
LINK_FLAGS "--export-dynamic" |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
49 |
) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
50 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
51 |
# modules have weird names |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
52 |
set_target_properties (irc_log PROPERTIES |
67
aa94bf2b5f9b
implement the SQL logs table and the INSERT-logging code for mod_irc_log
Tero Marttila <terom@fixme.fi>
parents:
59
diff
changeset
|
53 |
PREFIX "mod_" |
59
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
54 |
LIBRARY_OUTPUT_DIRECTORY "modules" |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
55 |
) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
56 |
|
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
57 |
## setup install info |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
58 |
#install (TARGETS evirc |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
59 |
# LIBRARY DESTINATION lib |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
60 |
# ARCHIVE DESTINATION lib/static |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
61 |
# PUBLIC_HEADER DESTINATION include |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
62 |
#) |
375a3b5c3a46
add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
63 |