Mercurial > code
annotate CMakeLists.txt @ 481:b75b857aae11
Convert files from dos to unix
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 11 Nov 2015 08:28:11 +0100 |
parents | 828d3dc89f2d |
children | 898d8b29a4f1 |
rev | line source |
---|---|
219 | 1 # |
2 # CMakeLists.txt -- code building for common code | |
3 # | |
403 | 4 # Copyright (c) 2013-2015 David Demelier <markand@malikania.fr> |
219 | 5 # |
6 # Permission to use, copy, modify, and/or distribute this software for any | |
7 # purpose with or without fee is hereby granted, provided that the above | |
8 # copyright notice and this permission notice appear in all copies. | |
9 # | |
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 # | |
18 | |
19 # | |
20 # This CMakeLists build system is primarily used for testing all | |
21 # modules. | |
22 # | |
403 | 23 cmake_minimum_required(VERSION 3.0) |
219 | 24 project(code) |
25 | |
26 set(CMAKE_MODULE_PATH ${code_SOURCE_DIR}/cmake) | |
27 | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
28 include(CMakeParseArguments) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
29 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
30 add_subdirectory(extern) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
31 add_subdirectory(tools) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
32 |
219 | 33 enable_testing() |
34 | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
35 macro(define_module) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
36 set(oneValueArgs TARGET NAME DIRECTORY) |
412 | 37 set(multiValueArgs SOURCES RESOURCES LIBRARIES INCLUDES) |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
38 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
39 cmake_parse_arguments(MOD "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
40 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
41 if (NOT MOD_TARGET) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
42 message(FATAL_ERROR "Argument TARGET not set") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
43 elseif (NOT MOD_NAME) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
44 message(FATAL_ERROR "Argument NAME not set") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
45 elseif (NOT MOD_DIRECTORY) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
46 message(FATAL_ERROR "Argument DIRECTORY not set") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
47 endif () |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
48 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
49 string(TOUPPER ${MOD_NAME} optionname) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
50 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
51 # Create the option for enabling the test |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
52 option(WITH_${optionname} "Enable ${MOD_NAME}" On) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
53 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
54 if (WITH_${optionname}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
55 # Add the test executable |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
56 set(MAIN ${code_SOURCE_DIR}/C++/tests/${MOD_DIRECTORY}/main.cpp) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
57 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
58 if (NOT EXISTS ${MAIN}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
59 message(FATAL_ERROR "${MAIN} file does not exists") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
60 endif () |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
61 |
412 | 62 add_executable(${MOD_TARGET} ${MOD_SOURCES} ${MOD_RESOURCES} ${MAIN}) |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
63 add_test(${MOD_TARGET}-test ${MOD_TARGET}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
64 target_include_directories( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
65 ${MOD_TARGET} |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
66 PRIVATE |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
67 ${code_SOURCE_DIR}/C++ |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
68 ${code_SOURCE_DIR}/C++/modules/${MOD_DIRECTORY} |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
69 ${MOD_INCLUDES} |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
70 ) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
71 target_link_libraries(${MOD_TARGET} gtest ${MOD_LIBRARIES}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
72 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
73 # Copy optional resources |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
74 if (MOD_RESOURCES) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
75 foreach (res ${MOD_RESOURCES}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
76 get_filename_component(inputname ${res} NAME) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
77 set(output ${CMAKE_BINARY_DIR}/${MOD_DIRECTORY}/${inputname}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
78 list(APPEND outputlist ${output}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
79 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
80 add_custom_command( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
81 OUTPUT ${output} |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
82 COMMENT "Copying ${inputname}" |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
83 DEPENDS ${res} |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
84 COMMAND ${CMAKE_COMMAND} -E copy ${res} ${output} |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
85 ) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
86 endforeach() |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
87 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
88 add_custom_target(${MOD_TARGET}-resources DEPENDS ${outputlist}) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
89 add_dependencies(${MOD_TARGET} ${MOD_TARGET}-resources) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
90 endif () |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
91 endif () |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
92 endmacro() |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
93 |
359 | 94 # Optional |
95 find_package(Jansson) | |
96 find_package(OpenSSL) | |
97 find_package(ZIP) | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
98 |
361 | 99 # Doxygen target |
100 find_package(Doxygen) | |
101 | |
102 if (DOXYGEN_FOUND) | |
103 configure_file( | |
104 ${CMAKE_SOURCE_DIR}/cmake/Doxyfile.in | |
105 ${CMAKE_BINARY_DIR}/Doxyfile | |
106 ) | |
107 | |
108 add_custom_target( | |
109 doxygen ALL | |
110 COMMENT "Generating doxygen documentation" | |
111 COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile | |
112 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | |
113 VERBATIM | |
114 ) | |
115 endif () | |
116 | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
117 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
118 # Base64 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
119 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
120 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
121 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
122 TARGET base64 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
123 NAME Base64 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
124 DIRECTORY Base64 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
125 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
126 ${code_SOURCE_DIR}/C++/modules/Base64/Base64.cpp |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
127 ${code_SOURCE_DIR}/C++/modules/Base64/Base64.h |
219 | 128 ) |
129 | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
130 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
131 # Converter |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
132 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
133 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
134 # No tests yet |
236 | 135 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
136 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
137 # Directory |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
138 # --------------------------------------------------------- |
219 | 139 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
140 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
141 TARGET directory |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
142 NAME Directory |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
143 DIRECTORY Directory |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
144 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
145 ${code_SOURCE_DIR}/C++/modules/Directory/Directory.cpp |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
146 ${code_SOURCE_DIR}/C++/modules/Directory/Directory.h |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
147 ) |
219 | 148 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
149 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
150 # Dynlib |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
151 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
152 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
153 if (WIN32) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
154 set(EXTENSION ".dll") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
155 elseif (UNIX) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
156 set(EXTENSION ".so") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
157 elseif (APPLE) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
158 set(EXTENSION ".dylib") |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
159 else () |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
160 message(FATAL_ERROR "Unsupported platform") |
249
3b4ae8feca1c
Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
161 endif () |
219 | 162 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
163 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
164 TARGET dynlib |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
165 NAME Dynlib |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
166 DIRECTORY Dynlib |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
167 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
168 ${code_SOURCE_DIR}/C++/modules/Dynlib/Dynlib.cpp |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
169 ${code_SOURCE_DIR}/C++/modules/Dynlib/Dynlib.h |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
170 ) |
242 | 171 |
362
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
172 if (WITH_DYNLIB) |
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
173 if (CMAKE_SYSTEM_NAME MATCHES "Linux") |
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
174 target_link_libraries(dynlib dl) |
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
175 endif () |
391
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
176 |
362
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
177 target_compile_definitions(dynlib PRIVATE EXTENSION=\"${EXTENSION}\") |
391
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
178 |
362
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
179 add_library(dynlib-plugin MODULE ${code_SOURCE_DIR}/C++/tests/Dynlib/Plugin.cpp) |
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
180 set_target_properties(dynlib-plugin PROPERTIES PREFIX "") |
ff5b46474895
- Fix WITH_DYNLIB=Off
David Demelier <markand@malikania.fr>
parents:
361
diff
changeset
|
181 target_include_directories(dynlib-plugin PRIVATE ${code_SOURCE_DIR}/C++/modules/Dynlib) |
222
5a99711d52f9
Directory: add unit tests
David Demelier <markand@malikania.fr>
parents:
221
diff
changeset
|
182 endif () |
5a99711d52f9
Directory: add unit tests
David Demelier <markand@malikania.fr>
parents:
221
diff
changeset
|
183 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
184 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
185 # Flags |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
186 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
187 |
361 | 188 # |
189 # TODO: may be modified or deleted | |
190 # | |
191 | |
192 #define_module( | |
193 # TARGET flags | |
194 # NAME Flags | |
195 # DIRECTORY Flags | |
196 # SOURCES ${code_SOURCE_DIR}/C++/modules/Flags/Flags.h | |
197 #) | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
198 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
199 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
200 # Hash |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
201 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
202 |
359 | 203 if (OPENSSL_FOUND) |
204 define_module( | |
205 TARGET hash | |
206 NAME Hash | |
207 DIRECTORY Hash | |
208 LIBRARIES ${OPENSSL_LIBRARIES} | |
209 INCLUDES ${OPENSSL_INCLUDE_DIR} | |
210 SOURCES | |
211 ${code_SOURCE_DIR}/C++/modules/Hash/Hash.cpp | |
212 ${code_SOURCE_DIR}/C++/modules/Hash/Hash.h | |
213 ) | |
214 endif () | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
215 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
216 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
217 # Ini |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
218 # --------------------------------------------------------- |
219 | 219 |
337
24c9388c34b7
Ini: fix under Windows
David Demelier <markand@malikania.fr>
parents:
335
diff
changeset
|
220 if (WIN32) |
24c9388c34b7
Ini: fix under Windows
David Demelier <markand@malikania.fr>
parents:
335
diff
changeset
|
221 set(INI_LIBRARIES Shlwapi) |
24c9388c34b7
Ini: fix under Windows
David Demelier <markand@malikania.fr>
parents:
335
diff
changeset
|
222 endif () |
24c9388c34b7
Ini: fix under Windows
David Demelier <markand@malikania.fr>
parents:
335
diff
changeset
|
223 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
224 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
225 TARGET ini |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
226 NAME Ini |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
227 DIRECTORY Ini |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
228 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
229 ${code_SOURCE_DIR}/C++/modules/Ini/Ini.cpp |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
230 ${code_SOURCE_DIR}/C++/modules/Ini/Ini.h |
337
24c9388c34b7
Ini: fix under Windows
David Demelier <markand@malikania.fr>
parents:
335
diff
changeset
|
231 LIBRARIES |
24c9388c34b7
Ini: fix under Windows
David Demelier <markand@malikania.fr>
parents:
335
diff
changeset
|
232 ${INI_LIBRARIES} |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
233 RESOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
234 ${code_SOURCE_DIR}/C++/tests/Ini/configs/compact.conf |
426 | 235 ${code_SOURCE_DIR}/C++/tests/Ini/configs/empty.conf |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
236 ${code_SOURCE_DIR}/C++/tests/Ini/configs/error-badcomment.conf |
426 | 237 ${code_SOURCE_DIR}/C++/tests/Ini/configs/error-badinclude.conf |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
238 ${code_SOURCE_DIR}/C++/tests/Ini/configs/error-badsection.conf |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
239 ${code_SOURCE_DIR}/C++/tests/Ini/configs/error-nosection.conf |
426 | 240 ${code_SOURCE_DIR}/C++/tests/Ini/configs/error-unterminatedsection.conf |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
241 ${code_SOURCE_DIR}/C++/tests/Ini/configs/includes.conf |
430 | 242 ${code_SOURCE_DIR}/C++/tests/Ini/configs/lists.conf |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
243 ${code_SOURCE_DIR}/C++/tests/Ini/configs/multi.conf |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
244 ${code_SOURCE_DIR}/C++/tests/Ini/configs/novalue.conf |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
245 ${code_SOURCE_DIR}/C++/tests/Ini/configs/simple.conf |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
246 ${code_SOURCE_DIR}/C++/tests/Ini/configs/tokens.conf |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
247 ) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
248 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
249 # --------------------------------------------------------- |
391
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
250 # Js (Duktape) |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
251 # --------------------------------------------------------- |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
252 |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
253 define_module( |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
254 TARGET js |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
255 NAME Js |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
256 DIRECTORY Js |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
257 LIBRARIES duktape |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
258 SOURCES |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
259 ${code_SOURCE_DIR}/C++/modules/Js/Js.cpp |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
260 ${code_SOURCE_DIR}/C++/modules/Js/Js.h |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
261 ) |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
262 |
e2cefd0ee511
Add Js, Duktape wrapper
David Demelier <markand@malikania.fr>
parents:
381
diff
changeset
|
263 # --------------------------------------------------------- |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
264 # Json |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
265 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
266 |
359 | 267 if (Jansson_FOUND) |
268 define_module( | |
269 TARGET json | |
270 NAME Json | |
271 DIRECTORY Json | |
272 INCLUDES ${Jansson_INCLUDE_DIRS} | |
273 LIBRARIES ${Jansson_LIBRARIES} | |
274 SOURCES | |
275 ${code_SOURCE_DIR}/C++/modules/Json/Json.cpp | |
276 ${code_SOURCE_DIR}/C++/modules/Json/Json.h | |
277 RESOURCES | |
278 ${code_SOURCE_DIR}/C++/tests/Json/data/array-all.json | |
279 ${code_SOURCE_DIR}/C++/tests/Json/data/array.json | |
280 ${code_SOURCE_DIR}/C++/tests/Json/data/object-all.json | |
281 ${code_SOURCE_DIR}/C++/tests/Json/data/object.json | |
282 ${code_SOURCE_DIR}/C++/tests/Json/data/simple.json | |
283 ) | |
284 endif () | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
285 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
286 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
287 # OptionParser |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
288 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
289 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
290 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
291 TARGET optionparser |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
292 NAME OptionParser |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
293 DIRECTORY OptionParser |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
294 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
295 ${code_SOURCE_DIR}/C++/modules/OptionParser/OptionParser.cpp |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
296 ${code_SOURCE_DIR}/C++/modules/OptionParser/OptionParser.h |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
297 ) |
261
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
258
diff
changeset
|
298 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
299 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
300 # Sockets |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
301 # --------------------------------------------------------- |
223 | 302 |
359 | 303 if (OPENSSL_FOUND) |
304 if (WIN32) | |
305 set(SOCKET_LIBRARIES ws2_32) | |
306 endif () | |
335
486767e1d165
Socket: fix under Windows and add new style
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
307 |
359 | 308 define_module( |
309 TARGET socket | |
310 NAME Socket | |
311 DIRECTORY Socket | |
312 INCLUDES ${OPENSSL_INCLUDE_DIR} | |
313 LIBRARIES | |
314 ${SOCKET_LIBRARIES} | |
315 ${OPENSSL_LIBRARIES} | |
316 SOURCES | |
431
7f01d500460a
Sockets: begin of massive refactoring and redesign
David Demelier <markand@malikania.fr>
parents:
430
diff
changeset
|
317 ${code_SOURCE_DIR}/C++/modules/Socket/Sockets.cpp |
7f01d500460a
Sockets: begin of massive refactoring and redesign
David Demelier <markand@malikania.fr>
parents:
430
diff
changeset
|
318 ${code_SOURCE_DIR}/C++/modules/Socket/Sockets.h |
447
828d3dc89f2d
Socket: use own tests for SSL
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
319 RESOURCES |
828d3dc89f2d
Socket: use own tests for SSL
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
320 ${code_SOURCE_DIR}/C++/tests/Socket/test.crt |
828d3dc89f2d
Socket: use own tests for SSL
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
321 ${code_SOURCE_DIR}/C++/tests/Socket/test.key |
359 | 322 ) |
323 endif () | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
324 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
325 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
326 # Treenode |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
327 # --------------------------------------------------------- |
311 | 328 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
329 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
330 TARGET treenode |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
331 NAME Treenode |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
332 DIRECTORY Treenode |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
333 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
334 ${code_SOURCE_DIR}/C++/modules/Treenode/TreeNode.h |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
335 ) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
336 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
337 # --------------------------------------------------------- |
358 | 338 # Unicode |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
339 # --------------------------------------------------------- |
325
d52a69f9f029
Add Ini, brand new replacement for Parser
David Demelier <markand@malikania.fr>
parents:
311
diff
changeset
|
340 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
341 define_module( |
351 | 342 TARGET unicode |
343 NAME Unicode | |
344 DIRECTORY Unicode | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
345 SOURCES |
351 | 346 ${code_SOURCE_DIR}/C++/modules/Unicode/Unicode.cpp |
347 ${code_SOURCE_DIR}/C++/modules/Unicode/Unicode.h | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
348 ) |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
349 |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
350 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
351 # Xdg |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
352 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
353 |
359 | 354 if (UNIX) |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
355 define_module( |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
356 TARGET xdg |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
357 NAME Xdg |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
358 DIRECTORY Xdg |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
359 SOURCES |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
360 ${code_SOURCE_DIR}/C++/modules/Xdg/Xdg.cpp |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
361 ${code_SOURCE_DIR}/C++/modules/Xdg/Xdg.h |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
362 ) |
359 | 363 endif () |
236 | 364 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
365 # --------------------------------------------------------- |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
366 # Zip |
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
325
diff
changeset
|
367 # --------------------------------------------------------- |
224
ca69910b1407
Parser: add tests (and fix #270)
David Demelier <markand@malikania.fr>
parents:
223
diff
changeset
|
368 |
359 | 369 if (ZIP_FOUND) |
370 define_module( | |
371 TARGET zip | |
372 NAME Zip | |
373 DIRECTORY Zip | |
374 INCLUDES ${ZIP_INCLUDE_DIRS} | |
375 LIBRARIES ${ZIP_LIBRARIES} | |
376 RESOURCES | |
377 ${code_SOURCE_DIR}/C++/tests/Zip/data/data.txt | |
378 ${code_SOURCE_DIR}/C++/tests/Zip/data/stats.zip | |
379 SOURCES | |
380 ${code_SOURCE_DIR}/C++/modules/Zip/ZipArchive.cpp | |
381 ${code_SOURCE_DIR}/C++/modules/Zip/ZipArchive.h | |
382 ) | |
383 endif () |