1# ##################################################################################################
2# ALibSources.cmake - CMake file for projects using ALib
4# Copyright 2015-2024 A-Worx GmbH, Germany
5# Published under 'Boost Software License' (a free software license, see LICENSE.txt)
8# Selects source and header files in lists ALIB_SOURCE_FILES and ALIB_INCLUDE_FILES, depending
9# on the selected modules listed in ALIB_DISTRIBUTION.
11# If variable ALIB_SOURCE_COPY_TARGET_DIR is defined, then the sources are copied to the
14# This CMake file is included by "ALib.cmake" automatically and is not intended for manual
15# inclusion. Its contents was separated into a separated cmake file solely for clarity.
16# ##################################################################################################
17if( NOT DEFINED ALIB_SOURCE_DIR )
18 set ( ALIB_SOURCE_DIR ${ALIB_BASE_DIR}/src )
21SET( ALIB_SOURCE_FILES "" )
22SET( ALIB_INCLUDE_FILES "" )
24# ---------- general files, always included -------
27list( APPEND ALIB_INCLUDE_FILES alib/alib.hpp )
28list( APPEND ALIB_INCLUDE_FILES alib/alib_precompile.hpp )
29list( APPEND ALIB_INCLUDE_FILES alib/alox.hpp )
30list( APPEND ALIB_SOURCE_FILES alib/alib.cpp )
33list( APPEND ALIB_INCLUDE_FILES alib/lang/bidilist.hpp )
34list( APPEND ALIB_INCLUDE_FILES alib/lang/bits.hpp )
35list( APPEND ALIB_INCLUDE_FILES alib/lang/bitset.hpp )
36list( APPEND ALIB_INCLUDE_FILES alib/lang/commonenumdefs.hpp )
37list( APPEND ALIB_INCLUDE_FILES alib/lang/commonenums.hpp )
38list( APPEND ALIB_INCLUDE_FILES alib/lang/dbgtypedemangler.hpp )
39list( APPEND ALIB_INCLUDE_FILES alib/lang/integers.hpp )
40list( APPEND ALIB_INCLUDE_FILES alib/lang/owner.hpp )
41list( APPEND ALIB_INCLUDE_FILES alib/lang/platformincludes.hpp )
42list( APPEND ALIB_INCLUDE_FILES alib/lang/plugins.hpp )
43list( APPEND ALIB_INCLUDE_FILES alib/lang/sidilist.hpp )
44list( APPEND ALIB_INCLUDE_FILES alib/lang/tmp.hpp )
47#--------- compatibility headers ---------
48if( "CHARACTERS" IN_LIST ALIB_DISTRIBUTION )
49 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/std_characters.hpp )
50 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/qt_characters.hpp )
53if( "BOXING" IN_LIST ALIB_DISTRIBUTION )
54 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/std_boxing.hpp )
55 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/std_boxing_functional.hpp )
56 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/qt_boxing.hpp )
59if( "BOXING" IN_LIST ALIB_DISTRIBUTION
60 OR "SINGLETONS" IN_LIST ALIB_DISTRIBUTION )
61 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/std_typeinfo.hpp )
65if( "STRINGS" IN_LIST ALIB_DISTRIBUTION )
66 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/std_strings_functional.hpp)
67 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/std_strings_iostream.hpp )
68 list( APPEND ALIB_SOURCE_FILES alib/compatibility/std_strings_iostream.cpp )
69 list( APPEND ALIB_INCLUDE_FILES alib/compatibility/qt_strings.hpp )
72################################# Normal Modules #############################
74if( "BITBUFFER" IN_LIST ALIB_DISTRIBUTION )
75 list( APPEND ALIB_INCLUDE_FILES alib/bitbuffer/arraycompressor.hpp )
76 list( APPEND ALIB_INCLUDE_FILES alib/bitbuffer/bitbuffer.hpp )
77 list( APPEND ALIB_INCLUDE_FILES alib/bitbuffer/ac_v1/acalgos.inl )
78 list( APPEND ALIB_INCLUDE_FILES alib/bitbuffer/ac_v1/ac.hpp )
79 list( APPEND ALIB_INCLUDE_FILES alib/bitbuffer/ac_v1/huffman.hpp )
81 list( APPEND ALIB_SOURCE_FILES alib/bitbuffer/bitbuffer.cpp )
82 list( APPEND ALIB_SOURCE_FILES alib/bitbuffer/ac_v1/ac.cpp )
83 list( APPEND ALIB_SOURCE_FILES alib/bitbuffer/ac_v1/huffman.cpp )
86if( "BOXING" IN_LIST ALIB_DISTRIBUTION )
87 list( APPEND ALIB_INCLUDE_FILES alib/boxing/box.inl )
88 list( APPEND ALIB_INCLUDE_FILES alib/boxing/boxes.inl )
89 list( APPEND ALIB_INCLUDE_FILES alib/boxing/boxing.hpp )
90 list( APPEND ALIB_INCLUDE_FILES alib/boxing/customizations.inl )
91 list( APPEND ALIB_INCLUDE_FILES alib/boxing/dbgboxing.hpp )
92 list( APPEND ALIB_INCLUDE_FILES alib/boxing/enum.hpp )
93 list( APPEND ALIB_INCLUDE_FILES alib/boxing/fwds.hpp )
94 list( APPEND ALIB_INCLUDE_FILES alib/boxing/functions.inl )
95 list( APPEND ALIB_INCLUDE_FILES alib/boxing/functiondefs.inl )
96 list( APPEND ALIB_INCLUDE_FILES alib/boxing/placeholder.inl )
97 list( APPEND ALIB_INCLUDE_FILES alib/boxing/typetraits.inl )
98 list( APPEND ALIB_INCLUDE_FILES alib/boxing/detail/vtable.inl )
100 list( APPEND ALIB_SOURCE_FILES alib/boxing/boxes.cpp )
101 list( APPEND ALIB_SOURCE_FILES alib/boxing/boxing.cpp )
102 list( APPEND ALIB_SOURCE_FILES alib/boxing/dbgboxing.cpp )
103 list( APPEND ALIB_SOURCE_FILES alib/boxing/detail/vtable.cpp )
107if( "CHARACTERS" IN_LIST ALIB_DISTRIBUTION )
108 list( APPEND ALIB_INCLUDE_FILES alib/characters/characters.hpp )
109 list( APPEND ALIB_INCLUDE_FILES alib/characters/chararray.hpp )
110 list( APPEND ALIB_SOURCE_FILES alib/characters/chararray.cpp )
113if( "ENUMS" IN_LIST ALIB_DISTRIBUTION )
114 list( APPEND ALIB_INCLUDE_FILES alib/enums/arithmetical.hpp )
115 list( APPEND ALIB_INCLUDE_FILES alib/enums/bitwise.hpp )
116 list( APPEND ALIB_INCLUDE_FILES alib/enums/bitwise_iterable_conversion.hpp )
117 list( APPEND ALIB_INCLUDE_FILES alib/enums/iterable.hpp )
118 list( APPEND ALIB_INCLUDE_FILES alib/enums/records.hpp )
119 list( APPEND ALIB_INCLUDE_FILES alib/enums/recordbootstrap.hpp )
120 list( APPEND ALIB_INCLUDE_FILES alib/enums/underlyingintegral.hpp )
121 list( APPEND ALIB_INCLUDE_FILES alib/enums/detail/enumrecords.inl )
123 list( APPEND ALIB_SOURCE_FILES alib/enums/records.cpp )
125 if( "STRINGS" IN_LIST ALIB_DISTRIBUTION )
126 list( APPEND ALIB_INCLUDE_FILES alib/enums/recordparser.hpp )
127 list( APPEND ALIB_INCLUDE_FILES alib/enums/serialization.hpp )
131if( "MONOMEM" IN_LIST ALIB_DISTRIBUTION )
132 list( APPEND ALIB_INCLUDE_FILES alib/monomem/detail/hashtablebase.inl )
133 list( APPEND ALIB_INCLUDE_FILES alib/monomem/detail/recycler.inl )
134 list( APPEND ALIB_INCLUDE_FILES alib/monomem/fwds.hpp )
135 list( APPEND ALIB_INCLUDE_FILES alib/monomem/hashmap.hpp )
136 list( APPEND ALIB_INCLUDE_FILES alib/monomem/hashset.hpp )
137 list( APPEND ALIB_INCLUDE_FILES alib/monomem/hashtable.hpp )
138 list( APPEND ALIB_INCLUDE_FILES alib/monomem/list.hpp )
139 list( APPEND ALIB_INCLUDE_FILES alib/monomem/mastring.hpp )
140 list( APPEND ALIB_INCLUDE_FILES alib/monomem/monomem.hpp )
141 list( APPEND ALIB_INCLUDE_FILES alib/monomem/monoallocator.hpp )
142 list( APPEND ALIB_INCLUDE_FILES alib/monomem/selfcontained.hpp )
143 list( APPEND ALIB_INCLUDE_FILES alib/monomem/stdcontainerma.hpp )
144 list( APPEND ALIB_INCLUDE_FILES alib/monomem/util/fixedcapacityvector.hpp)
145 list( APPEND ALIB_INCLUDE_FILES alib/monomem/util/rttrallocator.hpp )
147 list( APPEND ALIB_SOURCE_FILES alib/monomem/detail/hashtablebase.cpp )
148 list( APPEND ALIB_SOURCE_FILES alib/monomem/monoallocator.cpp )
150 if( "STRINGS" IN_LIST ALIB_DISTRIBUTION )
151 list( APPEND ALIB_INCLUDE_FILES alib/monomem/stringtree.hpp )
152 list( APPEND ALIB_INCLUDE_FILES alib/monomem/detail/stringtreebase.inl )
156if( "SINGLETONS" IN_LIST ALIB_DISTRIBUTION )
157 list( APPEND ALIB_INCLUDE_FILES alib/singletons/dbgsingletons.hpp )
158 list( APPEND ALIB_INCLUDE_FILES alib/singletons/singleton.hpp )
159 list( APPEND ALIB_SOURCE_FILES alib/singletons/singleton.cpp )
162if( "STRINGS" IN_LIST ALIB_DISTRIBUTION )
163 list( APPEND ALIB_INCLUDE_FILES alib/strings/appendables.inl )
164 list( APPEND ALIB_INCLUDE_FILES alib/strings/astring.hpp )
165 list( APPEND ALIB_INCLUDE_FILES alib/strings/chararraytraits.inl )
166 list( APPEND ALIB_INCLUDE_FILES alib/strings/cstring.hpp )
167 list( APPEND ALIB_INCLUDE_FILES alib/strings/format.hpp )
168 list( APPEND ALIB_INCLUDE_FILES alib/strings/fwds.hpp )
169 list( APPEND ALIB_INCLUDE_FILES alib/strings/numberformat.hpp )
170 list( APPEND ALIB_INCLUDE_FILES alib/strings/localstring.hpp )
171 list( APPEND ALIB_INCLUDE_FILES alib/strings/string.hpp )
172 list( APPEND ALIB_INCLUDE_FILES alib/strings/stringnzt.hpp )
173 list( APPEND ALIB_INCLUDE_FILES alib/strings/substring.hpp )
176 list( APPEND ALIB_SOURCE_FILES alib/strings/appendables.cpp )
177 list( APPEND ALIB_SOURCE_FILES alib/strings/astring.cpp )
178 list( APPEND ALIB_SOURCE_FILES alib/strings/numberformat.cpp )
179 list( APPEND ALIB_SOURCE_FILES alib/strings/string.cpp )
180 list( APPEND ALIB_SOURCE_FILES alib/strings/substring.cpp )
182 list( APPEND ALIB_INCLUDE_FILES alib/strings/detail/numberconversion.hpp )
183 list( APPEND ALIB_SOURCE_FILES alib/strings/detail/numberconversion.cpp )
186 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/autosizes.hpp )
187 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/regexmatcher.hpp )
188 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/spaces.hpp )
189 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/subsearch.hpp )
190 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/token.hpp )
191 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/tokenizer.hpp )
192 list( APPEND ALIB_INCLUDE_FILES alib/strings/util/wildcardmatcher.hpp )
194 list( APPEND ALIB_SOURCE_FILES alib/strings/util/autosizes.cpp )
195 list( APPEND ALIB_SOURCE_FILES alib/strings/util/regexmatcher.cpp )
196 list( APPEND ALIB_SOURCE_FILES alib/strings/util/spaces.cpp )
197 list( APPEND ALIB_SOURCE_FILES alib/strings/util/subsearch.cpp )
198 list( APPEND ALIB_SOURCE_FILES alib/strings/util/token.cpp )
199 list( APPEND ALIB_SOURCE_FILES alib/strings/util/tokenizer.cpp )
200 list( APPEND ALIB_SOURCE_FILES alib/strings/util/wildcardmatcher.cpp )
204if( "THREADS" IN_LIST ALIB_DISTRIBUTION )
205 list( APPEND ALIB_INCLUDE_FILES alib/threads/detail/threadmap.hpp )
206 list( APPEND ALIB_INCLUDE_FILES alib/threads/smartlock.hpp )
207 list( APPEND ALIB_INCLUDE_FILES alib/threads/thread.hpp )
208 list( APPEND ALIB_INCLUDE_FILES alib/threads/threadlock.hpp )
209 list( APPEND ALIB_INCLUDE_FILES alib/threads/threadlocknr.hpp )
210 list( APPEND ALIB_INCLUDE_FILES alib/threads/sleeper.hpp )
212 list( APPEND ALIB_SOURCE_FILES alib/threads/smartlock.cpp )
213 list( APPEND ALIB_SOURCE_FILES alib/threads/thread.cpp )
214 list( APPEND ALIB_SOURCE_FILES alib/threads/threadlock.cpp )
216 list( APPEND ALIB_INCLUDE_FILES alib/threads/model/triggered.hpp )
217 list( APPEND ALIB_INCLUDE_FILES alib/threads/model/mthread.hpp )
218 list( APPEND ALIB_INCLUDE_FILES alib/threads/model/mthreadtriggered.hpp )
219 list( APPEND ALIB_INCLUDE_FILES alib/threads/model/threadmanager.hpp )
220 list( APPEND ALIB_INCLUDE_FILES alib/threads/model/trequest.hpp )
222 list( APPEND ALIB_SOURCE_FILES alib/threads/model/mthread.cpp )
223 list( APPEND ALIB_SOURCE_FILES alib/threads/model/threadmanager.cpp )
224 list( APPEND ALIB_SOURCE_FILES alib/threads/model/trequest.cpp )
227if( "TIME" IN_LIST ALIB_DISTRIBUTION )
228 list( APPEND ALIB_INCLUDE_FILES alib/time/datetime.hpp )
229 list( APPEND ALIB_INCLUDE_FILES alib/time/stopwatch.hpp )
230 list( APPEND ALIB_INCLUDE_FILES alib/time/tickconverter.hpp )
231 list( APPEND ALIB_INCLUDE_FILES alib/time/ticks.hpp )
232 list( APPEND ALIB_INCLUDE_FILES alib/time/time.hpp )
233 list( APPEND ALIB_INCLUDE_FILES alib/time/timepointbase.hpp )
235 list( APPEND ALIB_SOURCE_FILES alib/time/time.cpp )
239######################################### Camp Modules #########################################
241################################## BASE ##################################
242if( "CAMP" IN_LIST ALIB_DISTRIBUTION )
245 list( APPEND ALIB_INCLUDE_FILES alib/lang/basecamp/basecamp.hpp )
246 list( APPEND ALIB_INCLUDE_FILES alib/lang/basecamp/camp.hpp )
247 list( APPEND ALIB_INCLUDE_FILES alib/lang/basecamp/camp_inlines.hpp )
248 list( APPEND ALIB_INCLUDE_FILES alib/lang/basecamp/bootstrap.hpp )
250 list( APPEND ALIB_SOURCE_FILES alib/lang/basecamp/basecamp.cpp )
251 list( APPEND ALIB_SOURCE_FILES alib/lang/basecamp/bootstrap.cpp )
254 list( APPEND ALIB_INCLUDE_FILES alib/lang/system/calendar.hpp )
255 list( APPEND ALIB_INCLUDE_FILES alib/lang/system/console.hpp )
256 list( APPEND ALIB_INCLUDE_FILES alib/lang/system/directory.hpp )
257 list( APPEND ALIB_INCLUDE_FILES alib/lang/system/environment.hpp )
258 list( APPEND ALIB_INCLUDE_FILES alib/lang/system/processinfo.hpp )
259 list( APPEND ALIB_INCLUDE_FILES alib/lang/system/systemerrors.hpp )
261 list( APPEND ALIB_SOURCE_FILES alib/lang/system/calendar.cpp )
262 list( APPEND ALIB_SOURCE_FILES alib/lang/system/console.cpp )
263 list( APPEND ALIB_SOURCE_FILES alib/lang/system/directory.cpp )
264 list( APPEND ALIB_SOURCE_FILES alib/lang/system/environment.cpp )
265 list( APPEND ALIB_SOURCE_FILES alib/lang/system/processinfo.cpp )
267 list( APPEND ALIB_SOURCE_FILES alib/lang/system/directory.mm )
272 #### BASE/resources ###
273 list( APPEND ALIB_INCLUDE_FILES alib/lang/resources/localresourcepool.hpp )
274 list( APPEND ALIB_INCLUDE_FILES alib/lang/resources/resources.hpp )
275 list( APPEND ALIB_INCLUDE_FILES alib/lang/resources/detail/resourcemap.hpp )
277 list( APPEND ALIB_SOURCE_FILES alib/lang/resources/localresourcepool.cpp )
280 if( "CONFIGURATION" IN_LIST ALIB_DISTRIBUTION )
281 list( APPEND ALIB_INCLUDE_FILES alib/lang/resources/configresourcepool.hpp )
282 list( APPEND ALIB_SOURCE_FILES alib/lang/resources/configresourcepool.cpp )
285 #### BASE/message ###
286 list( APPEND ALIB_INCLUDE_FILES alib/lang/message/exception.hpp )
287 list( APPEND ALIB_INCLUDE_FILES alib/lang/message/message.hpp )
288 list( APPEND ALIB_INCLUDE_FILES alib/lang/message/report.hpp )
290 list( APPEND ALIB_SOURCE_FILES alib/lang/message/exception.cpp )
291 list( APPEND ALIB_SOURCE_FILES alib/lang/message/report.cpp )
294 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/bytesize.hpp )
295 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/fmtexceptions.hpp )
296 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/formatter.hpp )
297 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/formatterjavastyle.hpp )
298 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/formatterpythonstyle.hpp )
299 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/formatterstdimpl.hpp )
300 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/fwds.hpp )
301 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/propertyformatter.hpp )
302 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/propertyformatters.hpp )
303 list( APPEND ALIB_INCLUDE_FILES alib/lang/format/paragraphs.hpp )
305 list( APPEND ALIB_SOURCE_FILES alib/lang/format/formatter.cpp )
306 list( APPEND ALIB_SOURCE_FILES alib/lang/format/formatterjavastyle.cpp )
307 list( APPEND ALIB_SOURCE_FILES alib/lang/format/formatterpythonstyle.cpp )
308 list( APPEND ALIB_SOURCE_FILES alib/lang/format/formatterstdimpl.cpp )
309 list( APPEND ALIB_SOURCE_FILES alib/lang/format/propertyformatter.cpp )
310 list( APPEND ALIB_SOURCE_FILES alib/lang/format/paragraphs.cpp )
313if( "ALOX" IN_LIST ALIB_DISTRIBUTION )
314 list( APPEND ALIB_INCLUDE_FILES alib/alox/alox.hpp )
315 list( APPEND ALIB_INCLUDE_FILES alib/alox/aloxmodule.hpp )
316 list( APPEND ALIB_INCLUDE_FILES alib/alox/log.inl )
317 list( APPEND ALIB_INCLUDE_FILES alib/alox/logtools.hpp )
318 list( APPEND ALIB_INCLUDE_FILES alib/alox/lox.inl )
319 list( APPEND ALIB_INCLUDE_FILES alib/alox/macros.inl )
320 list( APPEND ALIB_INCLUDE_FILES alib/alox/reportwriter.hpp )
322 list( APPEND ALIB_SOURCE_FILES alib/alox/aloxmodule.cpp )
323 list( APPEND ALIB_SOURCE_FILES alib/alox/log.cpp )
324 list( APPEND ALIB_SOURCE_FILES alib/alox/logtools.cpp )
325 list( APPEND ALIB_SOURCE_FILES alib/alox/reportwriter.cpp )
327 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/domain.inl )
328 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/logger.hpp )
329 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/loxpimpl.inl )
330 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/scopedump.inl )
331 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/scopeinfo.inl )
332 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/scopestore.inl )
334 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/domain.cpp )
335 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/loxpimpl.cpp )
336 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/scopedump.cpp )
337 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/scopeinfo.cpp )
338 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/scopestore.cpp )
340 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/textlogger/plaintextlogger.hpp )
341 list( APPEND ALIB_INCLUDE_FILES alib/alox/detail/textlogger/textlogger.hpp )
342 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/textlogger/plaintextlogger.cpp )
343 list( APPEND ALIB_SOURCE_FILES alib/alox/detail/textlogger/textlogger.cpp )
345 list( APPEND ALIB_INCLUDE_FILES alib/alox/loggers/ansilogger.hpp )
346 list( APPEND ALIB_INCLUDE_FILES alib/alox/loggers/consolelogger.hpp )
347 list( APPEND ALIB_INCLUDE_FILES alib/alox/loggers/memorylogger.hpp )
348 list( APPEND ALIB_INCLUDE_FILES alib/alox/loggers/textfilelogger.hpp )
349 list( APPEND ALIB_INCLUDE_FILES alib/alox/loggers/vstudiologger.hpp )
350 list( APPEND ALIB_INCLUDE_FILES alib/alox/loggers/windowsconsolelogger.hpp )
352 list( APPEND ALIB_SOURCE_FILES alib/alox/loggers/ansilogger.cpp )
353 list( APPEND ALIB_SOURCE_FILES alib/alox/loggers/consolelogger.cpp )
354 list( APPEND ALIB_SOURCE_FILES alib/alox/loggers/textfilelogger.cpp )
355 list( APPEND ALIB_SOURCE_FILES alib/alox/loggers/vstudiologger.cpp )
356 list( APPEND ALIB_SOURCE_FILES alib/alox/loggers/windowsconsolelogger.cpp )
360if( "CONFIGURATION" IN_LIST ALIB_DISTRIBUTION )
361 list( APPEND ALIB_INCLUDE_FILES alib/config/config.hpp )
362 list( APPEND ALIB_INCLUDE_FILES alib/config/configuration.hpp )
363 list( APPEND ALIB_INCLUDE_FILES alib/config/inifile.hpp )
364 list( APPEND ALIB_INCLUDE_FILES alib/config/inmemoryplugin.hpp )
365 list( APPEND ALIB_INCLUDE_FILES alib/config/plugins.hpp )
366 list( APPEND ALIB_INCLUDE_FILES alib/config/priorities.hpp )
367 list( APPEND ALIB_INCLUDE_FILES alib/config/variable.hpp )
368 list( APPEND ALIB_INCLUDE_FILES alib/config/variabledecl.hpp )
370 list( APPEND ALIB_SOURCE_FILES alib/config/config.cpp )
371 list( APPEND ALIB_SOURCE_FILES alib/config/configuration.cpp )
372 list( APPEND ALIB_SOURCE_FILES alib/config/inifile.cpp )
373 list( APPEND ALIB_SOURCE_FILES alib/config/inmemoryplugin.cpp )
374 list( APPEND ALIB_SOURCE_FILES alib/config/plugins.cpp )
375 list( APPEND ALIB_SOURCE_FILES alib/config/variable.cpp )
378if( "CLI" IN_LIST ALIB_DISTRIBUTION )
379 list( APPEND ALIB_INCLUDE_FILES alib/cli/arguments.hpp )
380 list( APPEND ALIB_INCLUDE_FILES alib/cli/cli.hpp )
381 list( APPEND ALIB_INCLUDE_FILES alib/cli/cliutil.hpp )
382 list( APPEND ALIB_INCLUDE_FILES alib/cli/commandline.hpp )
384 list( APPEND ALIB_SOURCE_FILES alib/cli/arguments.cpp )
385 list( APPEND ALIB_SOURCE_FILES alib/cli/cli.cpp )
386 list( APPEND ALIB_SOURCE_FILES alib/cli/cliutil.cpp )
387 list( APPEND ALIB_SOURCE_FILES alib/cli/commandline.cpp )
390if( "EXPRESSIONS" IN_LIST ALIB_DISTRIBUTION )
391 list( APPEND ALIB_INCLUDE_FILES alib/expressions/compiler.hpp )
392 list( APPEND ALIB_INCLUDE_FILES alib/expressions/compilerplugin.hpp )
393 list( APPEND ALIB_INCLUDE_FILES alib/expressions/expression.hpp )
394 list( APPEND ALIB_INCLUDE_FILES alib/expressions/expressions.hpp )
395 list( APPEND ALIB_INCLUDE_FILES alib/expressions/scope.hpp )
397 list( APPEND ALIB_SOURCE_FILES alib/expressions/compiler.cpp )
398 list( APPEND ALIB_SOURCE_FILES alib/expressions/expression.cpp )
399 list( APPEND ALIB_SOURCE_FILES alib/expressions/expressions.cpp )
401 list( APPEND ALIB_INCLUDE_FILES alib/expressions/detail/ast.hpp )
402 list( APPEND ALIB_INCLUDE_FILES alib/expressions/detail/parser.hpp )
403 list( APPEND ALIB_INCLUDE_FILES alib/expressions/detail/parser_impl.hpp )
404 list( APPEND ALIB_INCLUDE_FILES alib/expressions/detail/program.hpp )
405 list( APPEND ALIB_INCLUDE_FILES alib/expressions/detail/virtualmachine.hpp )
407 list( APPEND ALIB_SOURCE_FILES alib/expressions/detail/ast.cpp )
408 list( APPEND ALIB_SOURCE_FILES alib/expressions/detail/parser.cpp )
409 list( APPEND ALIB_SOURCE_FILES alib/expressions/detail/parser_impl.cpp )
410 list( APPEND ALIB_SOURCE_FILES alib/expressions/detail/program.cpp )
411 list( APPEND ALIB_SOURCE_FILES alib/expressions/detail/virtualmachine.cpp )
413 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/arithmetics.hpp )
414 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/autocast.hpp )
415 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/calculus.hpp )
416 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/elvisoperator.hpp )
417 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/math.hpp )
418 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/strings.hpp )
420 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/arithmetics.cpp )
421 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/autocast.cpp )
422 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/calculus.cpp )
423 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/elvisoperator.cpp )
424 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/math.cpp )
425 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/strings.cpp )
427 list( APPEND ALIB_INCLUDE_FILES alib/expressions/util/expressionformatter.hpp)
428 list( APPEND ALIB_SOURCE_FILES alib/expressions/util/expressionformatter.cpp)
430 if( "CAMP" IN_LIST ALIB_DISTRIBUTION )
431 list( APPEND ALIB_INCLUDE_FILES alib/expressions/plugins/dateandtime.hpp )
432 list( APPEND ALIB_SOURCE_FILES alib/expressions/plugins/dateandtime.cpp )
434 if( "CONFIGURATION" IN_LIST ALIB_DISTRIBUTION )
435 list( APPEND ALIB_INCLUDE_FILES alib/expressions/standardrepository.hpp )
436 list( APPEND ALIB_SOURCE_FILES alib/expressions/standardrepository.cpp )
441if( "FILES" IN_LIST ALIB_DISTRIBUTION )
442 list( APPEND ALIB_INCLUDE_FILES alib/files/ffilter.hpp )
443 list( APPEND ALIB_INCLUDE_FILES alib/files/filescamp.hpp )
444 list( APPEND ALIB_INCLUDE_FILES alib/files/finfo.hpp )
445 list( APPEND ALIB_INCLUDE_FILES alib/files/fscanner.hpp )
446 list( APPEND ALIB_INCLUDE_FILES alib/files/ftools.hpp )
447 list( APPEND ALIB_INCLUDE_FILES alib/files/ftree.hpp )
448 list( APPEND ALIB_INCLUDE_FILES alib/files/textfile.hpp )
450 list( APPEND ALIB_SOURCE_FILES alib/files/filescamp.cpp )
451 list( APPEND ALIB_SOURCE_FILES alib/files/finfo.cpp )
452 list( APPEND ALIB_SOURCE_FILES alib/files/fscanner.cpp )
453 list( APPEND ALIB_SOURCE_FILES alib/files/ftools.cpp )
454 list( APPEND ALIB_SOURCE_FILES alib/files/ftree.cpp )
455 list( APPEND ALIB_SOURCE_FILES alib/files/textfile.cpp )
457 if( "EXPRESSIONS" IN_LIST ALIB_DISTRIBUTION )
458 list( APPEND ALIB_INCLUDE_FILES alib/files/fileexpressions.hpp )
459 list( APPEND ALIB_SOURCE_FILES alib/files/fileexpressions.cpp )
467# ##################################################################################################
468# Check for duplicates. This is a pure double-check to detect that this script needs changes.
469# ##################################################################################################
471CollectAndRemoveDuplicates( "ALIB_INCLUDE_FILES" "duplicates" )
472LIST( LENGTH duplicates qtyDuplicates )
476IF( ${qtyDuplicates} GREATER 0 )
477 message( WARNING "Internal script error ALIBSources.cmake: "
478 "DUPLICATE HEADER FILES FOUND.\nSee list below! "
479 "(Processing continues with de-duplicated list)" )
480 message( STATUS "LIST OF DUPLICATE HEADER FILES:" )
481 LIST(SORT duplicates)
482 FOREACH( entry IN LISTS duplicates )
483 message( STATUS " ${entry}" )
485 message( STATUS "(end of list)" )
488CollectAndRemoveDuplicates( "ALIB_SOURCE_FILES" "duplicates" )
489LIST( LENGTH duplicates qtyDuplicates )
490IF( ${qtyDuplicates} GREATER 0 )
491 message( WARNING "Internal script error ALIBSources.cmake: "
492 "DUPLICATE SOURCE FILES FOUND.\nSee list below! "
493 "(Processing continues with de-duplicated list)" )
494 message( STATUS "LIST OF DUPLICATE SOURCE FILES:" )
495 LIST(SORT duplicates)
496 FOREACH( entry IN LISTS duplicates )
497 message( STATUS " ${entry}" )
499 message( STATUS "(end of list)" )
502# ##################################################################################################
503# Check for ".hpp" in header files or ".cpp" in sources
504# ##################################################################################################
505FOREACH( entry IN LISTS ALIB_INCLUDE_FILES )
506 IF( NOT ${entry} MATCHES "([.]inl$)|([.]hpp$)" )
507 message( FATAL_ERROR "Non-header file (wrong extension) found in header file list: ${entry}" )
511FOREACH( entry IN LISTS ALIB_SOURCE_FILES )
512 IF( NOT ${entry} MATCHES "([.]mm$)|([.]cpp$)" )
513 message( FATAL_ERROR "File with wrong extension found in source file list: ${entry}" )
517# ##################################################################################################
518# Copy sources if requested
519# ##################################################################################################
520if( ALIB_SOURCE_COPY_TARGET_DIR )
522 if( ${ALIB_SOURCE_COPY_TARGET_DIR} EQUAL ${ALIB_SOURCE_DIR})
523 MESSAGE(FATAL_ERROR "Variable ALIB_SOURCE_COPY_TARGET_DIR=\"${ALIB_SOURCE_COPY_TARGET_DIR}\" "
524 "is set and equals ALIB_SOURCE_DIR. This would delete origninal sources!")
527 # Add the build type to the directory name. Otherwise, if CMake was executed for different
528 # configurations in parallel, a clash of file copy/delete operations may happen.
529 if( NOT IS_DIRECTORY ${ALIB_SOURCE_COPY_TARGET_DIR})
530 MESSAGE(FATAL_ERROR "Variable ALIB_SOURCE_COPY_TARGET_DIR=\"${ALIB_SOURCE_COPY_TARGET_DIR}\" "
531 "is set but is not a valid directory. Stopping here!" )
534 SET( ALIB_SOURCE_COPY_TARGET_DIR "${ALIB_SOURCE_COPY_TARGET_DIR}/${CMAKE_BUILD_TYPE}" )
536 MESSAGE( STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
537 MESSAGE( STATUS "!!! ATTENTION: Copying sources. !!!")
538 MESSAGE( STATUS "!!! Destination directory will be deleted, hence !!!")
539 MESSAGE( STATUS "!!! CHANGES WILL BE LOST with next CMake run! !!!")
540 MESSAGE( STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
541 MESSAGE( STATUS "Copying source files of selected ALib modules to: ’${ALIB_SOURCE_COPY_TARGET_DIR}’")
543 # delete destination directory
544 file( REMOVE_RECURSE ${ALIB_SOURCE_COPY_TARGET_DIR} )
546 #### copy compilation units ####
547 foreach( fileName IN LISTS ALIB_INCLUDE_FILES ALIB_SOURCE_FILES )
548 SET( destPath "${ALIB_SOURCE_COPY_TARGET_DIR}/${fileName}" )
549 get_filename_component(destPath ${destPath} DIRECTORY )
552 file( COPY "${ALIB_SOURCE_DIR}/${fileName}" DESTINATION "${destPath}" )
555 ### now also switch source base directories ###
556 set( ALIB_SOURCE_DIR ${ALIB_SOURCE_COPY_TARGET_DIR} )
559# ##################################################################################################
560# Add base directory to files
561# ##################################################################################################
563foreach( fileName IN LISTS ALIB_INCLUDE_FILES )
564 LIST( APPEND temp "${ALIB_SOURCE_DIR}/${fileName}" )
566SET( ALIB_INCLUDE_FILES ${temp} )
569foreach( fileName IN LISTS ALIB_SOURCE_FILES )
570 LIST( APPEND temp "${ALIB_SOURCE_DIR}/${fileName}" )
572SET( ALIB_SOURCE_FILES ${temp} )