cbuild/CHANGELOG.md

99 lines
3.7 KiB
Markdown

## 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`