Changes between Version 3 and Version 19 of Ticket #18494

05/30/15 03:15:24 (7 years ago)

I disagree. include dirs being the same in and is on the nice to have list but there is no compelling reason why install time and runtime absolutely have to match. In this particular case having the same list in has in means that you want to use the source instead of the installed files at runtime. I don't find that compelling. I cannot really accept a cythonize/"install headers"/build/"final install" routine which could put the two in agreement. I think that's undue complication an breaking of standard building procedures.

So what the current branch does:

  • clean up the "cythonized" path from pxi.h
  • clean so it use installed include directories rather than source ones. Prune useless directories as well and use python mechanism as much as possible rather than path "knowledge" (potentially help python2.3 as well)
  • add cythonized include path in so that pxi.h can find the generated include files at build time
  • add sections to to install header files under sage/ext including the generated headers. Also install all .pxi and .pxd files
  • also replace one instance of path knowledge by python mechanism in

There is more that could be done but I don't want to extend the scope of the ticket. I have bled a little on one extra file as it is.

New commits:

d76f95fInstll headers and px{i,d} files. Makes use installed files rather than source, small clean up of path determination.


  • Ticket #18494

    • Property Status changed from new to needs_review
    • Property Authors changed from to François Bissey
    • Property Branch changed from to u/fbissey/headers_install
    • Property Commit changed from to d76f95f41bb890dc742fe20a3c5880e765ea2fe4
  • Ticket #18494 – Description

    v3 v19  
    11Currently, Sage doesn't install any files other than `.py` and compiled cython code. Headers and other auxiliary files that are necessary for compiling user code (such as the `cython()` command or certain optional packages) are kept in the `src` directory and we rely on its presence. Since #18027 we also rely on the presence of the `src/build/cythonized` directory. It would be good if sage could just work without relying on the presence of it source and build directory.