CHANGES
=======

* Silenced git clone command
* Bugfix: added missing dialect flag in Target. Also made some paths absolute to prevent potential bugs
* Added progressbar. Disable does not work, yet
* Bugfix: updated multi-target test toml
* Bugfix: added missing \`import stat\` in test.py
* Improved handling of target directories, fixed tests. Renamed a few variables to hopefully make them clearer. Fixed rmtree call which is not able to remove downloaded git repositories
* Fixed test paths
* Fixed external project, HeaderOnly and SharedLibrary
* Fixed logging in target.py, added external scripts and external target. External target is not yet ready, as include-directories are not set appropriately, yet. Otherwise minor adjustments to variable names and log messages
* More cleanup of clang\_build
* Fixed binaries appearing in the root folder
* Removed more unused imports
* Removed unused imports
* Fixed pbr version to <4 to avoid pbr bug #1761134
* Another shot a fixing multiprocessing on Windows
* Hopefully fixed the windows multiprocessing issue
* Fixed dependency parsing being broken for the last line
* Fixed bug with multiprocessing on windows
* Added default values to argparse help
* Added another test
* Made dependency file parsing safer
* Fixed tests to run on Windows, too
* Removed unused imports
* Added missing networx dependency
* Added missing pathlib2 dependency
* Changed CI scripts to use the new tests
* Added tests and error reporting. Also simplified some bits
* Added more tests
* Added more tests and made clang-build easier to integrate
* Updated project to a more OO approach
* Updated gitignore to ignore all output from setup.py
* Improved build directory paths and usage of build type
* Fixed usage of subprocess.call using lists instead of single strings
* Removed shell=True from subprocess calls
* Fixed search for supported dialects by padding with zeros. Also added verbose output stating supported dialects
* Created a basic pip setup configuration
* Fixed bug in generation of flags in Target. The default flags were not correctly prepended to the list of target flags when not using a build config file
* Updated Readme for new GitHub repo location
* Added License file
* Fixed bugs with processpool and default flags
* Added multiprocess build, added Buildable class to try and simplify. multiprocessing.Pool is now used to trace dependencies and compile in parallel. The Buildable class now contains all information related to a single source file. This is useful  for parallelisation. At some point either the target should contain a minimal amount of information, or the Buildable should contain a reference to the Target it belongs to (probably the latter), in order to avoid unnecessary data duplication
* Only build objects which need to be updated. Now, the object and source modification dates are checked to determine if it needs rebuilding. This is also done for everything listed in an automatically generated depfile
* Updated Readme
* Bugfix for "linking" of header-only libraries. Also improved platform-specific flags. Added -Xclang -flto-visibility-public-std to the platform\_extra\_flags\_... for Windows, which should suppress a warning and prevent possible problems. The platform-specific flags are now more granular (exe, shared, static)
* Improved compilation step by adding build folder structure and fixing shared library build. Also added .h and .c files to default file endings
* Added detection of clang++ and llvm-ar, warning if not found
* Added flags for position independent code on linux shared library
* CI: added OSX and more tests to Travis, added tests to AppVeyor. Also removed Linux build using Python3 from Travis, as it won't work properly
* Improved default options for different build types. Also added [target.flags] section to toml parsing, where compile, compileRelease etc. flags can be set. Also removed unneeded -DCOMPILING\_DLL from shared library  flags and fixed dependency link command
* Improved build process: now using dependency graph. The compile and link processes are each started at the leafs of the dependency graph, which is then traversed up to the roots. Target.compiled and Target.linked can later be used to check if a dependency has been built and the current target can continue when the target has multiple dependencies. This is especially useful for doing parallel builds. Added export declarations to test/lib-and-exe/mylib so that everything should now work also on Windows. Note: the dll needs to be placed next to the exe in order for the exe to run
