Releases: grasph/wrapit
v1.4.0
v1.3.3
- Improved
--version
display in case of a binary build from a not-tagged development version. - Add support for enum forward declarations.
- Source directory of generated Julia module customizable with the out_jl_subdir configurable.
- Improved documentation: document
vetoed_copy_ctor_classes
config option; add a FAQ with useful tips. - Add support for
jlcxx::Array
andjlcxx::ArrayRef
. - Support of CxxWrap 0.16
Full Changelog: v1.3.2...v1.3.3
Contributors to the code update with respect to the previous release: Philippe Gras and James Wrigley
v1.3.2
v1.3.1
v1.3.0
Add support for CxxWrap 0.15.x and several improvements.
CxxWrap 0.15.x support
The CxxWrap version the code should be generated for can now be selected using the new cxxwrap_version
configuration parameter, and different code will be generated for versions before and after 0.15.0.
JuliaInterop/CxxWrap.jl#419. The unit tests and the ROOT example that use such vector are configured to use 0.14.x version for now.
Other improvements:
- new --get command line option to retrieve values of some parameters;
- new --add-cfg command line option to configure parameter normally set in the .wit configuration file;
- fixed generation of the random uuid, which was always the same;
- Add check of the versions of the libcxxwrap when compiling and when running the code.
- cleanup of Julia package dependencies installation and version handling; Project setting from runtests.jl which is not needed anymore, as each test runs within its own temporary Julia project, was removed.
Contributors to the code update with respect to the previous release: Philippe Gras.
v1.2.0
- [BREAKING CHANGE] In order to allow loading the Julia module without having to set
LD_LIBRARY_PATH
environment variable or copy the shared library in one of the system library directories, the path is not set relatively to the location of the Julia module file. The Julia module file is now put in asrc
subdirectory of the module directory, whose location is defined byout_jl_dir
and default a directory called as the module and the library is searched in thedeps
subdirectory: previousout_jl_dir =X/Y/Z/src
should be changed toout_jl_dir =X/Y/Z
assrc
will be systematically added. AProject.toml
file is also created, to allow installation of the package auuid
is generated. Now, the Julia module directory looks like
MyWrapper/
├── Project.toml
├── deps
│ └── libjlMyWrapper.so
└── src
└── MyWrapper.jl
The old behaviour can be restored by setting the lib_basename
parameter to lib<module_name>, where <module_name> is the name of the module defined with the module_name
parameter.
- Added support for building the generated code with
cmake
:- generation of a file with useful variables to be included in a
cmake
build configuration file; - added a
cmake
build configuration sample for theex001-HelloWorld
example. - migrated most of the unit tests (from the
test
directory) tocmake
. - added the
--output-prefix
command-line option to prefix all output paths with a directory path, useful for the cmake out-of-source build.
- generation of a file with useful variables to be included in a
- The remaining plain Makefiles were modified to do out-of-source build as
cmake
. - Extended the
ex002-ROOT
example to addTTRee
support, including writing TTrees. - The WRAPIT macro is now assumed to be defined when parsing the input header file (change in the default value of the
macro_definitions
parameter). - New parameters (N) or parameters whose default value was changed (D):
macro_definitions
(D),lib_basename
(D),project_toml_fname
(N),uuid
(N),version
(N) - New command-line options:
--clang
,--output-prefix
Contributors to the code update with respect to the previous release (alphabetic order): Philippe Gras, Greame A. Stewart, Pere Mato
v1.1.1
v1.1.0
General Improvements
- Better handling of c++ library path. It now sets automatically the resource directory that needed to be set before with the clang option list. It can also be set with a command line option which was added to wrapit. Some checks that it is properly set are performed to provide instructions to the user.
- Improved support for MacOS (Pere Mato and Ph. Gras)
C++ support improvements
- Support for std::string_view. It is mapped to const char* when used for function arguments and to std::string when used for a return value.
- Support for more operators. Every C++ operator that can be overloaded should be supported now. Breaking change: %= is now mapped to rem! instead
of mod! to be consistent with the name of the Julia base library rem function. - Map of prefix operator * to [] (getindex()))
- Fix the issues in generated code for classes and global function within a namespace reported in #36 and #38.
- Improved template support (contribution from Allen Hill). Template support is still partial.
Tool installation and usage
- Support to build with clang developement package bundled with only dynamic libraries, like on RedHat and AlmaLinux 9. Beware LLVM needs now to be built with the BUILD_SHARED_LIBS option ON.
- LLVM 13 is now recommended. Support for build against LLVM 17 improved, but it does not pass all tests.
- New vetoed_copy_ctor_classes configurable to allow explicit veto of copy constructor of selected classes.
Fixes
- Two fixes for fields_and_variables option:
- It was responding to fields_an_variables before due to a typo;
- Types of class fields or global variable are no more wrapped if accessors are disabled and the types are not used elsewhere
- Modify code to prevent generation of uncessary .cxx file for vetoed class in the one-file-per-class mode.
- Fix of a bug with base override: in some condtions, some unset_override statements were missing from the generated code.
- Fix of auto_veto for methods depending on a template parameter of its class. auto_veto is now enabled in TestTemplate2
Tests and examples
- Enlarge sets of unit tests.
- Extended the ex-ROOT-002 example
Contributors to the code update with respect to the previous release (alphabetic order): Philippe Gras, Allen Hill, Pere Mato, Graeme A. Steward.
v.1.0.0
Changes with respect to v0.1:
- Several bug fixes
- Support for inheritance from std::string
- Generation of a report file
- Remove wrapping of typedefs
- Documentation update
- Improved finalizer and class constructor wrapper generation
- Better support for natively wrapped stl
- Wrapit release or git ref included in the generated code source
- Support for splitting generated code in several source files
- Support for integral template parameters
Contributors (alphabetic order) to code from previous release: Akiel Aries, Philippe Gras, Allen Hill, Pere Mato, montaquila, t-bltg
First release
Features: complitation o Does not require anymore RTTI support from the LLVM and clang librarues (usually shipped with this support disabled) o Made the ROOT example Makefile more generic