The reason is that if cross compiling (or for other reasons) python
bindings as a whole are turned off. Those two lines then trigger
assertion errors unless manually overridden for cross compilation.
This way:
1. The `enableNumpy` default respects the `enablePython deafult.
2. Cross works by default
3. Absurd manual overrides still break as they should
4. The `>= 1.65` logic is direct and not a maintaince gotcha.
This was motivated originally by my cross work, but that goal requires a
few more commits to other things. Still, it's good to start the cleanup
now / get things out of the way.
Certain tools, e.g. compilers, are customarily prefixed with the name of
their target platform so that multiple builds can be used at once
without clobbering each other on the PATH. I was using identifiers named
`prefix` for this purpose, but that conflicts with the standard use of
`prefix` to mean the directory where something is installed. To avoid
conflict and confusion, I renamed those to `targetPrefix`.
* pkgs: refactor needless quoting of homepage meta attribute
A lot of packages are needlessly quoting the homepage meta attribute
(about 1400, 22%), this commit refactors all of those instances.
* pkgs: Fixing some links that were wrongfully unquoted in the previous
commit
* Fixed some instances
- Dynamic linking won't work, it seems.
- When using a native python, the extension isn't built,
so let's not depend on it.
- Replace flags missing on this branch, such as `isCrossWin`.
The upstream sources only compile with masm, so we need to add a patch
that translates the masm sources to GNU assembler. Unfortunately, this
means, that "generic.nix" is no longer very much generic, but the
versions we currently include work fine with the patch.
Unfortunately, the boost build still doesn't finish, but we're getting
there soon enough.
The patch is from https://svn.boost.org/trac/boost/ticket/7262 and
following the discussion it seems that the upstream authors are
unwilling to add a gas version for the Windows platform. So in the long
term we might need to find a better solution to that, like for example
using Wine to run MASM.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
I guess the "set -x" was only left there for debugging, so I'm removing
it because it let's the scrollback buffer explode ;-)
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
`concatMapStringsSep` actually needs a function to work on the list
items, but it was probably a leftover from the refactor in af8654d.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
The 'runtime-link=' feature must not be set in addition to 'link='
for boost-1.55 when building only the statically linked libraries.
Fixes errors that targets were defined multiple times.
The most complex problems were from dealing with switches reverted in
the meantime (gcc5, gmp6, ncurses6).
It's likely that darwin is (still) broken nontrivially.
(My OCD kicked in today...)
Remove repeated package names, capitalize first word, remove trailing
periods and move overlong descriptions to longDescription.
I also simplified some descriptions as well, when they were particularly
long or technical, often based on Arch Linux' package descriptions.
I've tried to stay away from generated expressions (and I think I
succeeded).
Some specifics worth mentioning:
* cron, has "Vixie Cron" in its description. The "Vixie" part is not
mentioned anywhere else. I kept it in a parenthesis at the end of the
description.
* ctags description started with "Exuberant Ctags ...", and the
"exuberant" part is not mentioned elsewhere. Kept it in a parenthesis
at the end of description.
* nix has the description "The Nix Deployment System". Since that
doesn't really say much what it is/does (especially after removing
the package name!), I changed that to "Powerful package manager that
makes package management reliable and reproducible" (borrowed from
nixos.org).
* Tons of "GNU Foo, Foo is a [the important bits]" descriptions
is changed to just [the important bits]. If the package name doesn't
contain GNU I don't think it's needed to say it in the description
either.
The only file that actually referred to the Python interpreter was
share/boost-build/example/customization/inline_file.py. So get rid of
the whole example directory.
Install names need to be absolute paths, otherwise programs that link
against the dylib won't work without setting $DYLD_LIBRARY_PATH. Most
packages do this correctly, but some (like Boost and ICU) do not.
This setup hook absolutizes all install names.