Commit Graph

85 Commits

Author SHA1 Message Date
Michael Kuhn 6952f9f6c9 Do not call restorecon if there are no files to install
Fixes #6452
2020-03-29 20:52:43 +03:00
Michael Brockus 98ddd52ced
Cherry-picking - (rm python2 % add python3 .format) (#6725) 2020-03-03 21:45:43 +02:00
Nirbheek Chauhan 53265e3bc2 minstall: Add a new option --quiet
This is a significant speed-up on Windows because terminals are
slow to print things out.

Speed-up in gst-build on Windows:

```
meson install:
before: 5.1 seconds
after:  4.0 seconds
```
2020-02-17 23:58:20 +05:30
Nirbheek Chauhan 1300485832 minstall: Optimize when to call makedirs()
In `--only-changed` mode, we were spending half our time inside
`makedirs()`, which is a waste in the case when only a few files have
changed.

Speed-up on Windows with gst-build:

```
meson install --only-changed
before: 1.6 seconds
after:  0.9 seconds
```
2020-02-17 23:58:20 +05:30
Nirbheek Chauhan bb7c0a163f minstall: Error out when trying to copy file to dir
Not sure why this wasn't already an error. It's a bad situation to be
in, and we should not ignore it.
2020-02-17 23:58:20 +05:30
Nirbheek Chauhan 21c4b7e400 minstall: Fix check for when something was installed
If we preserve the existing file, we did not install anything. In that
case, the output now looks like:

```
ninja: Entering directory `.'
ninja: no work to do.
Nothing to install.
Preserved 1732 unchanged files, see meson-logs\install-log.txt for the full list
```

This also avoids an `isfile` lookup, which shaves off a few seconds in
gst-build install.
2020-02-17 23:58:20 +05:30
Nirbheek Chauhan fa036a2127 minstall: Add new hidden argument --profile-self
Same purpose as `meson setup`.
2020-02-17 23:58:20 +05:30
Nirbheek Chauhan 36a0797e1c minstall: Make --only-changed less verbose
When `--only-changed` is passed, we only want to know about files that
were newly-installed. Everything else is noise. The full list can
always be found in `install-log.txt` anyway. Sample output:

```
ninja: Entering directory `.'
ninja: no work to do.
Preserved 667 unchanged files, see meson-logs\install-log.txt for the full list
```
2020-02-11 06:16:56 -05:00
Daniel Mensinger e4a0ee205d lgtm: Fix redundant code 2019-12-05 00:22:10 +02:00
Orlando Wingbrant 9ee9a1e1b2 Fix for issue #4499, multiple entries per file in install-log.txt 2019-10-23 22:37:45 +03:00
Jakub Adam 1bf1782476 Fix *.pdb files missing in meson introspect --installed output
On Windows, make sure the introspect command lists all Program database
(PDB) files containing debugging information that Meson will install.
2019-10-09 15:50:20 +02:00
Andrew Conrad 714908e5d9 Catch NotADirectoryError to fix selinux error
Fixes #4798
2019-09-27 13:09:52 -07:00
Jussi Pakkanen 51a601c2ee Log the used strip command. [skip ci] 2019-09-03 23:02:50 +03:00
Jussi Pakkanen f41bdae368 Add basic Webassembly support via Emscripten. 2019-08-05 19:31:32 +03:00
Daniel Mensinger e75211d321
Fix builtin variable names 2019-04-29 12:17:40 +02:00
Daniel Mensinger bf98ffca9e
Fix blind exceptions 2019-04-29 12:16:06 +02:00
Michael Hirsch, Ph.D da34bea893 pep8 py37 2019-01-29 22:06:11 +02:00
Nicolas Schneider 735e138382 fix meson configure exception when install_umask is not an int 2019-01-06 22:35:04 +02:00
Nicolas Schneider 211a60dc99 print 'Nothing to install.' if nothing was installed
Fixes #882.
2019-01-01 22:37:44 +02:00
Xavier Claessens 4178267bfe minstall: Do not delete dst files when installing a directory
do_copyfile() already takes the decision to delete or preserve them.

Also do not append a confusing '.' in log messages that finish by a file
path.
2018-11-20 22:51:31 +02:00
Jon Turney 93f7b83bf5 Fix flake8 'imported but unused' reports
$ flake8 | grep F401
./mesonbuild/minstall.py:15:1: F401 'gzip' imported but unused
./mesonbuild/backend/backends.py:26:1: F401 '..compilers.get_macos_dylib_install_name' imported but unused
./mesonbuild/backend/backends.py:29:1: F401 'functools.lru_cache' imported but unused
./mesonbuild/scripts/dist.py:27:1: F401 'mesonbuild.dependencies.ExternalProgram' imported but unused
2018-10-24 19:11:46 +03:00
Michał Górny e8232c7825 Remove implicit compression of man pages
Remove the code responsible for implicitly compressing manpages as .gz
files.  It has been established that manpage compression is a distro
packager's task, with existing distros already having their own
implementations of compression.

Fixes #4330
2018-10-20 13:16:28 +03:00
Xavier Claessens 37067a53c4 Use a single ArgumentParser for all subcommands
This has the adventage that "meson --help" shows a list of all commands,
making them discoverable. This also reduce the manual parsing of
arguments to the strict minimum needed for backward compatibility.
2018-10-04 09:40:21 -04:00
Jussi Pakkanen f34f0717e0 Revert symlink copy behaviour. Closes #4069. 2018-08-23 21:53:38 -07:00
Marco Trevisan (Treviño) abf65c92af minstall: use follow_symlinks to check executable
This could happen when setting an default install mode but with broken
symlinks.

Fixes #3914
2018-08-17 16:41:09 +02:00
Marco Trevisan (Treviño) 5de2a7910a minstall: never follow symlinks when setting ownership
Since we're supposed to call this for each installed path, we only should go
through what we've installed and not what this point to, as it might be
outside our scope or not existent.

To do this, since shutil.chown doesn't expose the follow_symlink that os.chown
has, we can temporarily replace os.chown with a lambda that acutually passes
all the values as we want them, and then restore it to the built-in functions.
Not the nicest way, but fixes the issue without having to reimplement what
shutil does.

Fixes #3914
2018-08-17 16:41:09 +02:00
Marco Trevisan (Treviño) 2d010727ed minstall: never try to set chmod on symlinks
It's only supported by few platforms when the linked file exists, while it
would cause an error otherwise.

In any case just implement this via an helper set_chmod function that will
handle the case where follow_symlinks is not supported by the platform
and will just not set any mod for the link itself (as it would otherwise
apply to the linked file).

Fixes #3914
2018-08-17 16:41:09 +02:00
Nirbheek Chauhan d03cf04598 install_subdir: Also copy dangling symlinks
Fixes https://github.com/mesonbuild/meson/issues/3914
2018-08-15 04:57:23 -07:00
Jussi Pakkanen 15fb284395 Fix install when run with meson.exe. Closes #3988. 2018-08-09 09:08:33 -07:00
Nirbheek Chauhan c69030c123 Don't require an import library for shared modules
Shared modules may be resource-only DLLs, or might automatically
self-initialize using C constructors or WinMain at DLL load time.

When an import library is not found for a shared module, just print
a message about it instead of erroring out.

Fixes #3965
2018-08-09 18:39:19 +03:00
Xi Ruoyao 8893d03703 Fix pkexec command for installation via polkit 2018-07-04 15:21:42 +00:00
Jussi Pakkanen 10b094c980 Make it work with current master. 2018-06-20 20:38:26 +03:00
Jussi Pakkanen e60bf5d833 Add option to only install changed files. 2018-06-18 22:12:13 +03:00
Jussi Pakkanen 6a21e19515 Refactored installer to use a class to eradicate global variables. 2018-06-18 22:12:13 +03:00
Jussi Pakkanen 6cf79f86ee Made install a top level Meson command. 2018-06-18 22:02:56 +03:00