src/CMakeLists.txt
author Tero Marttila <terom@fixme.fi>
Mon, 16 Mar 2009 21:47:18 +0200
changeset 68 591a574f390e
parent 67 aa94bf2b5f9b
child 72 43084f103c2a
permissions -rw-r--r--
add FindEvsql/FindLibPQ cmake modules and irc_log.sql definition, and implement logging of JOIN, PART, MODE, TOPIC, KICK, PRIVMSG, NOTICE and OPEN messages
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)
59
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
# add our include path
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
     8
include_directories (${LibEvent_INCLUDE_DIRS} ${GnuTLS_INCLUDE_DIRS} ${Evsql_INCLUDE_DIRS})
59
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
# define our source code modules
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
set (CORE_SOURCES error.c log.c)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
set (SOCK_SOURCES sock.c sock_tcp.c sock_gnutls.c sock_test.c line_proto.c)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
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)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
set (NEXUS_SOURCES nexus.c ${CORE_SOURCES} ${SOCK_SOURCES} ${IRC_SOURCES} signals.c module.c)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
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
    17
set (IRC_LOG_SOURCES irc_log.c)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
# define our libraries
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
set (MODULE_LIBRARIES "dl")
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
set (NEXUS_LIBRARIES ${LibEvent_LIBRARIES} ${GnuTLS_LIBRARIES} ${MODULE_LIBRARIES})
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
# 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
    24
set (CFLAGS "-Wall -Wextra -std=gnu99")
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
# add our binaries
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
add_executable (nexus ${NEXUS_SOURCES})
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
add_executable (test EXCLUDE_FROM_ALL ${TEST_SOURCES})
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
# add our modules
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
add_library (irc_log MODULE ${IRC_LOG_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
# set libraries
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
target_link_libraries (nexus ${NEXUS_LIBRARIES})
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
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
    36
target_link_libraries (irc_log ${Evsql_LIBRARIES})
59
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
# global target properties
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
set_target_properties (nexus test irc_log PROPERTIES
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
    COMPILE_FLAGS   ${CFLAGS}
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
# 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
    44
set_target_properties (nexus PROPERTIES
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
    LINK_FLAGS      "--export-dynamic"
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
# modules have weird names
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
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
    50
    PREFIX                      "mod_"
59
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
    LIBRARY_OUTPUT_DIRECTORY    "modules"
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
## setup install info
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
#install (TARGETS evirc
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    56
#    LIBRARY         DESTINATION lib
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
#    ARCHIVE         DESTINATION lib/static
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
#    PUBLIC_HEADER   DESTINATION include
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    59
#)
375a3b5c3a46 add CMake build stuff... that was easy
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60