Skip to content

Commit

Permalink
Merge pull request #173 from tschoonj/4.1.0
Browse files Browse the repository at this point in the history
Get ready for 4.1.0
  • Loading branch information
tschoonj authored Jun 5, 2021
2 parents 0b3c8bc + 4fcec17 commit d513ad9
Show file tree
Hide file tree
Showing 20 changed files with 441 additions and 269 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -354,11 +354,6 @@ jobs:
buildsystem: meson
- image: centos:8
buildsystem: meson
- image: fedora:latest
buildsystem: meson
# autoconf doesnt like the rawhide shell
- image: fedora:rawhide
buildsystem: autotools
include:
# at least some versions of clang cannot compile php bindings
- cython: cython
Expand Down Expand Up @@ -393,6 +388,11 @@ jobs:
perl: disable
python: disable
clang_cflags: -Qunused-arguments
- cc: clang
image: fedora:rawhide
perl: disable
python: disable
clang_cflags: -Qunused-arguments
- image: ubuntu:bionic
lua: /usr/bin/lua5.3
- image: ubuntu:focal
Expand Down Expand Up @@ -505,7 +505,7 @@ jobs:
# disable java for now
./configure --disable-python --disable-python-numpy --${PERL_ENABLE}-perl --enable-lua --${FPC_ENABLE}-pascal --disable-java --${PHP_ENABLE}-php --enable-ruby --${FORTRAN_ENABLE}-fortran2003 || (cat config.log && exit 1)
make
make check || (cat ruby/tests/test-suite.log && exit 1)
make check || (cat example/xrlexample12.sh.log && exit 1)
make distclean
./configure --disable-all-bindings CFLAGS="-std=c89 -pedantic $CFLAGS"
make
Expand Down
11 changes: 11 additions & 0 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
Version 4.1.0 Tom Schoonjans

- Add meson as alternative buildsystem
- Add API to calculate XRF cross sections for whole shells, instead of
individual lines (suggested by Oleg Shirokobrod)
- Lightweight C++ wrappers through a header-only library (contributed by Marius Schollmeier and myself)
- Add Google Analytics tracking to Python bindings and Java implementation
- Update L values of CosKronTransProb and FluorYield for W, Re, Sn and Sb,
using work from Ayri, Kaur, Kumar, Czyzycki, Karydas and Puri


Version 4.0.0 Tom Schoonjans

Major changes:
Expand Down
100 changes: 22 additions & 78 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ required in addition to the C compiler.
After unpacking the distribution, if the "configure" file is missing, this file
is generated using the command:

autoreconf -i
autoreconf -i

If errors are generated, make sure you have a relatively up-to-date version of autoconf.
Makefiles can be prepared using the configure command:
Expand Down Expand Up @@ -42,100 +42,44 @@ configure. Consult the "Further information" section below for
instructions on installing the library in another location or changing
other default compilation options.

Alternatively, you can also use the meson buildsystem to compile the core C library, Python and Fortran bindings:

mkdir build
meson ..
ninja
ninja test
ninja install

This works particularly well on Windows, and comes with support for the Visual Studio compilers.

-----------------------------------------------


Platforms known to compile and run xraylib
==========================================

Linux (32-bit/64-bit)
Solaris 10 (32-bit/64-bit)
Mac OS X (32-bit/64-bit)
Windows (native and Cygwin)
FreeBSD (64-bit)
Linux (64-bit)
macOS (64-bit)
Windows (MSYS2 and Visual Studio)

32-bit builds should still work, but are no longer routinely tested.

Not all bindings have been tested on each of these platforms. The
following table summarizes the current status.

| Linux | Mac OS X | Solaris | Cygwin | FreeBSD | MinGW |
------------------------------------------------------------------
Fortran | x | x | x | x | x | x |
Perl | x | x | x | x | x | |
Python | x | x | | x | | x |
IDL | x | x | | | | |
Java | x | x | ? | ? | | |
Lua | x | x | | | | |
| Linux | macOS | MSYS2 | VS |
------------------------------------------------
Fortran | x | x | x | x |
Perl | x | x | x | x |
Python | x | x | x | x |
Java | x | x | ? | ? |
Lua | x | x | ? | |
Ruby | x | x | ? | |


-----------------------------------------------




Platform Specific Compilation Notes
===================================

This section documents any known issues with installing xraylib on
specific platforms.
* Mac OS X
* Solaris
* mingw32

Hints for Mac OS X
==================

Standard Mac OS X installations do not come with a C compiler. You can
install this essential compiler by installing the XCode package which
can be found on the Mac OS X cd or can be downloaded from the Apple
Developer Connection website. A free Fortran compiler can be
downloaded from macports.org.

When compiling the IDL bindings on Snow Leopard, make sure that you
are using IDL 7.1. Older IDL versions do not have the necessary 64-bit
libraries


Hints for Solaris
=================

