# FSL base project changelog ## 2112.2 (Monday 13th December 2021) * Fixed installation permissions on the `$FSLDIR/config/depend.sh` script. ## 2112.1 (Monday 13th December 2021) * Adjust the `depend.mk` rule to support automatic dependency generation for `.cu` CUDA source files. ## 2112.0 (Saturday 11th December 2021) * Add `-pthread` to the standard C++ compiler flags for `g++`. * Adjust the `depend.mk` rule to allow saving object files to a separate build directory. ## 2111.9 (Wednesday 8th December 2021) * If the `${LDFLAGS}` environment variable is set in the environment, any `-L` options are dropped from it, so that the `$FSLDEVDIR` can explicitly be set to take precedence over `$FSLDIR`. * `${FSLDEVDIR}` doesn't have to exist - if it is set before `${FSLDIR}/etc/fslconf/fsl-devel.sh` is run, it will not be overridden. ## 2111.8 (Friday 26th November 2021) * Work around an issue with compiling against older versions of `libxml++`, when using `-std=c++17`. * The `FSLLOCKDIR`, `FSLMACHINELIST`, `FSLREMOTECALL` and `FSLPARALLEL` variables are not defined by default. ## 2111.7 (Friday 19th November 2021) * Fixed an issue in the construction of `${NVCCFLAGS}` and `${CUDACXXFLAGS}`. ## 2111.6 (Friday 19th November 2021) * New convention for compiling C++ files which are part of a CUDA library or executable, using `${CUDACXXFLAGS}`. ## 2111.5 (Friday 19th November 2021) * Set `-std=c++14` for `nvcc`-compiled code, as CUDA 11.0 is the first version to support `-std=c++17`, and we are targeting older CUDA versions. ## 2111.4 (Wednesday 17th November 2021) * The default C++ language standard is now `-std=c++17`. ## 2111.3 (Wednesday 17th November 2021) * The `$FSLDEVDIR/lib` directory is now added to the `rpath` entry for shared libraries and executables, if `$FSLDEVDIR` is different from `$FSLDIR`. ## 2111.2 (Monday 15th November 2021) * Added the `FSL_GE_606` `Makefile` flag for use by projects which need to retain support for compiling against older versions of FSL. ## 2111.1 (Friday 12th November 2021) - Tweak to how the `-install_name` option is set. ## 2111.0 (Thursday 11th November 2021) - The `-rpath` is explicitly set on executables and shared libraries, and the `-install_name` set on shared libraries under macOS. This is to support local development, and execution of commands from their `$FSLDIR/src/` directory. ## 2109.1 (Wednesday 22nd September 2021) - Updated the `supportedGencodes.sh` script for CUDA 11.2, 11.3, and 11.4. ## 2109.0 (Monday 13th September 2021) - Added an extra unit test. ## 2108.3 (Friday 13th August 2021) - Fix to the `Makefile`, as `$FSLDIR/doc/fsl.css` was not being installed. ## 2108.2 (Wednesday 11th August 2021) - Change to `createFSLWrapper` and `removeFSLWrapper` to accommodate naming conventions for FSL GUI commands (`<Command>_gui` on macOS, and `<Command>` on Linux). ## 2108.1 (Monday 9th August 2021) - Reverted the python library installation directory to `$FSLDIR/python` - this can be changed in the future if it is ever deemed problematic. ## 2108.0 (Friday 6th August 2021) - Added some files used by FEAT and MELODIC to generate HTML reports. - The `$FSLDIR/etc/fslconf/fsl.sh` script now uses `$FSLDIR/etc/fslversion` to identify official FSL installations - if this file is present, `$FSLDIR/share/fsl/bin` is automatically added to the `$PATH` variable. - The `$FSLDIR/share/fsl/sbin/createFSLWrapper` script now detects `pythonw` executables. ## 2107.3 (Monday 12th July 2021) - Change CUDA build configuration so that now all is needed is for `nvcc` to be on the `$PATH`, or a `$NVCC` variable to be set. ## 2107.2 (Sunday 11th July 2021) - Further tweaks to CUDA linking logic. ## 2107.1 (Friday 9th July 2021) - Fix an issue with CUDA linking. ## 2107.0 (Thursday 8th July 2021) - Allow CUDA projects to statically link to the CUDA runtime and toolkit components, by setting a variable `CUDA_STATIC`. ## 2106.2 (Tuesday 22nd June 2021) - Fixed an issue with `createFSLWrapper` on macOS. ## 2106.1 (Friday 6th June 2021) - Updated the `supportedGencodes.sh` script to add JIT targets for CUDA projects. - Added a Makefile. ## 2101.5 (Saturday 23rd January 2021) - Updated the `supportedGencodes.sh` script to support CUDA versions 10.2, 11.1 and 11.2. - Fixed a bug in the final creation of `NVCCFLAGS` and `NVCCLDFLAGS`. ## 2101.4 (Friday 22nd January 2021) - Fixed a bug in the default CFLAGS assignment under Linux. - Cleaned up and adjusted support for NVCC-compiled CUDA projects to work better within a conda build environment. May still be in a state of flux. ## 2101.3 (Thursday 14th January 2021) - The `$FSLDIR/etc/fslconf/fsl.sh` script now automatically adds `$FSLDIR/share/fsl/bin/` to the `$PATH`, for official (`fslinstaller`-installed) FSL installations. - The `$FSLDIR/etc/fslconf/fsl-devel.sh` script now activates the `$FSLDIR` conda environment, for official (`fslinstaller`-installed) FSL installations. - The `$FSLDIR/etc/fslconf/fsl-devel.sh` script now assigns default values to `$FSLDEVDIR` and `$FSLCONFDIR`, if they are not set by the user. ## 2101.2 (Friday 8th January 2021) - Removed the legacy `bin/fsl_sub` script - `fsl-sub` is now available on conda, so can be listed as a dependency of the `fsl/base` project. ## 2101.1 (Tuesday 5th January 2021) - Move contents of `config/common/` into `config/` - there is no need for a separate directory level now that we aren't maintaining separate configurations for different architectures/compilers. - The default C++ compilation standard is now `-std=c++11` (previously it was `-std=c++98`/`-ansi`). - Allow projects to set custom C preprocessor flags, via `USRCPPFLAGS`. ## 2101.0 (Monday 4th January 2021) - Moved the copyright insertion machinery (script and templates) from `config/common/` into `share/fsl/`. - Unify `fsl.sh` and `fsl-devel.sh` so the latter simply invokes the former. - Fix an issue with argument pass-through in the `fslpython[w]` wrapper scripts. - Removed the `etc/fslconf/fslmachtype.sh` script, as neither it, nor the `FSLMACHTYPE` environment variable, are used by anything. ## 2012.0 (Wednesday 2nd December 2020) - Added `creeateFSLWrapper` and `removeFSLWrapper`, utility commands, which will be used to create isolated wrapper scripts of all FSL executables in a separate sub-directory, so they can be added to the user `$PATH` without other executables in `$PREFIX/bin/` causing conflicts (!1). ## 2011.0 (Monday 2nd November 2020) - Initial release of the FSL `base` project - an amalagamation of `fsl/etc` and `fsl/config`, which has been adjusted to compile shared libraries with dynamic linking, and tweaked for use as the base of a `conda`-managed FSL installation.