## 2.2.4 + **default config**: C standard changed to C99 + **default config**: enabled more warnings ## 2.2.3 + removed `\r` characters from `detect_os.sh` ## 2.2.2 + `bootstrap.sh` can show help for cbuild installations again + copy dependency out files only if they are newer or don't exist ## 2.2.1 + updated `bootsrap.sh` to 1.0.2 ## 2.2.0 + **config**: removed slash after `--fullpath-after` in `VALGRIND_ARGS` + **config**: removed `CONFIG_VERSION` variable + **config**: added `LINKER_LIBS` variable + added `detect_arch` function and `ARCH` global variable + added [default vscode launch config](./default_vscode/) + refactored `sed` calls to not use `-i` argument because it caused errors on NTFS ## v2.1.4 + added `-Wl,-rpath` argument generation in `link()`. It forces ld to link to local shared library in `OUTDIR` ## v2.1.3 + added `DEP_OTHER_OUT_FILES` to dependency configs + if `PRESERVE_OUT_DIRECTORY_STRUCTURE=true` then `DEP_DYNAMIC_OUT_FILES` and `DEP_OTHER_OUT_FILES` are copied to `OUTDIR` preserving directory structure (example_dir/lib1.so -> $OUTDIR/example_dir/lib1.so) ## v2.1.2 + changed compile_c and compile_cpp functions + bootstrap now can print help and list of installed versions ## v2.1.1 + **config**: removed `TESTS_C` and `TESTS_CPP` compilation ## v2.1.0 + **config**: no more `current.config` and `default.config`, just `project.config` + improved version checking + `setup.sh` now installs each minor version in separate dicectory + added `bootstrap.sh` which automaticly selects cbuild version specified in project config ## v2.0.2 + new dependency resolution system (see **config** and `example_dependency_configs`) + **config**: changed description of `OBJDIR` + **config**: added task `rebuild_dependencies` + added variable `TASK_ARGS` which can be used in task scripts ## v2.0.1 + updated `.gitignore` + **config**: added `pwd` call to `valgrind` task + **config**: added `""` empty task check ## 2.0.0 + updated setup.sh to do system-wide installation + deleted makefile (call `./cbuild.sh` or installed `cbuild`) + added command line arguments: + `--help` + `--version` + `--current-config` + `--default-config` + `--new-project` + all shebang changed to `#!/usr/bin/env bash` + `init.sh` became `config.sh` with function `load_config` + moved color variables and print functions to `myprint.sh` ## v1.7.0 + added function `resolve_dependencies` to `link` + added variables `DEPS_BASEDIR` and `DEPS` to config + added script `rebuild_dep.sh` which can be called through `Makefile` + added dependency cleaning in `default_tasks/clean.sh` + added task `callgrind` + added task `no_task` which is been set in `init.sh` when `TASK` is empty + now `STATIC_LIB_FILE` starts with "lib" ## v1.6.0 + `build_profile` task was split to `profile` and `gprof` + added task `sanitize` + default C++ standard set to `c++11` + added `INCLUDE` to `default.config` + moved `LINKER_ARGS` to the end of linkage command in `functions.sh` to properly link static libs + added function `try_delete_dir_or_file` for `clean` task + dead code removal in `build_exec` and `build_static_lib` ## v1.5.0 + added task `clean` + added task `exec_dbg` + added task `build_profile` + added `-flto` optimization to `build_exec` task + added `-fprofile-use` to `build_exec` task + removed default configs loading in `init.sh`, now reads just line with version from `cbuild/default.config` and `default.config` + `OBJDIR` structure changed + added error on unknown task in config + makefile now writes logs to `make_raw.log` + added makefile task `fix_log` + new comments in scripts and Makefile + wrapped arguments with quots in scripts + now you have to add `CPP_ARGS` to `LINKER_ARGS` manually + added `error(msg)` function to `functions.sh` + replaced `printf` calls with `myprint` in scripts + added default `.gitignore` + added *.log to `.gitignore`