Skip to content

Commit

Permalink
Version 1912, Revision 0
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexWorx committed Dec 16, 2019
1 parent 39cf3ff commit 83e7562
Show file tree
Hide file tree
Showing 444 changed files with 63,604 additions and 40,200 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ build/cmake/moduletests/compilation_output.txt
docs/pages/generated/
docs/doxygen/dot
docs/doxygenDotFixer.cfg
docs/doxygen/doxyfile.ini

.private
*.zip
*.userprefs
Expand Down
29 changes: 15 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Please find all about the **ALib For C++**, including
* **Project setup guide**
* **Version History / Change log**

at the [ALib Homepage](http://alexworx.github.io/ALib-Class-Library).
at the [ALib Homepage](https://alib.dev).

## Abstract ##

Expand Down Expand Up @@ -54,7 +54,7 @@ The following documentation is provided.
4. A separated **General Manual** is available describing the library structure,
project setup, bootstrapping, etc.

5. A reference to C++ macros and compilation symbols is given.
5. Reference documentation to C++ compiler symbols and macros.

6. Tutorial and reference documentation's <b> code samples</b> are implemented as unit tests and
are integrated as source and output text snippets into the documentation.
Expand All @@ -69,17 +69,18 @@ The following documentation is provided.
## IDE / Build System Setup ##
The C++ Version got tested on the following platform combinations:
- GNU/Linux (Arch Linux)
- [GNU Compiler Collection 8.2.1](https://gcc.gnu.org/)
- [clang compiler 7.0.1](http://llvm.org/)
- [CMake 3.13.4](https://cmake.org/)
- [CLion 2019.1 EAP](https://www.jetbrains.com/cpp)
- [Valgrind V. 3.14.0](http://valgrind.org/)
- [GNU Compiler Collection 9.2.0](https://gcc.gnu.org/)
- [clang compiler 9.0.0](http://llvm.org/)
- [CMake 3.16](https://cmake.org/)
- [CLion 2019.3](https://www.jetbrains.com/cpp)
- [Valgrind V. 3.15.0](http://valgrind.org/)

- Windows 10
- Visual Studio 2017, Version 15.9.4
- Visual Studio 2017, Version 15.9.18

- macOS Sierra: <em>The current release is not tested and most probably does not compile!</em>.<br>
<b>Please volunteer for help!</b>
- macOS Catalina 10.15.1
- Apple Clang Version 11.0.0
- [CLion 2019.3.1](https://www.jetbrains.com/cpp)

The Programmer's Manual contains an extensive chapter about how to compile and use ALib in your
C++ environment.
Expand Down Expand Up @@ -117,16 +118,16 @@ to just all of these millions of supporters of *free software*, including:
- The [CMake](https://cmake.org/) project,
- The [QT Creator](http://doc.qt.io/qtcreator) team,
- Microsoft for providing [Visual Studio Community Edition](https://www.visualstudio.com/vs/community/) project,
- To company [JetBrains](https://www.jetbrains.com) for providing a free
[Open Source License](https://www.jetbrains.com/buy/opensource/)
- To company [JetBrains](https://www.jetbrains.com) for providing a
[free license to open source developers](https://www.jetbrains.com/buy/opensource/)
of their absolutely superb and unrivalled set of IDEs for various programming languages.
- To <b>Dimitri van Heesch</b> for providing marvelous documentation software [Doxygen](http://doxygen.nl).

Special thanks also to C. Darwin, who created life on earth hundreds of millions of years ago,
until he - when things became too crazy - passed away in 1882.
until he - when things became too crazy - disappeared in 1882.


## More Information... ##
Please visit the [ALib Homepage](http://alexworx.github.io/ALib-Class-Library)!
Please visit the [ALib Homepage](https://alib.dev)!


587 changes: 363 additions & 224 deletions build/cmake/ALib.cmake

Large diffs are not rendered by default.

137 changes: 68 additions & 69 deletions build/cmake/ALibModules.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@
#
# Notes:
# This script resolves dependencies between ALib modules and lists selected plus necessary
# modules in variable ALIB_MODULES.
# This CMake file is inlcuded by "ALib.cmake" automatically and is not intended for manual
# inclusion. Its contents was separated into a separated cmake file soley for clearity.
# modules in variable ALIB_DISTRIBUTION.
# This CMake file is included by "ALib.cmake" automatically and is not intended for manual
# inclusion. Its contents was separated into a separated cmake file solely for clarity.
# #################################################################################################

SET( ALIB_FILESETS "" )

# check for unknown module name
foreach (modName ${ALIB_MODULES})
foreach (modName ${ALIB_DISTRIBUTION})
if( NOT ( ${modName} STREQUAL "ALL" )
AND NOT ( ${modName} STREQUAL "ALOX" )
AND NOT ( ${modName} STREQUAL "EXPRESSIONS" )
AND NOT ( ${modName} STREQUAL "CONFIGURATION" )
AND NOT ( ${modName} STREQUAL "CLI" )
AND NOT ( ${modName} STREQUAL "SYSTEM" )
AND NOT ( ${modName} STREQUAL "RESULTS" )
AND NOT ( ${modName} STREQUAL "STRINGFORMAT" )
AND NOT ( ${modName} STREQUAL "TEXT" )
AND NOT ( ${modName} STREQUAL "RESOURCES" )
AND NOT ( ${modName} STREQUAL "THREADS" )
AND NOT ( ${modName} STREQUAL "STRINGS" )
Expand All @@ -31,146 +31,145 @@ foreach (modName ${ALIB_MODULES})
AND NOT ( ${modName} STREQUAL "CHARACTERS" )
AND NOT ( ${modName} STREQUAL "ENUMS" )
AND NOT ( ${modName} STREQUAL "SINGLETONS" )
AND NOT ( ${modName} STREQUAL "MEMORY" )
AND NOT ( ${modName} STREQUAL "MONOMEM" )

)
MESSAGE( FATAL_ERROR "ALib: Unknown module name \"${modName}\" given!")
return()
endif()
endforeach()

# if nothing is given, ALL is chosen
if( NOT ALIB_MODULES )
MESSAGE( "ALib: No module specified with list variable \"ALIB_MODULES\". Setting default \"ALL\".")
list( APPEND ALIB_MODULES "ALL" )
if( NOT ALIB_DISTRIBUTION )
MESSAGE( "ALib: No module specified with list variable \"ALIB_DISTRIBUTION\". Setting default \"ALL\".")
list( APPEND ALIB_DISTRIBUTION "ALL" )
endif()

# resolve module dependencies
list( FIND ALIB_MODULES "ALL" idx )
list( FIND ALIB_DISTRIBUTION "ALL" idx )
if( NOT idx LESS 0 )
LIST( REMOVE_AT ALIB_MODULES ${idx} )
list( APPEND ALIB_MODULES "ALOX" )
list( APPEND ALIB_MODULES "EXPRESSIONS" )
list( APPEND ALIB_MODULES "CLI" )
LIST( REMOVE_AT ALIB_DISTRIBUTION ${idx} )
list( APPEND ALIB_DISTRIBUTION "ALOX" )
list( APPEND ALIB_DISTRIBUTION "EXPRESSIONS" )
list( APPEND ALIB_DISTRIBUTION "CLI" )
list( APPEND ALIB_DISTRIBUTION "THREADS" )
endif()

#### full modules ####
list( FIND ALIB_MODULES "ALOX" idx )
list( FIND ALIB_DISTRIBUTION "ALOX" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "CONFIGURATION" )
list( APPEND ALIB_MODULES "THREADS" )
list( APPEND ALIB_DISTRIBUTION "CONFIGURATION" )
endif()

list( FIND ALIB_MODULES "EXPRESSIONS" idx )
list( FIND ALIB_DISTRIBUTION "EXPRESSIONS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "RESULTS" )
list( APPEND ALIB_DISTRIBUTION "RESULTS" )
list( APPEND ALIB_FILESETS "PLUGINS" )
endif()

list( FIND ALIB_MODULES "CONFIGURATION" idx )
list( FIND ALIB_DISTRIBUTION "CONFIGURATION" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "SYSTEM" )
list( APPEND ALIB_DISTRIBUTION "SYSTEM" )
list( APPEND ALIB_FILESETS "PLUGINS" )
endif()

list( FIND ALIB_MODULES "SYSTEM" idx )
list( FIND ALIB_DISTRIBUTION "SYSTEM" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "RESULTS" )
list( APPEND ALIB_MODULES "TIME" )
list( APPEND ALIB_DISTRIBUTION "RESULTS" )
list( APPEND ALIB_DISTRIBUTION "TIME" )
endif()

list( FIND ALIB_MODULES "CLI" idx )
list( FIND ALIB_DISTRIBUTION "CLI" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "RESULTS" )
list( APPEND ALIB_DISTRIBUTION "RESULTS" )
endif()

list( FIND ALIB_MODULES "RESULTS" idx )
list( FIND ALIB_DISTRIBUTION "RESULTS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "STRINGFORMAT" )
list( APPEND ALIB_DISTRIBUTION "TEXT" )
endif()

list( FIND ALIB_MODULES "STRINGFORMAT" idx )
list( FIND ALIB_DISTRIBUTION "TEXT" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "RESULTS" )
list( APPEND ALIB_MODULES "STRINGS" )
list( APPEND ALIB_MODULES "BOXING" )
list( APPEND ALIB_MODULES "RESOURCES" )
list( APPEND ALIB_MODULES "ENUMS" )
list( APPEND ALIB_DISTRIBUTION "RESULTS" )
list( APPEND ALIB_DISTRIBUTION "STRINGS" )
list( APPEND ALIB_DISTRIBUTION "BOXING" )
list( APPEND ALIB_DISTRIBUTION "RESOURCES" )
list( APPEND ALIB_DISTRIBUTION "ENUMS" )
list( APPEND ALIB_FILESETS "MODULES" )
list( APPEND ALIB_FILESETS "OWNER" )
endif()

#### micro modules ####
list( FIND ALIB_MODULES "RESOURCES" idx )
list( FIND ALIB_DISTRIBUTION "RESOURCES" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "STRINGS" )
list( APPEND ALIB_MODULES "MEMORY" )
list( APPEND ALIB_MODULES "SINGLETONS" )
list( APPEND ALIB_DISTRIBUTION "STRINGS" )
list( APPEND ALIB_DISTRIBUTION "MONOMEM" )
list( APPEND ALIB_DISTRIBUTION "SINGLETONS" )
endif()

list( FIND ALIB_MODULES "THREADS" idx )
list( FIND ALIB_DISTRIBUTION "THREADS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "STRINGS" )
list( APPEND ALIB_MODULES "TIME" )
list( APPEND ALIB_DISTRIBUTION "STRINGS" )
list( APPEND ALIB_FILESETS "OWNER" )
endif()

list( FIND ALIB_MODULES "STRINGS" idx )
list( FIND ALIB_DISTRIBUTION "STRINGS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "CHARACTERS" )
list( APPEND ALIB_DISTRIBUTION "CHARACTERS" )
list( APPEND ALIB_FILESETS "COMMON_ENUMS" )
endif()

list( FIND ALIB_MODULES "BOXING" idx )
list( FIND ALIB_DISTRIBUTION "BOXING" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_MODULES "SINGLETONS" )
list( APPEND ALIB_MODULES "CHARACTERS" )
list( APPEND ALIB_DISTRIBUTION "SINGLETONS" )
list( APPEND ALIB_DISTRIBUTION "CHARACTERS" )
list( APPEND ALIB_FILESETS "LISTS" )
endif()


list( FIND ALIB_MODULES "CHARACTERS" idx )
list( FIND ALIB_DISTRIBUTION "CHARACTERS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_FILESETS "PREDEF_PF" )
list( APPEND ALIB_FILESETS "PREDEF_TMP" )
list( APPEND ALIB_FILESETS "DEBUG" )
list( APPEND ALIB_FILESETS "INTEGERS" )
list( APPEND ALIB_FILESETS "COMMON_ENUMS" )
list( APPEND ALIB_FILESETS "DEBUG" )
list( APPEND ALIB_FILESETS "INTEGERS" )
list( APPEND ALIB_FILESETS "COMMON_ENUMS" )
endif()


list( FIND ALIB_MODULES "SINGLETONS" idx )
list( FIND ALIB_DISTRIBUTION "ENUMS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_FILESETS "TYPEMAP" )
list( APPEND ALIB_DISTRIBUTION "SINGLETONS" )
endif()


list( FIND ALIB_MODULES "MEMORY" idx )
list( FIND ALIB_DISTRIBUTION "SINGLETONS" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_FILESETS "PREDEF_PF" )
list( APPEND ALIB_FILESETS "DEBUG" )
list( APPEND ALIB_FILESETS "INTEGERS" )
list( APPEND ALIB_FILESETS "DEBUG" )
list( APPEND ALIB_FILESETS "INTEGERS" )
endif()


list( FIND ALIB_MODULES "TIME" idx )
list( FIND ALIB_DISTRIBUTION "MONOMEM" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_FILESETS "INTEGERS" )
list( APPEND ALIB_FILESETS "COMMON_ENUMS" )
list( APPEND ALIB_FILESETS "DEBUG" )
list( APPEND ALIB_FILESETS "INTEGERS" )
list( APPEND ALIB_FILESETS "COMMON_ENUMS" )
list( APPEND ALIB_FILESETS "LISTS" )
endif()

list( FIND ALIB_MODULES "ENUMS" idx )

list( FIND ALIB_DISTRIBUTION "TIME" idx )
if( NOT idx LESS 0 )
list( APPEND ALIB_FILESETS "PREDEF_TMP" )
list( APPEND ALIB_FILESETS "INTEGERS" )
list( APPEND ALIB_FILESETS "COMMON_ENUMS" )
endif()




### clean and sort module list
LIST( REMOVE_DUPLICATES ALIB_MODULES )
LIST( SORT ALIB_MODULES )
LIST( REMOVE_DUPLICATES ALIB_DISTRIBUTION )
LIST( SORT ALIB_DISTRIBUTION )

SET( maxModules 16 )
list( LENGTH ALIB_MODULES length)
list( LENGTH ALIB_DISTRIBUTION length)
if( length GREATER ${maxModules} )
message( FATAL_ERROR "More ALib modules (${length}) than the known ${maxModules}. Script is inconsistent!" )
endif()
Expand Down
Loading

0 comments on commit 83e7562

Please sign in to comment.