SHA256
1
0
forked from pool/meson
Commit Graph

11 Commits

Author SHA256 Message Date
075d38a7f2 Accepting request 683886 from GNOME:Next
- Fixup meson-suse-ify-macros.patch post broken rebase.

OBS-URL: https://build.opensuse.org/request/show/683886
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=132
2019-03-11 13:12:59 +00:00
Alexei Sorokin
3aaf786ea6 Accepting request 683606 from home:alois:branches:devel:tools:building
- Update to version 0.50.0
  New features:
  * Added `cmake_module_path` and `cmake_args` to dependency
    The CMake dependency backend can now make use of existing
    `Find<name>.cmake` files by setting the `CMAKE_MODULE_PATH`
    with the new `dependency()` property `cmake_module_path`.
    The paths given to `cmake_module_path` should be relative
    to the project source directory.
    Furthermore the property `cmake_args` was added to give
    CMake additional parameters.
  * Added PGI compiler support
    Nvidia / PGI C, C++ and Fortran
    [no-cost](https://www.pgroup.com/products/community.htm)
    compilers are now supported. They have been tested on Linux
    so far.
  * Fortran Coarray
    Fortran 2008 / 2018 coarray support was added via
    `dependency('coarray')`
  * Libdir defaults to `lib` when cross compiling
    Previously `libdir` defaulted to the value of the build
    machine such as `lib/x86_64-linux-gnu`, which is almost
    always incorrect when cross compiling. It now defaults to
    plain `lib` when cross compiling. Native builds remain
    unchanged and will point to the current system's library
    dir.
  * Native and Cross File Paths and Directories
    A new `[paths]` section has been added to native and cross
    files. This can be used to set paths such a prefix and
    libdir in a persistent way.
  * Add warning_level 0 option
    Adds support for a warning level 0 which does not enable any
    static analysis checks from the compiler
  * A builtin target to run clang-format
    If you have `clang-format` installed and there is a
    `.clang-format` file in the root of your master project,
    Meson will generate a run target called `clang-format` so you
    can reformat all files with one command:
    ```meson
    ninja clang-format
    ```
  * Added a .path() method to object return by
    python.find_installation()
    `ExternalProgram` objects as well as the object returned by
    the `python3` module provide this method, but the new python
    module did not.
  * Fix ninja console log from generators with multiple output
    nodes
    This resolves ticket #4760 where a generator w/ multiple
    output nodes printed an empty string to the console
  * `introspect --buildoptions` can now be used without
    configured build directory
    It is now possible to run `meson introspect --buildoptions
    /path/to/meson.build` without a configured build directory.
    Running `--buildoptions` without a build directory produces
    the same output as running it with a freshly configured
    build directory.
    However, this behavior is not guaranteed if subprojects are
    present. Due to internal limitations all subprojects are
    processed even if they are never used in a real meson run.
    Because of this options for the subprojects can differ.
  * `include_directories` accepts a string
    The `include_directories` keyword argument now accepts plain
    strings rather than an include directory object. Meson will
    transparently expand it so that a declaration like this:
    ```meson
    executable(..., include_directories: 'foo')
    ```
    Is equivalent to this:
    ```meson
    foo_inc = include_directories('foo')
    executable(..., include_directories: inc)
    ```
  * Fortran submodule support
    Initial support for Fortran ``submodule`` was added, where
    the submodule is in the same or different file than the
    parent ``module``.
    The submodule hierarchy specified in the source Fortran code
    `submodule` statements are used by Meson to resolve source
    file dependencies.
    For example:
    ```fortran
    submodule (ancestor:parent) child
    ```
  * Add subproject_dir to --projectinfo introspection output
    This allows applications interfacing with Meson (such as
    IDEs) to know about an overridden subproject directory.
  * Find library with its headers
    The `find_library()` method can now also verify if the
    library's headers are found in a single call, using the
    `has_header()` method internally.
    ```meson
    + Aborts if the 'z' library is found but not its header file
      zlib = find_library('z', has_headers : 'zlib.h')
    + Returns not-found if the 'z' library is found but not its
      header file zlib = find_library('z', has_headers :
      'zlib.h', required : false)
    ```
    Any keyword argument with the `header_` prefix passed to
    `find_library()` will be passed to the `has_header()`
    method with the prefix removed.
    ```meson
    libfoo = find_library('foo',
      has_headers : ['foo.h', 'bar.h'],
      header_prefix : '#include <baz.h>',
      header_include_directories : include_directories('.'))
    ```
  * NetCDF
    NetCDF support for C, C++ and Fortran is added via
    pkg-config.
  * added the Flang compiler
    [Flang](https://github.com/flang-compiler/flang/releases)
    Fortran compiler support was added.  As with other Fortran
    compilers, flang is specified using `FC=flang meson ..` or
    similar.
  * New `not_found_message` for dependency
    You can now specify a `not_found_message` that will be
    printed if the specified dependency was not found. The point
    is to convert constructs
    that look like this:
    ```meson
    d = dependency('something', required: false)
    if not d.found()
      message('Will not be able to do something.')
    endif
    ```
    Into this:
    ```meson
    d = dependency('something',
      required: false,
      not_found_message: 'Will not be able to do something.')
    ```
    Or constructs like this:
    ```meson
    d = dependency('something', required: false)
    if not d.found()
      error('Install something by doing XYZ.')
    endif
    ```
    into this:
    ```meson
    d = dependency('something',
      not_found_message: 'Install something by doing XYZ.')
    ```
    Which works, because the default value of `required` is
    `true`.
  * Cuda support
    Compiling Cuda source code is now supported, though only
    with the
    Ninja backend. This has been tested only on Linux for now.
    Because NVidia's Cuda compiler does not produce `.d`
    dependency files, dependency tracking does not work.
  * `run_command` accepts `env` kwarg
    You can pass
    [`environment`](Reference-manual.html#environment-object)
    object to
    [`run_command`](Reference-manual.html#run-command), just
    like to `test`:
    ```meson
    env = environment()
    env.set('FOO', 'bar')
    run_command('command', 'arg1', 'arg2', env: env)
    ```
  * `extract_objects` accepts `File` arguments
    The `extract_objects` function now supports File objects to
    tell it what to extract. Previously, file paths could only
    be passed as strings.
  * Changed the JSON format of the introspection
    All paths used in the meson introspection JSON format are
    now absolute. This affects the `filename` key in the targets
    introspection and the output of
    `--buildsystem-files`.
    Furthermore, the `filename` and `install_filename` keys in
    the targets introspection are now lists of strings with
    identical length.
    The `--target-files` option is now deprecated, since the
    same information can be acquired from the `--tragets`
    introspection API.
  * Meson file rewriter
    This release adds the functionality to perform some basic
    modification on the `meson.build` files from the command
    line. The currently supported operations are:
    + For build targets:
      x Add/Remove source files
      x Add/Remove targets
      x- Modify a select set of kwargs
      x Print some JSON information
    + For dependencies:
      x Modify a select set of kwargs
    + For the project function:
      x Modify a select set of kwargs
      x Modify the default options list
    For more information see the rewriter documentation.
  * `introspect --scan-dependencies` can now be used to scan for
    dependencies used in a project
    It is now possible to run `meson introspect
    --scan-dependencies
    /path/to/meson.build` without a configured build directory
    to scan for dependencies.
    The output format is as follows:
    ```json
    [
      {
        "name": "The name of the dependency",
        "required": true,
        "conditional": false,
        "has_fallback": false
      }
    ]
    ```
    The `required` keyword specifies whether the dependency is
    marked as required in the `meson.build` (all dependencies are
    required by default). The `conditional` key indicates whether
    the `dependency()` function was called inside a conditional
    block. In a real meson run these dependencies might not be
    used, thus they _may_ not be required, even if the
    `required` key is set. The `has_fallback` key just indicates
    whether a fallback was directly set in the `dependency()`
    function.
  * `introspect --targets` can now be used without configured
    build directory
    It is now possible to run `meson introspect --targets
    /path/to/meson.build` without a configured build directory.
    The generated output is similar to running the introspection
    with a build directory. However, there are some key
    differences:
    + The paths in `filename` now are _relative_ to the future
      build directory
    + The `install_filename` key is completely missing
    + There is only one entry in `target_sources`:
      x With the language set to `unknown`
      x Empty lists for `compiler` and `parameters` and
        `generated_sources`
      x The `sources` list _should_ contain all sources of the
        target
    There is no guarantee that the sources list in
    `target_sources` is correct.
    There might be differences, due to internal limitations. It
    is also not guaranteed that all targets will be listed in
    the output. It might even be possible that targets are
    listed, which won't exist when meson is run normally.
    This can happen if a target is defined inside an if
    statement.
    Use this feature with care.
  * Added option to introspect multiple parameters at once
    Meson introspect can now print the results of multiple
    introspection commands in a single call. The results are
    then printed as a single JSON object.
    The format for a single command was not changed to keep
    backward compatibility.
    Furthermore the option `-a,--all`, `-i,--indent` and
    `-f,--force-object-output` were added to print all
    introspection information in one go,
    format the JSON output (the default is still compact JSON)
    and force use the new output format, even if only one
    introspection command was given.
    A complete introspection dump is also stored in the
    `meson-info` directory. This dump will be (re)generated each
    time meson updates the configuration of the build directory.
    Additionlly the format of `meson introspect target` was
    changed:
      + New: the `sources` key. It stores the source files of a
        target and their compiler parameters.
      + New: the `defined_in` key. It stores the meson file
        where a target is defined
      + New: the `subproject` key. It stores the name of the
        subproject where a target is defined.
      + Added new target types (`jar`, `shared module`).
  * meson configure can now print the default options of an
    unconfigured project
    With this release, it is also possible to get a list of all
    build options by invoking `meson configure` with the project
    source directory or the path to the root `meson.build`. In
    this case, meson will print the default values of all
    options.
  * HDF5
    HDF5 support is added via pkg-config.
  * Added the `meson-info.json` introspection file
    Meson now generates a `meson-info.json` file in the
    `meson-info` directory to provide introspection information
    about the latest meson run. This file is updated when the
    build configuration is changed and the build files are
    (re)generated.
- Refreshed meson-suse-ify-macros.patch

OBS-URL: https://build.opensuse.org/request/show/683606
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=131
2019-03-11 11:51:59 +00:00
Alexei Sorokin
1ae7a07faf - Update to version 0.48.0.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=109
2018-09-28 15:49:38 +00:00
750d89d245 Accepting request 601829 from devel:tools:building
Revert last submission

OBS-URL: https://build.opensuse.org/request/show/601829
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=95
2018-04-27 07:22:12 +00:00
159a41432b Accepting request 601824 from home:lachs0r:branches:devel:tools:building
- Change meson-suse-ify-macros.patch: Disable stripping to make
  debuginfo packages work. 
- Change meson-suse-ify-macros.patch: Disable stripping to make
  debuginfo packages work.

OBS-URL: https://build.opensuse.org/request/show/601824
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=94
2018-04-27 07:13:51 +00:00
Martin Pluskal
ea2a8aec7d Accepting request 583636 from GNOME:Next
Scripted push of project GNOME:Next

OBS-URL: https://build.opensuse.org/request/show/583636
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=76
2018-03-06 20:13:47 +00:00
Martin Pluskal
3a5d359b36 Accepting request 573229 from GNOME:Next
Update to 0.44.0

OBS-URL: https://build.opensuse.org/request/show/573229
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=72
2018-02-06 09:16:50 +00:00
Martin Pluskal
11ca778ca5 Accepting request 505906 from GNOME:Next
- Update meson-suse-ify-macros.patch: export LANG for all macros.

OBS-URL: https://build.opensuse.org/request/show/505906
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=46
2017-06-23 14:57:12 +00:00
Martin Pluskal
3acdab0bf6 Accepting request 505856 from home:susnux:branches:devel:tools:building
Update to current version

OBS-URL: https://build.opensuse.org/request/show/505856
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=45
2017-06-23 12:40:55 +00:00
Martin Pluskal
09460fff36 Accepting request 476924 from GNOME:Next
- Update to version 0.38.1:
  + New Uninstall target.
  + Support for arbitrary test setups.
  + Intel C/C++ compiler support.
  + Get values from configuration data objects.
  + Python 3 module support simplified.
  + Default options to subprojects.
  + Set targets to be built (or not) by default.
  + Add option to mesonconf to wipe cached data.
  + Can specify file permissions and owner when installing data.
  + has_header() checks are now faster.
  + Array indexing now supports fallback values.
  + Silent mode for Mesontest.
- Rebase meson-suse-ify-macros.patch.

    tests in many different ways.

OBS-URL: https://build.opensuse.org/request/show/476924
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=30
2017-03-04 16:03:41 +00:00
Alexei Sorokin
2430271fed Accepting request 449560 from home:dimstar:Factory
- Add meson-suse-ify-macros.patch: Make the meson macros also work
  on openSUSE. We do not (yet?) have separate macros for CFLAGS,
  CXXFLAGS, FFLAGS and LDFLAGS, but only carry optflags. This is no
  issue, since openSUSE so far only added flags that work accross
  compilers/languages. This might change in the future, making the
  patch obsolete.

OBS-URL: https://build.opensuse.org/request/show/449560
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=28
2017-01-10 16:34:08 +00:00