The Sun compiler tools are stored in non-standard directories -- make
sure that all the compiler and linker tools (cc, ar, ranlib, ld) are
on the PATH. A typical PATH should include the directories
/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb in that order.

For example,

$ PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:$PATH
$ ./configure CC=cc

Use gmake instead of make. To do this, invoke:

$ ./configure MAKE=gmake

gmake is not installed by default on Solaris 10, it can be downloaded
from blastwave.org

We have noticed that the compilation of the xrayglob_inline.c file
(using the Sun Studio C compiler) produces many warnings. These can be
ignored safely.

Also, the fortran compiler of the Sun Studio package requires the -M
command line option or the MODDIR environment variable to search for
.mod files. Since not all fortran compilers support this option, we
did not include this in the Makefile of the examples, causing the
fortran test to fail. This can however be circumvented by setting the
MODDIR variable pointing to the src directory.

The IDL bindings currently do not work on Solaris. The main reason
would be that none of the developers currently have access to an IDL
software package on this platform. If you do, and can test the
bindings, please contact the developers.


------------------------------

Further information on the standard GNU installation procedure
==============================================================

Expand Down
8 changes: 3 additions & 5 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ The current stable version of xraylib is always available from http://github.com
Installation
============

xraylib follows the standard GNU installation procedure. Please consult the INSTALL file in this distribution for more detailed instructions.
An installer for Windows including a 32-bit dll and the xraylib headers is also available from the Download section of the github repository.

For information about specific platforms and compilers see the "Compilation Notes" section in the INSTALL file.
xraylib can be compiled using GNU Autotools or meson. Please consult the INSTALL file in this distribution for more detailed instructions.
An installer for Windows including a 64-bit dll and the xraylib headers is also available.

More information about xraylib
==============================
Expand All @@ -32,7 +30,7 @@ This paper was recently superseded by a new publication, covering all aspects of

If you would publish scientific results that were obtained using xraylib, please refer to this paper.

We recently started a mailinglist. Subscription is possible at https://lists.ugent.be/wws/info/xraylib
Subscription to our mailing list is possible at https://lists.ugent.be/wws/info/xraylib

Reporting bugs
==============
Expand Down
4 changes: 2 additions & 2 deletions example/xrlexample12.php
Original file line number Diff line number Diff line change
Expand Up @@ -204,15 +204,15 @@
printf (" Name: %s\n", $cdn["name"]);
printf (" Density: %f g/cm3\n", $cdn["density"]);
for ($i = 0 ; $i < $cdn["nElements"] ; $i++) {
printf(" Element %i: %f %%\n",$cdn["Elements"][$i],$cdn["massFractions"][$i]*100.0);
printf(" Element %d: %f %%\n",$cdn["Elements"][$i],$cdn["massFractions"][$i]*100.0);
}

$cdn = GetCompoundDataNISTByIndex(NIST_COMPOUND_BRAIN_ICRP);
printf ("NIST_COMPOUND_BRAIN_ICRP\n");
printf (" Name: %s\n", $cdn["name"]);
printf (" Density: %f g/cm3\n", $cdn["density"]);
for ($i = 0 ; $i < $cdn["nElements"] ; $i++) {
printf(" Element %i: %f %%\n",$cdn["Elements"][$i],$cdn["massFractions"][$i]*100.0);
printf(" Element %d: %f %%\n",$cdn["Elements"][$i],$cdn["massFractions"][$i]*100.0);
}

$nistCompounds = GetCompoundDataNISTList();
Expand Down
2 changes: 2 additions & 0 deletions windows/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,13 @@ common:
unix2dos -n ${top_srcdir}/include/xraylib-error.h xraylib-error.h
unix2dos -n ${top_srcdir}/include/xraylib-nist-compounds.h xraylib-nist-compounds.h
unix2dos -n ${top_srcdir}/include/xraylib-radionuclides.h xraylib-radionuclides.h
unix2dos -n ${top_srcdir}/include/xraylib-aux.h xraylib-aux.h
unix2dos -n ${top_srcdir}/pascal/xraylib.pas xraylib.pas
unix2dos -n ${top_srcdir}/pascal/xraylib_const.pas xraylib_const.pas
unix2dos -n ${top_srcdir}/pascal/xraylib_iface.pas xraylib_iface.pas
unix2dos -n ${top_srcdir}/pascal/xraylib_impl.pas xraylib_impl.pas
unix2dos -n ${top_srcdir}/example/xrlexample14.pas xrlexample14.pas
unix2dos -n ${top_srcdir}/cplusplus/xraylib++.h xraylib++.h



Expand Down
Binary file modified windows/dotNet32/XrayLib.NET.dll
Binary file not shown.
Binary file added windows/dotNet32/XrayLib.NETCore.dll
Binary file not shown.
Binary file modified windows/dotNet64/XrayLib.NET.dll
Binary file not shown.
Binary file added windows/dotNet64/XrayLib.NETCore.dll
Binary file not shown.
Loading

0 comments on commit d513ad9

Please sign in to comment.