~singpolyma/biboumi

ref: f0d9273da61ce154dbe460cf58c98de851d30615 biboumi/CMakeLists.txt -rw-r--r-- 1.9 KiB
f0d9273d — Florent Le Coz Add a Config module, and use it to get the password from a file 10 years ago
                                                                                
e332d7a2 Florent Le Coz
f2f94618 Florent Le Coz
ef014f7d Florent Le Coz
3d923603 Florent Le Coz
f2f94618 Florent Le Coz
e332d7a2 Florent Le Coz
ef014f7d Florent Le Coz
f2f94618 Florent Le Coz
e332d7a2 Florent Le Coz
ccebe901 Florent Le Coz
ef014f7d Florent Le Coz
ccebe901 Florent Le Coz
f0d9273d Florent Le Coz
e332d7a2 Florent Le Coz
87aaacdb Florent Le Coz
ccebe901 Florent Le Coz
e332d7a2 Florent Le Coz
87aaacdb Florent Le Coz
3d923603 Florent Le Coz
bf7b05ef Florent Le Coz
e332d7a2 Florent Le Coz
f0d9273d Florent Le Coz
e332d7a2 Florent Le Coz
87aaacdb Florent Le Coz
bf7b05ef Florent Le Coz
f0d9273d Florent Le Coz
ccebe901 Florent Le Coz
f0d9273d Florent Le Coz
5cb81cac Florent Le Coz
af4fc92c Florent Le Coz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
cmake_minimum_required(VERSION 2.6)

project(biboumi)

set(${PROJECT_NAME}_VERSION_MAJOR 0)
set(${PROJECT_NAME}_VERSION_MINOR 1)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wall -Wextra")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og -fsanitize=address")

#
## Look for external libraries
#
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package(Cryptopp REQUIRED)
find_package(Iconv REQUIRED)
include(FindEXPAT)
find_package(EXPAT REQUIRED)

include_directories("src/")
include_directories(${EXPAT_INCLUDE_DIRS})
include_directories(${ICONV_INCLUDE_DIR})
# the SYSTEM flag tells the compiler that we don't care about warnings
# coming from these headers.
include_directories(SYSTEM ${CRYPTO++_INCLUDE_DIR})

#
## utils
#
file(GLOB source_utils
  src/utils/*.[hc]pp)
add_library(utils STATIC ${source_utils})
target_link_libraries(utils ${ICONV_LIBRARIES})

#
## config
#
file(GLOB source_config
  src/config/*.[hc]pp)
add_library(config STATIC ${source_config})
target_link_libraries(config utils)

#
## network
#
file(GLOB source_network
  src/network/*.[hc]pp)
add_library(network STATIC ${source_network})

#
## irclib
#
file(GLOB source_irc
  src/irc/*.[hc]pp)
add_library(irc STATIC ${source_irc})
target_link_libraries(irc network utils)

#
## xmpplib
#
file(GLOB source_xmpp
  src/xmpp/*.[hc]pp)
add_library(xmpp STATIC ${source_xmpp})
target_link_libraries(xmpp bridge network utils
  ${CRYPTO++_LIBRARIES} ${EXPAT_LIBRARIES})

#
## bridge
#
file(GLOB source_bridge
  src/bridge/*.[hc]pp)
add_library(bridge STATIC ${source_bridge})
target_link_libraries(bridge xmpp irc)

#
## Main executable
#
add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME}
  xmpp
  irc
  bridge
  utils
  config)

#
## Tests
#

add_executable(test src/test.cpp)
target_link_libraries(test
  xmpp
  irc
  bridge
  utils
  config)

CONFIGURE_FILE(config.h.cmake src/config.h @ONLY)