Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build on windows using rwinlib and BH #105

Merged
merged 1 commit into from Apr 27, 2018

Conversation

Projects
None yet
2 participants
@jeroen
Copy link
Contributor

jeroen commented Apr 27, 2018

Not saying that this is how you need to do it, but at least this will work on win builder so you can download the binary packages put them on your drat.

# Copyright 2005 Uwe Ligges
# Copyright 2008 - 2015 Dirk Eddelbuettel
# Copyright 2011 Uwe Ligges, Brian Ripley, and Josh Ulrich

This comment has been minimized.

@eddelbuettel

eddelbuettel Apr 27, 2018

Owner

It's a little unusual to remove old attribution so I'll probably put this back in.

DESCRIPTION Outdated
@@ -13,10 +13,9 @@ Depends: R (>= 2.10.0)
Suggests: rgl, RUnit, shiny
LazyLoad: true
Imports: methods, Rcpp (>= 0.11.0), stats, graphics, zoo
LinkingTo: Rcpp
LinkingTo: BH, Rcpp

This comment has been minimized.

@eddelbuettel

eddelbuettel Apr 27, 2018

Owner

I have to think this through. I am not sure yet if that is good. Maybe using the same Boost that QL was build with is better.

But this helps for win-builder. Maybe I just fold it in and out as needed.

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

The fail could be

  • mixing Boost 1.55 with BH
  • related to the older QL 1.11

or something else.

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

Your branch fails for me too here, whereas my master passes. I suspect BH + Boost.

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

And then it passes.

So with that can you please make three changes to the PR:

  1. Pretty-please add the first seven lines of the current src/Makevars.win
  2. Remove BH from LinkingTo
  3. Maybe add OS_type: unix back in (I am ambivalent about this)

All this gives me a way to build a binary and may keep RQL still off CRAN.

@jeroen

This comment has been minimized.

Copy link
Contributor Author

jeroen commented Apr 27, 2018

Without BH we don't have the required boost headers. Also R will refuse to build anything on Windows that has OS_type: unix.

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

With BH you bomb on Travis. Travis has had Boost -dev packages installed for years, else it would not work. So we a) do not need BH and b) it creates problems.

What I am basically suggesting that the PR to master restores the Linux functionality. I will then (at least for now) "manually" mod DESCRIPTION to play on Win-Builder.

Does that make sense?

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

And you rock. I was just about to ask you to add the Boost headers to the quantlib library in rwinlib, and I see you are already on it. 🥇

@jeroen

This comment has been minimized.

Copy link
Contributor Author

jeroen commented Apr 27, 2018

I doubt this will fix it but we'll see. Boost is 120MB of headers alone 😨

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

So on Debian/Ubuntu I do libboost-dev libboost-test-dev which will still be lots, but not all. We could do what BH does and use bcp to create the subset we need.

But this is now mergeable, no longer has a conditional DESCRIPTION -- so let me try and see if this will build on win-builder (without OS_type).

@jeroen

This comment has been minimized.

Copy link
Contributor Author

jeroen commented Apr 27, 2018

Yes if we can somehow extract the subset of boost headers that quantlib needs that would relieve some of the weight.

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

Glance at this script used by BH. Maybe if we just point at 'test'?

@jeroen

This comment has been minimized.

Copy link
Contributor Author

jeroen commented Apr 27, 2018

Is it specified anywhere which boostlibs are used by quantlib?

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

'Base' (not sure what the name is) for boost::shared_ptr and all that, the boost test framework and maybe one more.

For the Debian package I add the same two as I add for Travis: libboost-dev, libboost-test-dev

@jeroen

This comment has been minimized.

Copy link
Contributor Author

jeroen commented Apr 27, 2018

But libboost-dev has everything so that doesn't help us: https://packages.ubuntu.com/bionic/amd64/libboost1.65-dev/filelist

@eddelbuettel

This comment has been minimized.

Copy link
Owner

eddelbuettel commented Apr 27, 2018

It does have a lot, as there are interdependencies. But there are a dozen more libboost$FOO-dev. See:

edd@rob:~$ apt show libboost-all-dev
Package: libboost-all-dev
Version: 1.62.0.1
Priority: optional
Section: universe/libdevel
Source: boost-defaults
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Boost Team <pkg-boost-devel@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 10.2 kB
Depends: libboost-dev, libboost-tools-dev, libboost-atomic-dev, libboost-chrono-dev, \
   libboost-context-dev, libboost-coroutine-dev, libboost-date-time-dev, \
   libboost-exception-dev, libboost-fiber-dev, libboost-filesystem-dev, \
   libboost-graph-dev, libboost-graph-parallel-dev, libboost-iostreams-dev, \
   libboost-locale-dev, libboost-log-dev, libboost-math-dev, libboost-mpi-dev, \
   libboost-mpi-python-dev, libboost-program-options-dev, libboost-python-dev, \
   libboost-random-dev, libboost-regex-dev, libboost-serialization-dev, \
   libboost-signals-dev, libboost-system-dev, libboost-test-dev, libboost-thread-dev, \
   libboost-timer-dev, libboost-type-erasure-dev, libboost-wave-dev
Homepage: http://www.boost.org/
Download-Size: 2,230 B
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
Description: Boost C++ Libraries development files (ALL) (default version)
 The Boost web site provides free, peer-reviewed, portable C++ source
 libraries. The emphasis is on libraries which work well with the C++
 Standard Library. One goal is to establish "existing practice" and
 provide reference implementations so that the Boost libraries are
 suitable for eventual standardization. Some of the libraries have
 already been proposed for inclusion in the C++ Standards Committee's
 upcoming C++ Standard Library Technical Report.
 .
 This metapackage provides the complete Boost development environment,
 including all separately-packaged libraries.
 .
 This package is a dependency package, which depends on Debian's default
 Boost version (currently 1.62).

edd@rob:~$ 

@eddelbuettel eddelbuettel merged commit f3fd11c into eddelbuettel:master Apr 27, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.