Commit adc6fa6c94dc90ed430de5e01f7dbd9f67e26fbe
1 parent
9c23d585
Copy shared Python libraries instead of creating a symbolic link (#1987)
Showing
4 changed files
with
34 additions
and
15 deletions
ChangeLog
| 1 | -2017-04-04 | |
| 1 | +2017-04-05 | |
| 2 | 2 | |
| 3 | 3 | * Version 1.3.0 released |
| 4 | 4 | ========================= |
| 5 | 5 | |
| 6 | + Copy shared Python libraries instead of creating a symbolic link (#1987) | |
| 6 | 7 | Added FITS image conversion operators (#1986) |
| 7 | 8 | If code originates from Git, always compile the Python bindings (#1985) |
| 8 | 9 | Raise exception instead of exiting with return code in Python tests (#1983) | ... | ... |
NEWS
| 1 | 1 | New Features and Important Changes in GammaLib 1.3.0.dev1 |
| 2 | 2 | |
| 3 | -4 April 2017 | |
| 3 | +5 April 2017 | |
| 4 | 4 | |
| 5 | 5 | |
| 6 | 6 | 1. Introduction |
| ... | ... | @@ -54,6 +54,10 @@ This solves the problem that occured for developers that could not get rid |
| 54 | 54 | of existing Python wrappers, even if they modified the Python interface |
| 55 | 55 | (#1985). |
| 56 | 56 | |
| 57 | +The shared libraries needed by the Python wrappers are now copied into a | |
| 58 | +build/gammalib directory for unit testing instead of creating a symbolic | |
| 59 | +link since on shared VM file systems symbolic links may not work (#1987). | |
| 60 | + | |
| 57 | 61 | |
| 58 | 62 | 4. Application module |
| 59 | 63 | --------------------- | ... | ... |
inst/cta/src/GCTACubeExposure.cpp
| ... | ... | @@ -701,11 +701,9 @@ void GCTACubeExposure::fill_cube(const GCTAObservation& obs, GLog* log) |
| 701 | 701 | // approximation, but probably the only we can really do. |
| 702 | 702 | // We allow here for a small margin in case of rounding |
| 703 | 703 | // errors in the energy boundaries. |
| 704 | -//std::cout << obs_ebounds.emin() << " <= " << m_energies[iebin] << " <= " << obs_ebounds.emax() << std::endl; | |
| 705 | 704 | if (!(obs_ebounds.contains(m_energies[iebin]) || |
| 706 | 705 | obs_ebounds.contains(m_energies[iebin]-margin) || |
| 707 | 706 | obs_ebounds.contains(m_energies[iebin]+margin))) { |
| 708 | -//std::cout << "Skip" << std::endl; | |
| 709 | 707 | continue; |
| 710 | 708 | } |
| 711 | 709 | ... | ... |
pyext/setup.py.in
| 1 | 1 | ############################################################################# |
| 2 | 2 | # Disutils setup file for gammalib Python extension module # |
| 3 | 3 | # ------------------------------------------------------------------------- # |
| 4 | -# Copyright (C) 2011-2016 Juergen Knoedlseder # | |
| 4 | +# Copyright (C) 2011-2017 Juergen Knoedlseder # | |
| 5 | 5 | # ------------------------------------------------------------------------- # |
| 6 | 6 | # # |
| 7 | 7 | # This program is free software: you can redistribute it and/or modify # |
| ... | ... | @@ -24,6 +24,7 @@ import glob |
| 24 | 24 | import os |
| 25 | 25 | import sys |
| 26 | 26 | import re |
| 27 | +import shutil | |
| 27 | 28 | |
| 28 | 29 | # Define package name |
| 29 | 30 | pkg_name = 'gammalib' |
| ... | ... | @@ -228,19 +229,34 @@ setup(name='@PACKAGE_NAME@', |
| 228 | 229 | platforms=['Linux', 'Solaris', 'Mac OS-X', 'Unix', 'BSD'], |
| 229 | 230 | ) |
| 230 | 231 | |
| 231 | -# Post-processing. A symbolic link is created to the directory containing the | |
| 232 | -# shared wrapper libraries so that we can add this directory to the PYTHONPATH | |
| 233 | -# for testing. | |
| 232 | +# Post-processing. The shared wrapper libraries are copied into the | |
| 233 | +# build/gammalib directory and this directory is appended to the PYTHONPATH | |
| 234 | +# so that shared libraries can be accessed during unit testing. This kluge | |
| 235 | +# is needed since the name of the build directory where the shared libraries | |
| 236 | +# reside is not known when building the Makefile. | |
| 234 | 237 | if is_build: |
| 238 | + | |
| 239 | + # Remove existing build/gammalib directory | |
| 235 | 240 | try: |
| 236 | - os.chdir('build') | |
| 237 | - os.remove('gammalib') | |
| 238 | - print('Removed symbolic link build/gammalib.') | |
| 241 | + os.remove('build/gammalib') | |
| 242 | + print('Removed "build/gammalib" directory.') | |
| 239 | 243 | except: |
| 240 | 244 | pass |
| 245 | + | |
| 246 | + # Create build/gammalib directory | |
| 241 | 247 | try: |
| 242 | - path = glob.glob('lib.*/gammalib') | |
| 243 | - os.symlink(path[0], 'gammalib') | |
| 244 | - print('Created symbolic link build/gammalib.') | |
| 248 | + os.mkdir('build/gammalib') | |
| 249 | + print('Created "build/gammalib" directory.') | |
| 250 | + except (OSError): | |
| 251 | + print('Directory "build/gammalib" exists already.') | |
| 245 | 252 | except: |
| 246 | - print('WARNING: Failed to create symbolic link build/gammalib.') | |
| 253 | + print('ERROR: Failed to create directory "build/gammalib".') | |
| 254 | + raise | |
| 255 | + | |
| 256 | + # Copy over shared libraries from lib.*/gammalib folder | |
| 257 | + files = glob.glob('build/lib.*/gammalib/_*.so') | |
| 258 | + for file in files: | |
| 259 | + dst = os.path.join('build/gammalib', os.path.basename(file)) | |
| 260 | + shutil.copy2(file, dst) | |
| 261 | + print('Copied %s -> %s' % (file, dst)) | |
| 262 | + print('Copied shared libraries into "build/gammalib" directory.') | ... | ... |