cbuild/CHANGELOG.md

4.3 KiB

2.3.0

  • Added project user config! Read more in ./project.config.user.default
  • Changed include function: replaced prefix cbuild/ with @cbuild/.
  • CONFIG: Changed cbuild/default_tasks to @cbuild/default_tasks
  • Moved most scripts to include/
  • Renamed default config to ./project.config.default
  • Added functions:
    • file_copy_default_if_not_present()
    • replace_var_value_in_script()

2.2.4

  • default config: C standard changed to C99
  • default config: enabled more warnings
  • added file default_vscode/c_cpp_properties.json
  • fixed copying of default_vscode files

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
  • 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