ALib C++ Framework
by
Library Version: 2605 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
ALibSources.cmake
1# ##################################################################################################
2# ALibSources.cmake - CMake file for projects using ALib
3#
4# Copyright 2013-2026 A-Worx GmbH, Germany
5# Published under 'Boost Software License' (a free software license, see LICENSE.txt)
6#
7# Notes:
8# Selects source files in lists depending on the selected modules listed in variable
9# ALibBuild. The lists are:
10# - ALIB_H : C++ header file for external use with (both versions, C++20-Modules and legacy)
11# - ALIB_MACROS: Header file with mostly preprocessor macros.
12# - ALIB_MODIF: C++20-Module Interface Unit.
13# - ALIB_HPP: Header-file included by .H and .IXX files.
14# - ALIB_UNI: C++ source file compiled in legacy mode. Includes one or more CPP files.
15# - ALIB_MOD: C++ source file compiled in C++20-Module mode. Includes one or more CPP files.
16# - ALIB_CPP: C++ source files included by UNI and MOD files.
17# - ALIB_MOD: C++20-Module implementation unit.
18# - ALIB_RC: ALib resource files.
19# If variable ALIB_SOURCE_COPY_TARGET_DIR is defined, then the sources are copied to the
20# directory specified.
21#
22# This CMake file is included by "ALib.cmake" automatically and is not intended for manual
23# inclusion. Its contents was separated into a separated cmake file solely for clarity.
24# ##################################################################################################
25if( NOT DEFINED ALIB_SOURCE_DIR )
26 set ( ALIB_SOURCE_DIR ${ALIB_BASE_DIR}/src )
27endif()
28
29SET( ALIB_H "" )
30SET( ALIB_HPP "" )
31SET( ALIB_MODIF "" )
32SET( ALIB_UNI "" )
33SET( ALIB_MOD "" )
34SET( ALIB_CPP "" )
35SET( ALIB_MACROS "" )
36SET( ALIB_RC "" )
37
38
39# ---------- general files, always included -------
40
41# alib
42list( APPEND ALIB_H ALib.Lang.CIFunctions.H )
43list( APPEND ALIB_H ALib.Lang.CIMethods.H )
44
45list( APPEND ALIB_MACROS alib.prepro.hpp )
46list( APPEND ALIB_MACROS platform.prepro.hpp )
47
48list( APPEND ALIB_HPP lang/assert.hpp )
49list( APPEND ALIB_UNI lang/assert.uni.cpp )
50list( APPEND ALIB_MOD lang/assert.mod.cpp )
51list( APPEND ALIB_CPP lang/assert.cpp )
52list( APPEND ALIB_HPP lang/mainargs.hpp )
53list( APPEND ALIB_CPP lang/mainargs.cpp )
54list( APPEND ALIB_HPP lang/chk_nc.hpp )
55
56#alib.Bootstrap
57list( APPEND ALIB_H ALib.Bootstrap.H )
58list( APPEND ALIB_MODIF bootstrap/bootstrap.ixx )
59list( APPEND ALIB_HPP bootstrap/bootstrap.hpp )
60list( APPEND ALIB_MACROS bootstrap/bootstrap.prepro.hpp )
61list( APPEND ALIB_UNI bootstrap/bootstrap.uni.cpp )
62list( APPEND ALIB_MOD bootstrap/bootstrap.mod.cpp )
63list( APPEND ALIB_CPP bootstrap/bootstrap.cpp )
64
65
66# alib::lang
67list( APPEND ALIB_H ALib.Lang.H )
68list( APPEND ALIB_MODIF lang/lang.ixx )
69list( APPEND ALIB_HPP lang/allocation.hpp )
70list( APPEND ALIB_HPP lang/bidilist.hpp )
71list( APPEND ALIB_HPP lang/bits.hpp )
72list( APPEND ALIB_HPP lang/bitset.hpp )
73list( APPEND ALIB_HPP lang/callerinfo.hpp )
74list( APPEND ALIB_HPP lang/commonenumdefs.hpp )
75list( APPEND ALIB_HPP lang/dbgcriticalsections.hpp )
76list( APPEND ALIB_HPP lang/dbgtypedemangler.hpp )
77list( APPEND ALIB_CPP lang/dbgcriticalsections.cpp )
78list( APPEND ALIB_CPP lang/dbgtypedemangler.cpp )
79list( APPEND ALIB_UNI lang/lang.uni.cpp )
80list( APPEND ALIB_MOD lang/lang.mod.cpp )
81list( APPEND ALIB_HPP lang/integers.hpp )
82list( APPEND ALIB_HPP lang/owner.hpp )
83list( APPEND ALIB_HPP lang/placeholder.hpp )
84list( APPEND ALIB_HPP lang/plugins.hpp )
85list( APPEND ALIB_HPP lang/sidilist.hpp )
86list( APPEND ALIB_HPP lang/stdtypeinfofunctors.hpp )
87list( APPEND ALIB_HPP lang/tmp.hpp )
88
89# alib::time
90list( APPEND ALIB_H ALib.Time.H )
91list( APPEND ALIB_MOD time/time.mod.cpp )
92list( APPEND ALIB_MODIF time/time.ixx )
93list( APPEND ALIB_HPP time/datetime.hpp )
94list( APPEND ALIB_HPP time/stopwatch.hpp )
95list( APPEND ALIB_HPP time/tickconverter.hpp )
96list( APPEND ALIB_CPP time/datetime.cpp )
97list( APPEND ALIB_CPP time/tickconverter.cpp )
98list( APPEND ALIB_HPP time/ticks.hpp )
99list( APPEND ALIB_HPP time/timepointbase.hpp )
100list( APPEND ALIB_CPP time/time.cpp )
101
102# alib::threads
103list( APPEND ALIB_H ALib.Threads.H )
104list( APPEND ALIB_MODIF threads/threads.ixx )
105list( APPEND ALIB_HPP threads/thread.hpp )
106list( APPEND ALIB_HPP threads/lock.hpp )
107list( APPEND ALIB_HPP threads/recursivelock.hpp )
108list( APPEND ALIB_HPP threads/recursivetimedlock.hpp )
109list( APPEND ALIB_HPP threads/sharedlock.hpp )
110list( APPEND ALIB_HPP threads/sharedtimedlock.hpp )
111list( APPEND ALIB_HPP threads/timedlock.hpp )
112
113if( NOT ALIB_SINGLE_THREADED )
114 list( APPEND ALIB_MOD threads/threads.mod.cpp )
115 list( APPEND ALIB_HPP threads/dbgasserters.hpp )
116 list( APPEND ALIB_CPP threads/dbgasserters.cpp )
117 list( APPEND ALIB_HPP threads/condition.hpp )
118 list( APPEND ALIB_HPP threads/promise.hpp )
119 list( APPEND ALIB_CPP threads/promise.cpp )
120
121 list( APPEND ALIB_CPP threads/thread.cpp )
122 list( APPEND ALIB_CPP threads/locks.cpp )
123endif()
124
125list( APPEND ALIB_HPP characters/chartypes.hpp )
126list( APPEND ALIB_HPP characters/chartraits.hpp )
127list( APPEND ALIB_HPP characters/chartraits_stdtypes.hpp )
128list( APPEND ALIB_HPP characters/chartraits_qt.hpp )
129
130list( APPEND ALIB_H ALib.Characters.Functions.H )
131list( APPEND ALIB_MOD characters/functions.mod.cpp )
132list( APPEND ALIB_MODIF characters/functions.ixx )
133list( APPEND ALIB_HPP characters/functions.hpp )
134list( APPEND ALIB_CPP characters/functions.cpp )
135list( APPEND ALIB_H ALib.Compatibility.QTCharacters.H )
136
137list( APPEND ALIB_H ALib.EnumOps.H )
138list( APPEND ALIB_MODIF enumops/enumops.ixx )
139list( APPEND ALIB_MACROS enumops/enumops.prepro.hpp )
140list( APPEND ALIB_HPP enumops/underlyingintegral.hpp )
141list( APPEND ALIB_HPP enumops/arithmetical.hpp )
142list( APPEND ALIB_HPP enumops/bitwise.hpp )
143list( APPEND ALIB_HPP enumops/iterable.hpp )
144list( APPEND ALIB_HPP enumops/iterablebitset.hpp )
145list( APPEND ALIB_HPP enumops/bitwise_iterable_conversion.hpp )
146
147
148################################# Normal Modules #############################
149
150if( "ALOX" IN_LIST ALibBuild )
151 list( APPEND ALIB_H ALib.ALox.H )
152 list( APPEND ALIB_H ALib.ALox.Impl.H )
153 list( APPEND ALIB_MODIF alox/alox_init.ixx )
154 list( APPEND ALIB_HPP alox/alox_init.hpp )
155 list( APPEND ALIB_MODIF alox/alox_impl.ixx )
156 list( APPEND ALIB_MODIF alox/alox.ixx )
157 list( APPEND ALIB_MACROS alox/alox.prepro.hpp )
158 list( APPEND ALIB_HPP alox/aloxcamp.hpp )
159 list( APPEND ALIB_HPP alox/log.hpp )
160 list( APPEND ALIB_HPP alox/logtools.hpp )
161 list( APPEND ALIB_HPP alox/lox.hpp )
162
163 list( APPEND ALIB_MOD alox/aloxcamp.mod.cpp )
164 list( APPEND ALIB_CPP alox/aloxcamp.cpp )
165 list( APPEND ALIB_RC alox/aloxcamp.alibrc )
166 list( APPEND ALIB_MOD alox/aloxinit.mod.cpp )
167 list( APPEND ALIB_CPP alox/aloxinit.cpp )
168 list( APPEND ALIB_UNI alox/alox.uni.cpp )
169 list( APPEND ALIB_MOD alox/alox.mod.cpp )
170 list( APPEND ALIB_CPP alox/alox.cpp )
171 list( APPEND ALIB_MOD alox/logtools.mod.cpp )
172 list( APPEND ALIB_CPP alox/logtools.cpp )
173 list( APPEND ALIB_HPP alox/detail/domain.hpp )
174 list( APPEND ALIB_HPP alox/detail/logger.hpp )
175 list( APPEND ALIB_HPP alox/detail/loxpimpl.hpp )
176 list( APPEND ALIB_HPP alox/detail/scopedump.hpp )
177 list( APPEND ALIB_HPP alox/detail/scopeinfo.hpp )
178 list( APPEND ALIB_HPP alox/detail/scopestore.hpp )
179
180 list( APPEND ALIB_MOD alox/detail/domain.mod.cpp )
181 list( APPEND ALIB_CPP alox/detail/domain.cpp )
182 list( APPEND ALIB_UNI alox/detail/loxpimpl.uni.cpp )
183 list( APPEND ALIB_MOD alox/detail/loxpimpl.mod.cpp )
184 list( APPEND ALIB_CPP alox/detail/loxpimpl.cpp )
185 list( APPEND ALIB_MOD alox/detail/scopedump.mod.cpp )
186 list( APPEND ALIB_CPP alox/detail/scopedump.cpp )
187 list( APPEND ALIB_UNI alox/detail/scope_and_domain.uni.cpp )
188 list( APPEND ALIB_MOD alox/detail/scopeinfo.mod.cpp )
189 list( APPEND ALIB_CPP alox/detail/scopeinfo.cpp )
190 list( APPEND ALIB_UNI alox/detail/scopestore.uni.cpp )
191 list( APPEND ALIB_MOD alox/detail/scopestore.mod.cpp )
192 list( APPEND ALIB_CPP alox/detail/scopestore.cpp )
193
194 list( APPEND ALIB_HPP alox/textlogger/plaintextlogger.hpp )
195 list( APPEND ALIB_HPP alox/textlogger/textlogger.hpp )
196 list( APPEND ALIB_HPP alox/textlogger/variables.hpp )
197 list( APPEND ALIB_MOD alox/textlogger/plaintextlogger.mod.cpp )
198 list( APPEND ALIB_CPP alox/textlogger/plaintextlogger.cpp )
199 list( APPEND ALIB_MOD alox/textlogger/textlogger.mod.cpp )
200 list( APPEND ALIB_CPP alox/textlogger/textlogger.cpp )
201 list( APPEND ALIB_MOD alox/textlogger/variables.mod.cpp )
202 list( APPEND ALIB_CPP alox/textlogger/variables.cpp )
203
204 list( APPEND ALIB_HPP alox/loggers/ansilogger.hpp )
205 list( APPEND ALIB_HPP alox/loggers/consolelogger.hpp )
206 list( APPEND ALIB_HPP alox/loggers/memorylogger.hpp )
207 list( APPEND ALIB_HPP alox/loggers/textfilelogger.hpp )
208 list( APPEND ALIB_HPP alox/loggers/vstudiologger.hpp )
209 list( APPEND ALIB_HPP alox/loggers/windowsconsolelogger.hpp )
210 list( APPEND ALIB_CPP alox/loggers/ansilogger.cpp )
211 list( APPEND ALIB_CPP alox/loggers/consolelogger.cpp )
212 list( APPEND ALIB_CPP alox/loggers/textfilelogger.cpp )
213 list( APPEND ALIB_CPP alox/loggers/vstudiologger.cpp )
214 list( APPEND ALIB_CPP alox/loggers/windowsconsolelogger.cpp )
215
216 list( APPEND ALIB_MOD alox/loggers/loggers.mod.cpp )
217
218endif()
219
220if( "APP" IN_LIST ALibBuild )
221 list( APPEND ALIB_H ALib.App.H )
222 list( APPEND ALIB_UNI app/app.uni.cpp )
223 list( APPEND ALIB_UNI app/cli.uni.cpp )
224 list( APPEND ALIB_MOD app/app.mod.cpp )
225 list( APPEND ALIB_MOD app/cli.mod.cpp )
226 list( APPEND ALIB_MOD app/appcamp.mod.cpp )
227 list( APPEND ALIB_MACROS app/app.prepro.hpp )
228 list( APPEND ALIB_MODIF app/app.ixx )
229 list( APPEND ALIB_HPP app/app.hpp )
230 list( APPEND ALIB_HPP app/appcamp.hpp )
231 list( APPEND ALIB_HPP app/cli.hpp )
232 list( APPEND ALIB_HPP app/cliargtypes.hpp )
233 list( APPEND ALIB_HPP app/cliutil.hpp )
234 list( APPEND ALIB_CPP app/app.cpp )
235 list( APPEND ALIB_CPP app/appcamp.cpp )
236 list( APPEND ALIB_RC app/appcamp.alibrc )
237 list( APPEND ALIB_CPP app/cli.cpp )
238 list( APPEND ALIB_CPP app/cliargtypes.cpp )
239 list( APPEND ALIB_CPP app/cliutil.cpp )
240endif()
241
242if( "BITBUFFER" IN_LIST ALibBuild )
243 list( APPEND ALIB_H ALib.BitBuffer.H )
244 list( APPEND ALIB_MODIF bitbuffer/bitbuffer.ixx )
245 list( APPEND ALIB_MACROS bitbuffer/bitbuffer.prepro.hpp )
246 list( APPEND ALIB_HPP bitbuffer/arraycompressor.hpp )
247 list( APPEND ALIB_HPP bitbuffer/bitbuffer.hpp )
248 list( APPEND ALIB_HPP bitbuffer/ac_v1/acalgos.hpp.inl )
249 list( APPEND ALIB_HPP bitbuffer/ac_v1/ac.hpp )
250 list( APPEND ALIB_HPP bitbuffer/ac_v1/huffman.hpp )
251
252 list( APPEND ALIB_UNI bitbuffer/bitbuffer.uni.cpp )
253 list( APPEND ALIB_MOD bitbuffer/bitbuffer.mod.cpp )
254 list( APPEND ALIB_CPP bitbuffer/bitbuffer.cpp )
255 list( APPEND ALIB_MOD bitbuffer/ac_v1/ac.mod.cpp )
256 list( APPEND ALIB_CPP bitbuffer/ac_v1/ac.cpp )
257 list( APPEND ALIB_CPP bitbuffer/ac_v1/huffman.cpp )
258endif()
259
260if( "BOXING" IN_LIST ALibBuild )
261 list( APPEND ALIB_H ALib.Boxing.H )
262 list( APPEND ALIB_MODIF boxing/boxing.ixx )
263 list( APPEND ALIB_MACROS boxing/boxing.prepro.hpp )
264 list( APPEND ALIB_HPP boxing/box.hpp )
265 list( APPEND ALIB_HPP boxing/boxes.hpp )
266 list( APPEND ALIB_HPP boxing/boxstrap.hpp )
267 list( APPEND ALIB_HPP boxing/enum.hpp )
268 list( APPEND ALIB_HPP boxing/placeholder.hpp )
269 list( APPEND ALIB_HPP boxing/boxingtraits.hpp )
270 list( APPEND ALIB_HPP boxing/boxing_debug.hpp )
271 list( APPEND ALIB_HPP boxing/stdboxtraits.hpp )
272 list( APPEND ALIB_MODIF boxing/stdfunctors.ixx )
273 list( APPEND ALIB_HPP boxing/stdfunctors.hpp )
274 list( APPEND ALIB_HPP boxing/qtboxing.hpp )
275
276 list( APPEND ALIB_HPP boxing/boxingcustoms.hpp.inl )
277 list( APPEND ALIB_HPP boxing/functiondecls.hpp )
278 list( APPEND ALIB_HPP boxing/functiondefs.hpp.inl )
279 list( APPEND ALIB_HPP boxing/detail/vtable.hpp )
280
281 list( APPEND ALIB_UNI boxing/boxstrap.uni.cpp )
282 list( APPEND ALIB_MOD boxing/boxstrap.mod.cpp )
283 list( APPEND ALIB_CPP boxing/boxstrap.cpp )
284 list( APPEND ALIB_MOD boxing/boxes.mod.cpp )
285 list( APPEND ALIB_CPP boxing/boxes.cpp )
286 list( APPEND ALIB_UNI boxing/boxing.uni.cpp )
287 list( APPEND ALIB_MOD boxing/box.mod.cpp )
288 list( APPEND ALIB_CPP boxing/box.cpp )
289 list( APPEND ALIB_MOD boxing/detail/vtable.mod.cpp )
290 list( APPEND ALIB_CPP boxing/detail/vtable.cpp )
291 list( APPEND ALIB_CPP boxing/detail/boxingcustoms.cpp )
292 list( APPEND ALIB_CPP boxing/detail/dbgdoublelengthcheck.cpp )
293 list( APPEND ALIB_CPP boxing/boxing_debug.cpp )
294
295 list( APPEND ALIB_H ALib.Boxing.StdFunctors.H )
296 list( APPEND ALIB_H ALib.Compatibility.StdBoxtraits.H )
297 list( APPEND ALIB_H ALib.Compatibility.QTBoxing.H )
298
299 if( "STRINGS" IN_LIST ALibBuild )
300 list( APPEND ALIB_HPP boxing/strings_appendables.hpp )
301 list( APPEND ALIB_HPP boxing/extensions/strings_tfield.hpp )
302 list( APPEND ALIB_MOD boxing/extensions/strings_tfield.mod.cpp )
303 list( APPEND ALIB_CPP boxing/extensions/strings_tfield.cpp )
304
305 endif()
306endif()
307
308if( "CAMP" IN_LIST ALibBuild )
309 list( APPEND ALIB_H ALib.Camp.H )
310 list( APPEND ALIB_H ALib.Camp.ResourceCompiler.H )
311 list( APPEND ALIB_MODIF camp/camp.ixx )
312 list( APPEND ALIB_MODIF camp/resourcecompiler.ixx )
313 list( APPEND ALIB_MACROS camp/camp.prepro.hpp )
314 list( APPEND ALIB_HPP camp/basecamp.hpp )
315 list( APPEND ALIB_HPP camp/camp.hpp )
316
317 # additions from lower-level modules
318 list( APPEND ALIB_HPP camp/loadtokens.hpp )
319 list( APPEND ALIB_HPP camp/resourcecompiler.hpp )
320
321 # Basecamp
322 list( APPEND ALIB_H ALib.Camp.Base.H )
323 list( APPEND ALIB_MODIF camp/basecamp.ixx )
324 list( APPEND ALIB_UNI camp/basecamp.uni.cpp )
325 list( APPEND ALIB_MOD camp/basecamp.mod.cpp )
326 list( APPEND ALIB_CPP camp/basecamp.cpp )
327 list( APPEND ALIB_RC camp/basecamp.alibrc )
328 list( APPEND ALIB_UNI camp/resourcecompiler.uni.cpp )
329 list( APPEND ALIB_MOD camp/resourcecompiler.mod.cpp )
330 list( APPEND ALIB_CPP camp/resourcecompiler.cpp )
331
332endif()
333
334if( "VARIABLES" IN_LIST ALibBuild )
335 list( APPEND ALIB_H ALib.Variables.H )
336 list( APPEND ALIB_UNI variables/configuration.uni.cpp )
337 list( APPEND ALIB_UNI variables/variable.uni.cpp )
338 list( APPEND ALIB_UNI variables/inifile.uni.cpp )
339
340 list( APPEND ALIB_MODIF variables/variables.ixx )
341 list( APPEND ALIB_MACROS variables/variables.prepro.hpp )
342 list( APPEND ALIB_HPP variables/erpriority.hpp )
343 list( APPEND ALIB_HPP variables/vmeta.hpp )
344 list( APPEND ALIB_HPP variables/declaration.hpp )
345 list( APPEND ALIB_HPP variables/configuration.hpp )
346 list( APPEND ALIB_MOD variables/configuration.mod.cpp )
347 list( APPEND ALIB_CPP variables/configuration.cpp )
348 list( APPEND ALIB_MOD variables/vmeta.mod.cpp )
349 list( APPEND ALIB_CPP variables/vmeta.cpp )
350 list( APPEND ALIB_MOD variables/variable.mod.cpp )
351 list( APPEND ALIB_CPP variables/variable.cpp )
352
353 list( APPEND ALIB_H ALib.Variables.Plugins.H )
354 list( APPEND ALIB_MODIF variables/plugins.ixx )
355 list( APPEND ALIB_MOD variables/plugins.mod.cpp )
356 list( APPEND ALIB_CPP variables/plugins.cpp )
357 list( APPEND ALIB_HPP variables/plugins.hpp )
358
359 list( APPEND ALIB_H ALib.Variables.IniFile.H )
360 list( APPEND ALIB_MODIF variables/inifile.ixx )
361 list( APPEND ALIB_HPP variables/inifile.hpp )
362 list( APPEND ALIB_HPP variables/inifilefeeder.hpp )
363 list( APPEND ALIB_MOD variables/inifile.mod.cpp )
364 list( APPEND ALIB_CPP variables/inifile.cpp )
365 list( APPEND ALIB_MOD variables/inifilefeeder.mod.cpp )
366 list( APPEND ALIB_CPP variables/inifilefeeder.cpp )
367
368 if( "RESOURCES" IN_LIST ALibBuild )
369 list( APPEND ALIB_H ALib.Variables.ResourcePool.H )
370 list( APPEND ALIB_MODIF variables/configresourcepool.ixx )
371 list( APPEND ALIB_UNI variables/configresourcepool.uni.cpp)
372 list( APPEND ALIB_MOD variables/configresourcepool.mod.cpp)
373 list( APPEND ALIB_CPP variables/configresourcepool.cpp )
374 list( APPEND ALIB_HPP variables/configresourcepool.hpp )
375 endif()
376endif()
377
378if( "CONTAINERS" IN_LIST ALibBuild )
379 list( APPEND ALIB_MODIF containers/containers_init.ixx )
380 list( APPEND ALIB_HPP containers/recycling.hpp )
381 list( APPEND ALIB_HPP containers/valuedescriptor.hpp )
382
383 list( APPEND ALIB_H ALib.Containers.FixedCapacityVector.H )
384 list( APPEND ALIB_MODIF containers/fixedcapacityvector.ixx )
385 list( APPEND ALIB_HPP containers/fixedcapacityvector.hpp )
386
387 list( APPEND ALIB_H ALib.Containers.HashTable.H )
388 list( APPEND ALIB_MODIF containers/hashtable.ixx )
389 list( APPEND ALIB_HPP containers/detail/hashtablebase.hpp )
390 list( APPEND ALIB_MOD containers/detail/hashtablebase.mod.cpp )
391 list( APPEND ALIB_CPP containers/detail/hashtablebase.cpp )
392 list( APPEND ALIB_HPP containers/hashtable.hpp )
393 list( APPEND ALIB_UNI containers/detail/detail.uni.cpp )
394
395 list( APPEND ALIB_H ALib.Containers.List.H )
396 list( APPEND ALIB_MODIF containers/list.ixx )
397 list( APPEND ALIB_HPP containers/list.hpp )
398
399 list( APPEND ALIB_H ALib.Containers.LRUCacheTable.H )
400 list( APPEND ALIB_MODIF containers/lrucachetable.ixx )
401 list( APPEND ALIB_HPP containers/lrucachetable.hpp )
402
403 list( APPEND ALIB_H ALib.Containers.SharedPtr.H )
404 list( APPEND ALIB_MODIF containers/sharedptr.ixx )
405 list( APPEND ALIB_HPP containers/sharedptr.hpp )
406
407 list( APPEND ALIB_H ALib.Containers.SharedVal.H )
408 list( APPEND ALIB_MODIF containers/sharedval.ixx )
409 list( APPEND ALIB_HPP containers/sharedval.hpp )
410
411 if( "STRINGS" IN_LIST ALibBuild )
412 list( APPEND ALIB_H ALib.Containers.StringTree.H )
413 list( APPEND ALIB_H ALib.Containers.StringTreeIterator.H )
414 list( APPEND ALIB_MODIF containers/stringtree.ixx )
415 list( APPEND ALIB_MODIF containers/stringtreeiterator.ixx )
416 list( APPEND ALIB_HPP containers/stringtree.hpp )
417 list( APPEND ALIB_HPP containers/detail/stringtreebase.hpp )
418 list( APPEND ALIB_MOD containers/detail/stringtreebase.mod.cpp)
419 list( APPEND ALIB_CPP containers/detail/stringtreebase.cpp )
420 list( APPEND ALIB_HPP containers/stringtreeiterator.hpp )
421 endif()
422endif()
423
424
425if( "ENUMRECORDS" IN_LIST ALibBuild )
426 list( APPEND ALIB_H ALib.EnumRecords.H )
427 list( APPEND ALIB_MODIF enumrecords/enumrecords.ixx )
428 list( APPEND ALIB_MACROS enumrecords/enumrecords.prepro.hpp )
429 list( APPEND ALIB_HPP enumrecords/detail/enumrecordmap.hpp )
430 list( APPEND ALIB_HPP enumrecords/records.hpp )
431 list( APPEND ALIB_HPP enumrecords/serialization.hpp )
432 list( APPEND ALIB_HPP enumrecords/builtin.hpp )
433
434 list( APPEND ALIB_H ALib.EnumRecords.Bootstrap.H )
435 list( APPEND ALIB_MODIF enumrecords/bootstrap/recordbootstrap.ixx )
436 list( APPEND ALIB_HPP enumrecords/bootstrap/recordparser.hpp )
437 list( APPEND ALIB_HPP enumrecords/bootstrap/recordbootstrap.hpp )
438 list( APPEND ALIB_MOD enumrecords/bootstrap/recordparser.mod.cpp )
439 list( APPEND ALIB_CPP enumrecords/bootstrap/recordparser.cpp )
440 if( "BOXING" IN_LIST ALibBuild )
441 list( APPEND ALIB_HPP enumrecords/boxing_enums.hpp )
442 endif()
443 list( APPEND ALIB_UNI enumrecords/enumrecords.uni.cpp )
444 list( APPEND ALIB_MOD enumrecords/records.mod.cpp )
445 list( APPEND ALIB_CPP enumrecords/records.cpp )
446
447endif()
448
449if( "EXCEPTIONS" IN_LIST ALibBuild )
450 list( APPEND ALIB_H ALib.Exceptions.H )
451 list( APPEND ALIB_MODIF exceptions/exceptions.ixx )
452 list( APPEND ALIB_HPP exceptions/message.hpp )
453 list( APPEND ALIB_HPP exceptions/exception.hpp )
454 list( APPEND ALIB_UNI exceptions/exception.uni.cpp )
455 list( APPEND ALIB_MOD exceptions/exception.mod.cpp )
456 list( APPEND ALIB_CPP exceptions/exception.cpp )
457endif()
458
459if( "EXPRESSIONS" IN_LIST ALibBuild )
460 list( APPEND ALIB_H ALib.Expressions.H )
461 list( APPEND ALIB_H ALib.Expressions.Impl.H )
462 list( APPEND ALIB_UNI expressions/expressions.uni.cpp )
463 list( APPEND ALIB_MOD expressions/expression.mod.cpp )
464 list( APPEND ALIB_MODIF expressions/expressions.ixx )
465 list( APPEND ALIB_MODIF expressions/expressions_impl.ixx )
466 list( APPEND ALIB_HPP expressions/detail/ast.hpp )
467 list( APPEND ALIB_HPP expressions/parser.hpp )
468 list( APPEND ALIB_MACROS expressions/expressions.prepro.hpp )
469 list( APPEND ALIB_HPP expressions/expressionscamp.hpp )
470 list( APPEND ALIB_HPP expressions/compiler.hpp )
471 list( APPEND ALIB_HPP expressions/compilerplugin.hpp )
472 list( APPEND ALIB_HPP expressions/expression.hpp )
473 list( APPEND ALIB_HPP expressions/scope.hpp )
474 list( APPEND ALIB_HPP expressions/standardrepository.hpp )
475
476 list( APPEND ALIB_HPP expressions/detail/ast_impl.hpp )
477 list( APPEND ALIB_HPP expressions/detail/parser_impl.hpp )
478 list( APPEND ALIB_HPP expressions/detail/program.hpp )
479 list( APPEND ALIB_HPP expressions/detail/virtualmachine.hpp )
480
481 list( APPEND ALIB_HPP expressions/plugins/arithmetics.hpp )
482 list( APPEND ALIB_HPP expressions/plugins/autocast.hpp )
483 list( APPEND ALIB_HPP expressions/plugins/calculus.hpp )
484 list( APPEND ALIB_HPP expressions/plugins/dateandtime.hpp )
485 list( APPEND ALIB_HPP expressions/plugins/elvisoperator.hpp )
486 list( APPEND ALIB_HPP expressions/plugins/math.hpp )
487 list( APPEND ALIB_HPP expressions/plugins/strings.hpp )
488
489 list( APPEND ALIB_MOD expressions/expressionscamp.mod.cpp )
490 list( APPEND ALIB_CPP expressions/expressionscamp.cpp )
491 list( APPEND ALIB_RC expressions/expressionscamp.alibrc )
492 list( APPEND ALIB_MOD expressions/compiler.mod.cpp )
493 list( APPEND ALIB_CPP expressions/compiler.cpp )
494 list( APPEND ALIB_CPP expressions/expression.cpp )
495 list( APPEND ALIB_MOD expressions/standardrepository.mod.cpp )
496 list( APPEND ALIB_CPP expressions/standardrepository.cpp )
497
498 list( APPEND ALIB_MOD expressions/parser.mod.cpp )
499 list( APPEND ALIB_CPP expressions/parser.cpp )
500
501 list( APPEND ALIB_UNI expressions/detail/expr_detail.uni.cpp )
502 list( APPEND ALIB_MOD expressions/detail/ast.mod.cpp )
503 list( APPEND ALIB_CPP expressions/detail/ast.cpp )
504 list( APPEND ALIB_MOD expressions/detail/parser_impl.mod.cpp )
505 list( APPEND ALIB_CPP expressions/detail/parser_impl.cpp )
506 list( APPEND ALIB_MOD expressions/detail/program.mod.cpp )
507 list( APPEND ALIB_CPP expressions/detail/program.cpp )
508 list( APPEND ALIB_MOD expressions/detail/virtualmachine.mod.cpp)
509 list( APPEND ALIB_CPP expressions/detail/virtualmachine.cpp )
510
511 list( APPEND ALIB_UNI expressions/plugins/plugins.uni.cpp )
512 list( APPEND ALIB_MOD expressions/plugins/arithmetics.mod.cpp )
513 list( APPEND ALIB_CPP expressions/plugins/arithmetics.cpp )
514 list( APPEND ALIB_MOD expressions/plugins/autocast.mod.cpp )
515 list( APPEND ALIB_CPP expressions/plugins/autocast.cpp )
516 list( APPEND ALIB_MOD expressions/plugins/calculus.mod.cpp )
517 list( APPEND ALIB_CPP expressions/plugins/calculus.cpp )
518 list( APPEND ALIB_MOD expressions/plugins/elvisoperator.mod.cpp)
519 list( APPEND ALIB_CPP expressions/plugins/elvisoperator.cpp )
520 list( APPEND ALIB_MOD expressions/plugins/math.mod.cpp )
521 list( APPEND ALIB_CPP expressions/plugins/math.cpp )
522 list( APPEND ALIB_MOD expressions/plugins/strings.mod.cpp )
523 list( APPEND ALIB_CPP expressions/plugins/strings.cpp )
524 list( APPEND ALIB_MOD expressions/plugins/dateandtime.mod.cpp )
525 list( APPEND ALIB_CPP expressions/plugins/dateandtime.cpp )
526
527 list( APPEND ALIB_HPP expressions/util/expressionformatter.hpp )
528 list( APPEND ALIB_MOD expressions/util/expressionformatter.mod.cpp)
529 list( APPEND ALIB_CPP expressions/util/expressionformatter.cpp )
530
531 endif()
532
533if( "FILETREE" IN_LIST ALibBuild )
534 list( APPEND ALIB_H ALib.FileTree.H )
535 list( APPEND ALIB_UNI filetree/filetree.uni.cpp )
536 list( APPEND ALIB_MODIF filetree/filetree.ixx )
537 list( APPEND ALIB_MACROS filetree/filetree.prepro.hpp )
538 list( APPEND ALIB_HPP filetree/filetreecamp.hpp )
539 list( APPEND ALIB_HPP filetree/ffilter.hpp )
540 list( APPEND ALIB_HPP filetree/ftvalue.hpp )
541 list( APPEND ALIB_HPP filetree/fscanner.hpp )
542 list( APPEND ALIB_HPP filetree/ftree.hpp )
543
544 list( APPEND ALIB_MOD filetree/filetreecamp.mod.cpp )
545 list( APPEND ALIB_CPP filetree/filetreecamp.cpp )
546 list( APPEND ALIB_RC filetree/filetreecamp.alibrc )
547 list( APPEND ALIB_MOD filetree/ftfile.mod.cpp )
548 list( APPEND ALIB_CPP filetree/ftfile.cpp )
549 list( APPEND ALIB_MOD filetree/ftvalue.mod.cpp )
550 list( APPEND ALIB_CPP filetree/ftvalue.cpp )
551 list( APPEND ALIB_UNI filetree/fscanner.uni.cpp )
552 list( APPEND ALIB_MOD filetree/fscanner.mod.cpp )
553 list( APPEND ALIB_CPP filetree/fscanner.cpp )
554 list( APPEND ALIB_MOD filetree/ftree.mod.cpp )
555 list( APPEND ALIB_CPP filetree/ftree.cpp )
556
557 if( "EXPRESSIONS" IN_LIST ALibBuild )
558 list( APPEND ALIB_H ALib.FileTree.Expressions.H )
559 list( APPEND ALIB_MODIF filetree/expressions/fileexpressions.ixx )
560 list( APPEND ALIB_HPP filetree/expressions/fileexpressions.hpp )
561 list( APPEND ALIB_UNI filetree/expressions/fileexpressions.uni.cpp)
562 list( APPEND ALIB_MOD filetree/expressions/fileexpressions.mod.cpp)
563 list( APPEND ALIB_CPP filetree/expressions/fileexpressions.cpp )
564 endif()
565
566endif()
567
568
569if( "FORMAT" IN_LIST ALibBuild )
570 list( APPEND ALIB_H ALib.Format.H )
571 list( APPEND ALIB_UNI format/format.uni.cpp )
572 list( APPEND ALIB_MOD format/format.mod.cpp )
573 list( APPEND ALIB_MODIF format/format.ixx )
574 list( APPEND ALIB_HPP format/formatter.hpp )
575 list( APPEND ALIB_HPP format/fmtexceptions.hpp )
576 list( APPEND ALIB_HPP format/bytesize.hpp )
577 list( APPEND ALIB_HPP format/fmtcallerinfo.hpp )
578 list( APPEND ALIB_HPP format/fmtdatetime.hpp )
579 list( APPEND ALIB_HPP format/extensions/containers_hashtable.hpp )
580 list( APPEND ALIB_HPP format/extensions/boxing_format_debug.hpp )
581 list( APPEND ALIB_HPP format/extensions/resources_debug.hpp )
582 list( APPEND ALIB_CPP format/formatter.cpp )
583 list( APPEND ALIB_CPP format/fmtvarious.cpp )
584 list( APPEND ALIB_CPP format/extensions/boxing_format_debug.cpp )
585 list( APPEND ALIB_CPP format/extensions/resources_debug.cpp )
586
587
588
589 list( APPEND ALIB_H ALib.Format.StdImplementation.H )
590 list( APPEND ALIB_MODIF format/formatterstdimpl.ixx )
591 list( APPEND ALIB_HPP format/formatterstdimpl.hpp )
592 list( APPEND ALIB_MOD format/formatterstdimpl.mod.cpp )
593 list( APPEND ALIB_CPP format/formatterstdimpl.cpp )
594
595 list( APPEND ALIB_H ALib.Format.FormatterPythonStyle.H)
596 list( APPEND ALIB_MODIF format/formatterpythonstyle.ixx )
597 list( APPEND ALIB_HPP format/formatterpythonstyle.hpp )
598 list( APPEND ALIB_MOD format/formatterpythonstyle.mod.cpp)
599 list( APPEND ALIB_CPP format/formatterpythonstyle.cpp )
600
601 list( APPEND ALIB_H ALib.Format.FormatterJavaStyle.H )
602 list( APPEND ALIB_MODIF format/formatterjavastyle.ixx )
603 list( APPEND ALIB_HPP format/formatterjavastyle.hpp )
604 list( APPEND ALIB_MOD format/formatterjavastyle.mod.cpp )
605 list( APPEND ALIB_CPP format/formatterjavastyle.cpp )
606
607 list( APPEND ALIB_H ALib.Format.Paragraphs.H )
608 list( APPEND ALIB_MODIF format/paragraphs.ixx )
609 list( APPEND ALIB_HPP format/paragraphs.hpp )
610 list( APPEND ALIB_MOD format/paragraphs.mod.cpp )
611 list( APPEND ALIB_CPP format/paragraphs.cpp )
612
613 list( APPEND ALIB_H ALib.Format.PropertyFormatter.H )
614 list( APPEND ALIB_MODIF format/propertyformatter.ixx )
615 list( APPEND ALIB_HPP format/propertyformatter.hpp )
616 list( APPEND ALIB_MOD format/propertyformatter.mod.cpp )
617 list( APPEND ALIB_CPP format/propertyformatter.cpp )
618
619 if( "VARIABLES" IN_LIST ALibBuild )
620 list( APPEND ALIB_H ALib.Format.PropertyFormatters.H )
621 list( APPEND ALIB_MODIF format/propertyformatters.ixx )
622 list( APPEND ALIB_HPP format/propertyformatters.hpp )
623 endif()
624endif()
625
626
627if( "MONOMEM" IN_LIST ALibBuild )
628 list( APPEND ALIB_H ALib.Monomem.H )
629 list( APPEND ALIB_MODIF monomem/monomem.ixx )
630 list( APPEND ALIB_MACROS monomem/monomem.prepro.hpp )
631 list( APPEND ALIB_HPP monomem/monoallocator.hpp )
632 list( APPEND ALIB_HPP monomem/monoallocator.t.hpp )
633 list( APPEND ALIB_HPP monomem/localallocator.hpp )
634 list( APPEND ALIB_HPP monomem/poolallocator.hpp )
635 list( APPEND ALIB_HPP monomem/poolallocator.t.hpp )
636 list( APPEND ALIB_MODIF monomem/stdcontainers.ixx )
637 list( APPEND ALIB_HPP monomem/stdcontainers.hpp )
638 list( APPEND ALIB_UNI monomem/monomem.uni.cpp )
639 list( APPEND ALIB_MOD monomem/monomem.mod.cpp )
640 list( APPEND ALIB_CPP monomem/monomem.cpp )
641
642 list( APPEND ALIB_H ALib.Monomem.SharedMonoVal.H )
643 list( APPEND ALIB_MODIF monomem/sharedmonoval.ixx )
644 list( APPEND ALIB_HPP monomem/sharedmonoval.hpp )
645
646 list( APPEND ALIB_H ALib.Monomem.StdContainers.H )
647endif()
648
649if( "RESOURCES" IN_LIST ALibBuild )
650 list( APPEND ALIB_H ALib.Resources.H )
651 list( APPEND ALIB_UNI resources/resources.uni.cpp )
652 list( APPEND ALIB_MODIF resources/resources.ixx )
653 list( APPEND ALIB_MACROS resources/resources.prepro.hpp )
654 list( APPEND ALIB_HPP resources/resources.hpp )
655 list( APPEND ALIB_HPP resources/detail/resourcemap.hpp )
656 list( APPEND ALIB_HPP resources/localresourcepool.hpp )
657
658 list( APPEND ALIB_MOD resources/localresourcepool.mod.cpp )
659 list( APPEND ALIB_CPP resources/localresourcepool.cpp )
660
661 # additions from lower-level modules
662 list( APPEND ALIB_HPP resources/extensions/enums_serialization.hpp )
663 list( APPEND ALIB_HPP resources/extensions/strings_loadtokens.hpp )
664 list( APPEND ALIB_MOD resources/extensions/strings_loadtokens.mod.cpp)
665 list( APPEND ALIB_CPP resources/extensions/strings_loadtokens.cpp )
666endif()
667
668if( "SINGLETONS" IN_LIST ALibBuild )
669 list( APPEND ALIB_H ALib.Singletons.H )
670 list( APPEND ALIB_MODIF singletons/singletons.ixx )
671 list( APPEND ALIB_MACROS singletons/singletons.prepro.hpp )
672 list( APPEND ALIB_UNI singletons/singletons.uni.cpp )
673 list( APPEND ALIB_MOD singletons/singletons.mod.cpp )
674 list( APPEND ALIB_CPP singletons/singletons.cpp )
675 list( APPEND ALIB_HPP singletons/singletons.hpp )
676endif()
677
678if( "STRINGS" IN_LIST ALibBuild )
679 list( APPEND ALIB_H ALib.Strings.H )
680 list( APPEND ALIB_H ALib.Strings.StdFormatter.H )
681 list( APPEND ALIB_UNI strings/strings.uni.cpp )
682 list( APPEND ALIB_MOD strings/string.mod.cpp )
683 list( APPEND ALIB_MOD strings/astring.mod.cpp )
684
685 list( APPEND ALIB_MODIF strings/strings.ixx )
686 list( APPEND ALIB_MACROS strings/strings.prepro.hpp )
687 list( APPEND ALIB_HPP strings/appendables.hpp )
688 list( APPEND ALIB_HPP strings/astring.hpp )
689 list( APPEND ALIB_HPP strings/cstring.hpp )
690 list( APPEND ALIB_HPP strings/format.hpp )
691 list( APPEND ALIB_HPP strings/numberformat.hpp )
692 list( APPEND ALIB_HPP strings/localstring.hpp )
693 list( APPEND ALIB_HPP strings/string.hpp )
694 list( APPEND ALIB_HPP strings/stringnzt.hpp )
695 list( APPEND ALIB_HPP strings/substring.hpp )
696 list( APPEND ALIB_MODIF strings/stdfunctors.ixx )
697 list( APPEND ALIB_HPP strings/stdfunctors.hpp )
698 list( APPEND ALIB_HPP strings/stdformatter.hpp )
699 list( APPEND ALIB_HPP strings/stdiostream.hpp )
700 list( APPEND ALIB_HPP strings/qtstrings.hpp )
701
702 list( APPEND ALIB_HPP strings/detail/tastring.hpp )
703 list( APPEND ALIB_HPP strings/detail/tastringimpl.hpp )
704 list( APPEND ALIB_HPP strings/detail/tastring_ca_decl.hpp.inl )
705 list( APPEND ALIB_HPP strings/detail/tastring_ca_impl.hpp.inl )
706 list( APPEND ALIB_HPP strings/detail/numberconversion.hpp )
707
708 list( APPEND ALIB_CPP strings/astring.cpp )
709 list( APPEND ALIB_CPP strings/numberformat.cpp )
710 list( APPEND ALIB_CPP strings/string.cpp )
711 list( APPEND ALIB_CPP strings/substring.cpp )
712 list( APPEND ALIB_CPP strings/detail/numberconversion.cpp )
713
714 list( APPEND ALIB_H ALib.Compatibility.QTStrings.H )
715 list( APPEND ALIB_H ALib.Strings.StdFunctors.H )
716 list( APPEND ALIB_H ALib.Strings.StdIOStream.H )
717 list( APPEND ALIB_MODIF strings/stdiostream.ixx )
718 list( APPEND ALIB_MOD strings/stdiostream.mod.cpp )
719 list( APPEND ALIB_CPP strings/stdiostream.cpp )
720
721
722 list( APPEND ALIB_H ALib.Strings.Tokenizer.H )
723 list( APPEND ALIB_MODIF strings/util/tokenizer.ixx )
724 list( APPEND ALIB_HPP strings/util/tokenizer.hpp )
725 list( APPEND ALIB_MOD strings/util/tokenizer.mod.cpp )
726 list( APPEND ALIB_CPP strings/util/tokenizer.cpp )
727 list( APPEND ALIB_MODIF strings/util/vector.ixx )
728 list( APPEND ALIB_HPP strings/util/vector.hpp )
729 list( APPEND ALIB_UNI strings/util/util.uni.cpp )
730 list( APPEND ALIB_CPP strings/util/autosizes.cpp )
731 list( APPEND ALIB_CPP strings/util/escaper.cpp )
732 list( APPEND ALIB_CPP strings/util/regexmatcher.cpp )
733 list( APPEND ALIB_CPP strings/util/wildcardmatcher.cpp )
734
735 list( APPEND ALIB_H ALib.Strings.Escaper.H )
736 list( APPEND ALIB_MODIF strings/util/escaper.ixx )
737 list( APPEND ALIB_MOD strings/util/escaper.mod.cpp )
738 list( APPEND ALIB_HPP strings/util/escaper.hpp )
739
740 list( APPEND ALIB_H ALib.Strings.Search.H )
741 list( APPEND ALIB_MODIF strings/util/search.ixx )
742 list( APPEND ALIB_MOD strings/util/search.mod.cpp )
743 list( APPEND ALIB_HPP strings/util/search.hpp )
744 list( APPEND ALIB_HPP strings/util/regexmatcher.hpp )
745 list( APPEND ALIB_HPP strings/util/wildcardmatcher.hpp )
746 list( APPEND ALIB_CPP strings/util/search.cpp )
747
748 list( APPEND ALIB_H ALib.Strings.Calendar.H )
749 list( APPEND ALIB_MODIF strings/util/calendar.ixx )
750 list( APPEND ALIB_HPP strings/util/calendar.hpp )
751 list( APPEND ALIB_MOD strings/util/calendar.mod.cpp )
752 list( APPEND ALIB_CPP strings/util/calendar.cpp )
753
754 list( APPEND ALIB_H ALib.Strings.Token.H )
755 list( APPEND ALIB_MODIF strings/util/token.ixx )
756 list( APPEND ALIB_HPP strings/util/token.hpp )
757 list( APPEND ALIB_MOD strings/util/token.mod.cpp )
758 list( APPEND ALIB_CPP strings/util/token.cpp )
759
760 list( APPEND ALIB_H ALib.Strings.AutoSizes.H )
761 list( APPEND ALIB_MODIF strings/util/autosizes.ixx )
762 list( APPEND ALIB_MOD strings/util/autosizes.mod.cpp )
763 list( APPEND ALIB_HPP strings/util/autosizes.hpp )
764
765 list( APPEND ALIB_H ALib.Strings.Vector.H )
766
767
768 if( "MONOMEM" IN_LIST ALibBuild )
769 list( APPEND ALIB_HPP strings/monomem/strings_monomem.t.hpp )
770 list( APPEND ALIB_HPP strings/monomem/strings_monomem.hpp )
771 list( APPEND ALIB_UNI strings/monomem/strings_monomem.uni.cpp )
772 list( APPEND ALIB_MOD strings/monomem/strings_monomem.mod.cpp )
773 list( APPEND ALIB_CPP strings/monomem/strings_monomem.cpp )
774 endif()
775endif()
776
777if( "SYSTEM" IN_LIST ALibBuild )
778 #### BASE/system ###
779 list( APPEND ALIB_H ALib.System.H )
780 list( APPEND ALIB_H ALib.System.TextFile.H )
781 list( APPEND ALIB_H ALib.System.MappedFile.H )
782
783 list( APPEND ALIB_MODIF system/system.ixx )
784 list( APPEND ALIB_MODIF system/mappedfile.ixx )
785 list( APPEND ALIB_MODIF system/textfile.ixx )
786 list( APPEND ALIB_MACROS system/system.prepro.hpp )
787 list( APPEND ALIB_HPP system/console.hpp )
788 list( APPEND ALIB_HPP system/environment.hpp )
789 list( APPEND ALIB_HPP system/filestatus.hpp )
790 list( APPEND ALIB_HPP system/mappedfile.hpp )
791 list( APPEND ALIB_HPP system/path.hpp )
792 list( APPEND ALIB_HPP system/processinfo.hpp )
793 list( APPEND ALIB_HPP system/shellcommand.hpp )
794 list( APPEND ALIB_HPP system/textfile.hpp )
795 list( APPEND ALIB_CPP system/console.cpp )
796 list( APPEND ALIB_CPP system/environment.cpp )
797 list( APPEND ALIB_CPP system/processinfo.cpp )
798 list( APPEND ALIB_CPP system/shellcommand.cpp )
799
800 list( APPEND ALIB_UNI system/system.uni.cpp )
801 list( APPEND ALIB_MOD system/system.mod.cpp )
802 list( APPEND ALIB_MOD system/filestatus.mod.cpp )
803 list( APPEND ALIB_CPP system/filestatus.cpp )
804 list( APPEND ALIB_MOD system/mappedfile.mod.cpp )
805 list( APPEND ALIB_CPP system/mappedfile.cpp )
806 list( APPEND ALIB_MOD system/path.mod.cpp )
807 list( APPEND ALIB_CPP system/path.cpp )
808 if ( ${APPLE} )
809 list( APPEND ALIB_UNI system/path.mm )
810 endif()
811endif()
812
813if( "THREADMODEL" IN_LIST ALibBuild )
814 list( APPEND ALIB_H ALib.ThreadModel.H )
815 list( APPEND ALIB_UNI threadmodel/threadmodel.uni.cpp )
816 list( APPEND ALIB_MODIF threadmodel/threadmodel.ixx )
817 list( APPEND ALIB_HPP threadmodel/dedicatedworker.hpp )
818 list( APPEND ALIB_HPP threadmodel/jobs.hpp )
819 list( APPEND ALIB_HPP threadmodel/threadpool.hpp )
820 list( APPEND ALIB_HPP threadmodel/trigger.hpp )
821
822 list( APPEND ALIB_MOD threadmodel/dedicatedworker.mod.cpp )
823 list( APPEND ALIB_CPP threadmodel/dedicatedworker.cpp )
824 list( APPEND ALIB_MOD threadmodel/threadpool.mod.cpp )
825 list( APPEND ALIB_CPP threadmodel/threadpool.cpp )
826 list( APPEND ALIB_MOD threadmodel/trigger.mod.cpp )
827 list( APPEND ALIB_CPP threadmodel/trigger.cpp )
828endif()
829
830# ##################################################################################################
831# Check for duplicates. This is a double-check to detect that this script needs a fix.
832# ##################################################################################################
833
834CollectAndRemoveDuplicates( "ALIB_MACROS" "duplicates" )
835LIST( LENGTH duplicates cntDuplicates )
836IF( ${cntDuplicates} GREATER 0 )
837 message( ERROR "Internal script error ALIBSources.cmake: "
838 "DUPLICATE .prepro.hpp FILES FOUND.\nSee list below! "
839 "(Processing continues with de-duplicated list)" )
840 message( STATUS "LIST OF DUPLICATE HPP FILES:" )
841 LIST(SORT duplicates)
842 FOREACH( entry IN LISTS duplicates )
843 message( STATUS " ${entry}" )
844 ENDFOREACH()
845 message( STATUS "(end of list)" )
846ENDIF()
847
848CollectAndRemoveDuplicates( "ALIB_HPP" "duplicates" )
849LIST( LENGTH duplicates cntDuplicates )
850IF( ${cntDuplicates} GREATER 0 )
851 message( ERROR "Internal script error ALIBSources.cmake: "
852 "DUPLICATE .inl FILES FOUND.\nSee list below! "
853 "(Processing continues with de-duplicated list)" )
854 message( STATUS "LIST OF DUPLICATE INC FILES:" )
855 LIST(SORT duplicates)
856 FOREACH( entry IN LISTS duplicates )
857 message( STATUS " ${entry}" )
858 ENDFOREACH()
859 message( STATUS "(end of list)" )
860ENDIF()
861
862CollectAndRemoveDuplicates( "ALIB_UNI" "duplicates" )
863LIST( LENGTH duplicates cntDuplicates )
864IF( ${cntDuplicates} GREATER 0 )
865 message( ERROR "Internal script error ALIBSources.cmake: "
866 "DUPLICATE .uni.cpp FILES FOUND.\nSee list below! "
867 "(Processing continues with de-duplicated list)" )
868 message( STATUS "LIST OF DUPLICATE CPP FILES:" )
869 LIST(SORT duplicates)
870 FOREACH( entry IN LISTS duplicates )
871 message( STATUS " ${entry}" )
872 ENDFOREACH()
873 message( STATUS "(end of list)" )
874ENDIF()
875CollectAndRemoveDuplicates( "ALIB_MODIF" "duplicates" )
876LIST( LENGTH duplicates cntDuplicates )
877IF( ${cntDuplicates} GREATER 0 )
878 message( ERROR "Internal script error ALIBSources.cmake: "
879 "DUPLICATE .ixx FILES FOUND.\nSee list below! "
880 "(Processing continues with de-duplicated list)" )
881 message( STATUS "LIST OF DUPLICATE IXX FILES:" )
882 LIST(SORT duplicates)
883 FOREACH( entry IN LISTS duplicates )
884 message( STATUS " ${entry}" )
885 ENDFOREACH()
886 message( STATUS "(end of list)" )
887ENDIF()
888
889CollectAndRemoveDuplicates( "ALIB_MOD" "duplicates" )
890LIST( LENGTH duplicates cntDuplicates )
891IF( ${cntDuplicates} GREATER 0 )
892 message( ERROR "Internal script error ALIBSources.cmake: "
893 "DUPLICATE .mod.cpp FILES FOUND.\nSee list below! "
894 "(Processing continues with de-duplicated list)" )
895 message( STATUS "LIST OF DUPLICATE MXX FILES:" )
896 LIST(SORT duplicates)
897 FOREACH( entry IN LISTS duplicates )
898 message( STATUS " ${entry}" )
899 ENDFOREACH()
900 message( STATUS "(end of list)" )
901ENDIF()
902
903CollectAndRemoveDuplicates( "ALIB_CPP" "duplicates" )
904LIST( LENGTH duplicates cntDuplicates )
905IF( ${cntDuplicates} GREATER 0 )
906 message( ERROR "Internal script error ALIBSources.cmake: "
907 "DUPLICATE .cpp FILES FOUND.\nSee list below! "
908 "(Processing continues with de-duplicated list)" )
909 message( STATUS "LIST OF DUPLICATE IMP FILES:" )
910 LIST(SORT duplicates)
911 FOREACH( entry IN LISTS duplicates )
912 message( STATUS " ${entry}" )
913 ENDFOREACH()
914 message( STATUS "(end of list)" )
915ENDIF()
916
917CollectAndRemoveDuplicates( "ALIB_RC" "duplicates" )
918LIST( LENGTH duplicates cntDuplicates )
919IF( ${cntDuplicates} GREATER 0 )
920 message( ERROR "Internal script error ALIBSources.cmake: "
921 "DUPLICATE .alibrc FILES FOUND.\nSee list below! "
922 "(Processing continues with de-duplicated list)" )
923 message( STATUS "LIST OF DUPLICATE IMP FILES:" )
924 LIST(SORT duplicates)
925 FOREACH( entry IN LISTS duplicates )
926 message( STATUS " ${entry}" )
927 ENDFOREACH()
928 message( STATUS "(end of list)" )
929ENDIF()
930
931# ##################################################################################################
932# Check for lists containing the right file types
933# ##################################################################################################
934FOREACH( entry IN LISTS ALIB_H )
935 IF( NOT ${entry} MATCHES "([.]H$)" )
936 message( FATAL_ERROR "File with wrong extension found in list ALIB_H: ${entry}" )
937 ENDIF()
938ENDFOREACH()
939
940FOREACH( entry IN LISTS ALIB_HPP )
941 IF( NOT ${entry} MATCHES "([.]hpp$)|([.]inl$)" )
942 message( FATAL_ERROR "File with wrong extension found in list ALIB_HPP: ${entry}" )
943 ENDIF()
944ENDFOREACH()
945
946FOREACH( entry IN LISTS ALIB_MODIF )
947 IF( NOT ${entry} MATCHES "([.]ixx$)" )
948 message( FATAL_ERROR "File with wrong extension found in list ALIB_MODIF: ${entry}" )
949 ENDIF()
950ENDFOREACH()
951
952FOREACH( entry IN LISTS ALIB_UNI )
953 IF( NOT ${entry} MATCHES "([.]uni[.]cpp$)|([.]mm$)" )
954 message( FATAL_ERROR "File with wrong extension found in list ALIB_UNI: ${entry}" )
955 ENDIF()
956ENDFOREACH()
957
958FOREACH( entry IN LISTS ALIB_MOD )
959 IF( NOT ${entry} MATCHES "([.]mod[.]cpp$)" )
960 message( FATAL_ERROR "File with wrong extension found in list ALIB_MOD: ${entry}" )
961 ENDIF()
962ENDFOREACH()
963
964FOREACH( entry IN LISTS ALIB_CPP )
965 IF( NOT ${entry} MATCHES "([.]cpp$)" )
966 message( FATAL_ERROR "File with wrong extension found in list ALIB_CPP: ${entry}" )
967 ENDIF()
968ENDFOREACH()
969
970FOREACH( entry IN LISTS ALIB_MACROS )
971 IF( NOT ${entry} MATCHES "([.]prepro[.]hpp$)" )
972 message( FATAL_ERROR "File with wrong extension found in list ALIB_MACROS: ${entry}" )
973 ENDIF()
974ENDFOREACH()
975
976FOREACH( entry IN LISTS ALIB_RC )
977 IF( NOT ${entry} MATCHES "([.]alibrc$)" )
978 message( FATAL_ERROR "File with wrong extension found in list ALIB_RC: ${entry}" )
979 ENDIF()
980ENDFOREACH()
981
982# ##################################################################################################
983# Copy sources if requested
984# ##################################################################################################
985if( ALIB_SOURCE_COPY_TARGET_DIR )
986
987 # Control what to copy: by default copy only headers relevant to the current module selection.
988 # Users can turn this OFF to copy all sources (including .uni.cppfiles) as before.
989 option(ALIB_COPY_HEADERS_ONLY "When copying to temporary build folder, copy only headers (.H, .hpp, .hpp, .ixx) needed for the selected modules" ON)
990
991 # check: must be single folder name (not a path)
992 string(FIND "${ALIB_SOURCE_COPY_TARGET_DIR}" "/" separatorPosUnix)
993 string(FIND "${ALIB_SOURCE_COPY_TARGET_DIR}" "\\" separatorPosWindows)
994
995 if(separatorPosUnix GREATER -1 OR separatorPosWindows GREATER -1)
996 MESSAGE(FATAL_ERROR "The given variable ALIB_SOURCE_COPY_TARGET_DIR=\"${ALIB_SOURCE_COPY_TARGET_DIR}\" "
997 "must be a folder name and not contain folder separators!")
998 endif()
999
1000 # Prepend build directory
1001 set(ALIB_SOURCE_COPY_TARGET_DIR "${CMAKE_BINARY_DIR}/${ALIB_SOURCE_COPY_TARGET_DIR}")
1002
1003 MESSAGE( STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
1004 MESSAGE( STATUS "!!! ATTENTION: Copying sources. !!!")
1005 MESSAGE( STATUS "!!! The destination directory will be deleted, hence !!!")
1006 MESSAGE( STATUS "!!! CHANGES WILL BE LOST with next CMake run! !!!")
1007 MESSAGE( STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
1008 MESSAGE( STATUS "Copying source files of selected ALib modules to: ’${ALIB_SOURCE_COPY_TARGET_DIR}’")
1009
1010 # delete destination directory
1011 MESSAGE( "Cleaning source-copy target directory ${ALIB_SOURCE_COPY_TARGET_DIR}" )
1012 file( REMOVE_RECURSE ${ALIB_SOURCE_COPY_TARGET_DIR} )
1013
1014 #### Create directories and copy public headers (ALib.*.H live at src root) ####
1015 foreach( fileName IN LISTS ALIB_H )
1016 SET( destPath "${ALIB_SOURCE_COPY_TARGET_DIR}/ALib/${fileName}" )
1017 get_filename_component(destPath ${destPath} DIRECTORY )
1018 #MESSAGE("Copying file: ${ALIB_SOURCE_DIR}/ALib/${fileName}" )
1019 #MESSAGE(" to: ${destPath}" )
1020 file( MAKE_DIRECTORY "${destPath}")
1021 file( COPY "${ALIB_SOURCE_DIR}/${fileName}" DESTINATION "${destPath}" )
1022 endforeach()
1023
1024 # Build list of non-root headers to copy from src/alib tree
1025 set(_alib_copy_lists ${ALIB_MODIF} ${ALIB_HPP} ${ALIB_MACROS})
1026
1027 # Optionally include .uni.cpp compilation units if headers-only copying is disabled
1028 if(NOT ALIB_COPY_HEADERS_ONLY)
1029 list(APPEND _alib_copy_lists ${ALIB_UNI} ${ALIB_MOD} ${ALIB_CPP} ${ALIB_RC})
1030 endif()
1031
1032 foreach( fileName IN LISTS _alib_copy_lists )
1033 SET( destPath "${ALIB_SOURCE_COPY_TARGET_DIR}/alib/${fileName}" )
1034 get_filename_component(destPath ${destPath} DIRECTORY )
1035 file( MAKE_DIRECTORY "${destPath}")
1036 file( COPY "${ALIB_SOURCE_DIR}/alib/${fileName}" DESTINATION "${destPath}" )
1037 endforeach()
1038
1039
1040endif()
1041
1042
1043# ##################################################################################################
1044# Check if all given files exist and check all files are given
1045# ##################################################################################################
1046function(CheckFileInclusionForCompleteness fileList baseDir extension )
1047 # Ensure the baseDir is an absolute path
1048 if(NOT IS_ABSOLUTE "${baseDir}")
1049 message(FATAL_ERROR "The provided baseDir '${baseDir}' must be an absolute path.")
1050 endif()
1051
1052 # Step 1: Loop over the given list and check for file existence
1053 foreach(file_path IN LISTS fileList)
1054
1055 # Form the absolute path of the file relative to baseDir
1056 set(absolute_file_path "${baseDir}/${file_path}")
1057
1058 # Check if the file exists
1059 if(NOT EXISTS "${absolute_file_path}")
1060 message(WARNING "File does not exist: ${absolute_file_path}")
1061 endif()
1062
1063 endforeach()
1064
1065 # Step 2: Glob the baseDir for all files with the given extension
1066 file(GLOB_RECURSE found_files "${baseDir}/*.${extension}")
1067
1068 # Normalize the found files to be relative to baseDir, for easier comparison
1069 # Filter to only include files where the basename (before extension) has no dots
1070 set(relative_found_files "")
1071 foreach(file_path IN LISTS found_files)
1072 file(RELATIVE_PATH relative_file "${baseDir}" "${file_path}")
1073
1074 # Get the filename without directory
1075 get_filename_component(filename "${relative_file}" NAME)
1076
1077 # Extract everything before the final .extension
1078 # For "alox.mod.cpp" with extension "cpp", we want to check "alox.mod"
1079 # For "alox.cpp" with extension "cpp", we want to check "alox"
1080 string(REGEX REPLACE "\\.${extension}$" "" basename "${filename}")
1081
1082 # Check if the basename contains a dot - if so, skip this file
1083 string(FIND "${basename}" "." dot_pos)
1084 if(${dot_pos} EQUAL -1)
1085 # No dot in basename, include this file
1086 list(APPEND relative_found_files "${relative_file}")
1087 endif()
1088 endforeach()
1089
1090 # Step 3: Compare the globbed files with the provided file list
1091 foreach(found_file IN LISTS relative_found_files)
1092 # Check if the found file is in the list
1093 list(FIND fileList "${found_file}" index)
1094 if(${index} EQUAL -1)
1095 message(WARNING "Found an untracked file: ${found_file}")
1096 endif()
1097 endforeach()
1098endfunction()
1099
1100
1101# ##################################################################################################
1102# Check if all given files have one of the given extensions
1103# ##################################################################################################
1104function(ValidateFileExtensions filenames_var extensions_var)
1105 # Parse optional arguments
1106 set(options ALLOW_DOTS_IN_BASENAME)
1107 cmake_parse_arguments(ARG "${options}" "" "" ${ARGN})
1108
1109 # Dereference the input variable names to get their values
1110 set(filenames ${${filenames_var}})
1111 set(extensions ${${extensions_var}})
1112
1113 # Sort extensions by length (longest first) to match compound extensions first
1114 set(sorted_extensions ${extensions})
1115 list(SORT sorted_extensions COMPARE STRING ORDER DESCENDING)
1116
1117 # Debug information
1118 #string(JOIN " " actual_filenames ${filenames})
1119 #string(JOIN " " allowed_extensions ${extensions})
1120 #message(STATUS "Validating files: ${actual_filenames}")
1121 #message(STATUS "Allowed extensions: ${allowed_extensions}")
1122
1123 # Iterate over each filename
1124 foreach(filename IN LISTS filenames)
1125 # Get just the filename without directory
1126 get_filename_component(file_name_only "${filename}" NAME)
1127
1128 # Try to match against each allowed extension (longest first)
1129 set(found_valid_extension FALSE)
1130 set(matched_extension "")
1131
1132 foreach(ext IN LISTS sorted_extensions)
1133 # Check if filename ends with this extension
1134 string(REGEX MATCH "\\.${ext}$" match_result "${file_name_only}")
1135 if(match_result)
1136 set(found_valid_extension TRUE)
1137 set(matched_extension "${ext}")
1138 break()
1139 endif()
1140 endforeach()
1141
1142 if(NOT found_valid_extension)
1143 # Extract what we think is the extension for error message
1144 string(REGEX MATCH "\\.[^.]*$" file_extension "${file_name_only}")
1145 string(REGEX REPLACE "\\." "" clean_extension "${file_extension}")
1146 message(FATAL_ERROR "File '${filename}' has an invalid extension: '${clean_extension}'. Allowed extensions are: ${extensions}")
1147 endif()
1148
1149 # Additional check: ensure no dots in basename (before the extension) unless allowed
1150 if(NOT ARG_ALLOW_DOTS_IN_BASENAME)
1151 # Remove the matched extension to get the basename
1152 string(REGEX REPLACE "\\.${matched_extension}$" "" basename "${file_name_only}")
1153
1154 # Check if basename contains a dot
1155 string(FIND "${basename}" "." dot_pos)
1156 if(NOT ${dot_pos} EQUAL -1)
1157 message(FATAL_ERROR "File '${filename}' has a dot in the basename before the extension. Only the extension dot is allowed.")
1158 endif()
1159 endif()
1160 endforeach()
1161
1162 # Success message if all extensions are valid
1163 #message(STATUS "All files have valid extensions.")
1164endfunction()
1165
1166# ##################################################################################################
1167# Add base directory to files
1168# ##################################################################################################
1169function(AddBaseDir baseDir sourceListVar )
1170 SET(temp "") # Temporary list to store valid files
1171
1172 # Iterate over the files in the provided list
1173 foreach(fileName IN LISTS "${sourceListVar}")
1174 if(EXISTS "${baseDir}/${fileName}")
1175 LIST(APPEND temp "${baseDir}/${fileName}")
1176 else()
1177 message(FATAL_ERROR "Source file not found: ${baseDir}/${fileName}")
1178 endif()
1179 endforeach()
1180
1181 # Set output variable with processed list
1182 SET("${sourceListVar}" "${temp}" PARENT_SCOPE)
1183endfunction()
1184
1185if(ALibAllModules)
1186 CheckFileInclusionForCompleteness( "${ALIB_H}" "${ALIB_SOURCE_DIR}" "H" )
1187 CheckFileInclusionForCompleteness( "${ALIB_MODIF}" "${ALIB_SOURCE_DIR}/alib" "ixx" )
1188 CheckFileInclusionForCompleteness( "${ALIB_HPP}" "${ALIB_SOURCE_DIR}/alib" "hpp" )
1189 CheckFileInclusionForCompleteness( "${ALIB_UNI}" "${ALIB_SOURCE_DIR}/alib" "uni.cpp" )
1190 if ( ${APPLE} )
1191 CheckFileInclusionForCompleteness( "${ALIB_UNI}" "${ALIB_SOURCE_DIR}/alib" "mm" )
1192 endif()
1193 CheckFileInclusionForCompleteness( "${ALIB_MOD}" "${ALIB_SOURCE_DIR}/alib" "mod.cpp" )
1194 CheckFileInclusionForCompleteness( "${ALIB_CPP}" "${ALIB_SOURCE_DIR}/alib" "cpp" )
1195 CheckFileInclusionForCompleteness( "${ALIB_MACROS}" "${ALIB_SOURCE_DIR}/alib" "prepro.hpp" )
1196 CheckFileInclusionForCompleteness( "${ALIB_RC}" "${ALIB_SOURCE_DIR}/alib" "alibrc" )
1197endif()
1198set(allowedExtensions "H" "hpp" )
1199 ValidateFileExtensions(ALIB_H allowedExtensions ALLOW_DOTS_IN_BASENAME)
1200set(allowedExtensions "ixx" )
1201 ValidateFileExtensions(ALIB_MODIF allowedExtensions)
1202set(allowedExtensions "hpp" "hpp.inl" "t.hpp" )
1203 ValidateFileExtensions(ALIB_HPP allowedExtensions)
1204set(allowedExtensions "hpp" "prepro.hpp")
1205 ValidateFileExtensions(ALIB_MACROS allowedExtensions)
1206set(allowedExtensions "uni.cpp" "mm" )
1207 ValidateFileExtensions(ALIB_UNI allowedExtensions)
1208set(allowedExtensions "mod.cpp" )
1209 ValidateFileExtensions(ALIB_MOD allowedExtensions)
1210set(allowedExtensions "cpp" )
1211 ValidateFileExtensions(ALIB_CPP allowedExtensions)
1212set(allowedExtensions "alibrc" )
1213 ValidateFileExtensions(ALIB_RC allowedExtensions)
1214AddBaseDir("${ALIB_SOURCE_DIR}" ALIB_H )
1215AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_MODIF )
1216AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_HPP )
1217AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_MACROS )
1218AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_UNI )
1219AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_MOD )
1220AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_CPP )
1221AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_RC )