I'm in the process of wrapping part of an important tool for Radio 
Astronomers: CasaCore (relevant branch: 
https://github.com/mweastwood/CasaCore.jl/tree/maketraviswork). 
Unfortunately CasaCore is a C++ library, so I have first written a C 
interface that needs to be compiled.

I am using BinDeps to download and compile CasaCore (if it is not already 
present on the system), and then build the C wrapper. On my own machine, 
this works perfectly (although I am cheating somewhat because CasaCore is 
already built on my machine):

julia> Pkg.build("CasaCore")
INFO: Building CasaCore
INFO: Attempting to Create directory 
/home/mweastwood/.julia/CasaCore/deps/downloads
INFO: Downloading file 
ftp://ftp.atnf.csiro.au/pub/software/casacore/casacore-1.7.0.tar.bz2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time 
 Current
                                 Dload  Upload   Total   Spent    Left 
 Speed
100 6019k  100 6019k    0     0   414k      0  0:00:14  0:00:14 --:--:-- 
 925k
INFO: Done downloading file 
ftp://ftp.atnf.csiro.au/pub/software/casacore/casacore-1.7.0.tar.bz2
INFO: Attempting to Create directory 
/home/mweastwood/.julia/CasaCore/deps/src
INFO: Directory /home/mweastwood/.julia/CasaCore/deps/src already created
INFO: Attempting to Create directory /home/mweastwood/.julia/CasaCore/deps
INFO: Directory /home/mweastwood/.julia/CasaCore/deps already created
INFO: Attempting to Create directory 
/home/mweastwood/.julia/CasaCore/deps/src/casacore-1.7.0
INFO: Attempting to Create directory 
/home/mweastwood/.julia/CasaCore/deps/builds/casacorewrapper
INFO: Directory 
/home/mweastwood/.julia/CasaCore/deps/builds/casacorewrapper already created
INFO: Changing Directory to 
/home/mweastwood/.julia/CasaCore/deps/builds/casacorewrapper
g++ -c -Wall -Werror -fpic ../../src/casacorewrapper/containers.cpp 
-I../../src/casacore-1.7.0
g++ -c -Wall -Werror -fpic ../../src/casacorewrapper/tableswrapper.cpp 
-I../../src/casacore-1.7.0
g++ -c -Wall -Werror -fpic ../../src/casacorewrapper/measureswrapper.cpp 
-I../../src/casacore-1.7.0
g++ -shared -o libcasacorewrapper.so containers.o tableswrapper.o 
measureswrapper.o -L../../usr/lib -lcasa_tables -lcasa_measures
mkdir -p ../../usr/lib
cp libcasacorewrapper.so ../../usr/lib

julia> Pkg.test("CasaCore")
INFO: Testing CasaCore
INFO: CasaCore tests passed
INFO: No packages to install, update or remove

However, on Travis, I'm at my wits end trying to figure out why this 
doesn't work. See the build log here (note, scroll right to the bottom, 
CasaCore is a huge dependency that takes a while to compile):
https://travis-ci.org/mweastwood/CasaCore.jl/builds/43496822

Confusingly, both CasaCore and my C wrapper seem to build successfully. 
Indeed, checking the deps/usr/lib directory on Travis indicates that all 
the appropriate shared libraries exist, but BinDeps fails with

Provider BinDeps.BuildProcess failed to satisfy dependency 
libcasacorewrapper
while loading /home/travis/.julia/v0.4/CasaCore/deps/build.jl, in 
expression starting on line 61

I would really appreciate any guidance on how to solve this problem.

-- Michael

Reply via email to