Home | History | Annotate | Line # | Download | only in dist
      1  1.1  mrg # SPDX-License-Identifier: MIT
      2  1.1  mrg #
      3  1.1  mrg # Copyright (c) 2025, Oracle and/or its affiliates.
      4  1.1  mrg #
      5  1.1  mrg # Permission is hereby granted, free of charge, to any person obtaining a
      6  1.1  mrg # copy of this software and associated documentation files (the "Software"),
      7  1.1  mrg # to deal in the Software without restriction, including without limitation
      8  1.1  mrg # the rights to use, copy, modify, merge, publish, distribute, sublicense,
      9  1.1  mrg # and/or sell copies of the Software, and to permit persons to whom the
     10  1.1  mrg # Software is furnished to do so, subject to the following conditions:
     11  1.1  mrg #
     12  1.1  mrg # The above copyright notice and this permission notice (including the next
     13  1.1  mrg # paragraph) shall be included in all copies or substantial portions of the
     14  1.1  mrg # Software.
     15  1.1  mrg #
     16  1.1  mrg # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     17  1.1  mrg # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     18  1.1  mrg # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     19  1.1  mrg # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     20  1.1  mrg # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     21  1.1  mrg # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     22  1.1  mrg # DEALINGS IN THE SOFTWARE.
     23  1.1  mrg #
     24  1.1  mrg 
     25  1.1  mrg project(
     26  1.1  mrg   'libXxf86dga',
     27  1.1  mrg   'c',
     28  1.1  mrg   version: '1.1.7',
     29  1.1  mrg   license: 'X11',
     30  1.1  mrg   license_files: 'COPYING',
     31  1.1  mrg   meson_version: '>= 1.1.0',
     32  1.1  mrg )
     33  1.1  mrg 
     34  1.1  mrg # Replacement for XORG_DEFAULT_OPTIONS
     35  1.1  mrg cc = meson.get_compiler('c')
     36  1.1  mrg if cc.has_argument('-fno-strict-aliasing')
     37  1.1  mrg   add_project_arguments('-fno-strict-aliasing', language: 'c')
     38  1.1  mrg endif
     39  1.1  mrg 
     40  1.1  mrg # Replacement for XORG_CHECK_MALLOC_ZERO
     41  1.1  mrg add_project_arguments('-DMALLOC_0_RETURNS_NULL', language: 'c')
     42  1.1  mrg 
     43  1.1  mrg # Obtain compiler/linker options for dependencies
     44  1.1  mrg dep_xproto       = dependency('xproto', required: true)
     45  1.1  mrg dep_libx11       = dependency('x11', required: true, version: '>= 1.6')
     46  1.1  mrg dep_xextproto    = dependency('xextproto', required: true)
     47  1.1  mrg dep_libxext      = dependency('xext', required: true)
     48  1.1  mrg dep_xf86dgaproto = dependency('xf86dgaproto', required: true,
     49  1.1  mrg                               version: '>= 2.0.99.2')
     50  1.1  mrg 
     51  1.1  mrg lib = library(
     52  1.1  mrg   'Xxf86dga',
     53  1.1  mrg   ['src/XF86DGA.c', 'src/XF86DGA2.c'],
     54  1.1  mrg   include_directories: 'include',
     55  1.1  mrg   dependencies: [dep_xproto, dep_libx11, dep_xextproto, dep_libxext, dep_xf86dgaproto],
     56  1.1  mrg   version: '1.0.0',
     57  1.1  mrg   install: true,
     58  1.1  mrg )
     59  1.1  mrg 
     60  1.1  mrg install_headers(
     61  1.1  mrg   'include/X11/extensions/Xxf86dga.h',
     62  1.1  mrg   'include/X11/extensions/xf86dga1.h',
     63  1.1  mrg   subdir: 'X11/extensions',
     64  1.1  mrg )
     65  1.1  mrg 
     66  1.1  mrg pkg = import('pkgconfig')
     67  1.1  mrg pkg.generate(
     68  1.1  mrg   name: 'Xxf86dga',
     69  1.1  mrg   description: 'XFree86 Direct Graphics Access Extension Library',
     70  1.1  mrg   filebase: 'xxf86dga',
     71  1.1  mrg   libraries: '-L${libdir} -lXxf86dga',
     72  1.1  mrg   requires: ['xf86dgaproto'],
     73  1.1  mrg   requires_private: [dep_libx11, dep_libxext],
     74  1.1  mrg   url: 'https://gitlab.freedesktop.org/xorg/lib/libxxf86dga/'
     75  1.1  mrg )
     76  1.1  mrg 
     77  1.1  mrg prog_sed = find_program('sed')
     78  1.1  mrg 
     79  1.1  mrg libXxf86dga_manpages = [
     80  1.1  mrg   'XDGA',
     81  1.1  mrg   'XF86DGA',
     82  1.1  mrg   'XFree86-DGA',
     83  1.1  mrg   'XDGAQueryExtension',
     84  1.1  mrg   'XDGAQueryVersion',
     85  1.1  mrg   'XDGAQueryModes',
     86  1.1  mrg   'XDGASetMode',
     87  1.1  mrg   'XDGAOpenFramebuffer',
     88  1.1  mrg   'XDGACloseFramebuffer',
     89  1.1  mrg   'XDGASetViewport',
     90  1.1  mrg   'XDGAInstallColormap',
     91  1.1  mrg   'XDGACreateColormap',
     92  1.1  mrg   'XDGASelectInput',
     93  1.1  mrg   'XDGAFillRectangle',
     94  1.1  mrg   'XDGACopyArea',
     95  1.1  mrg   'XDGACopyTransparentArea',
     96  1.1  mrg   'XDGAGetViewportStatus',
     97  1.1  mrg   'XDGASync',
     98  1.1  mrg   'XDGASetClientVersion',
     99  1.1  mrg   'XDGAChangePixmapMode',
    100  1.1  mrg   'XDGAKeyEventToXKeyEvent'
    101  1.1  mrg ]
    102  1.1  mrg 
    103  1.1  mrg lib_man_suffix = get_option('lib_man_suffix')
    104  1.1  mrg foreach man: libXxf86dga_manpages
    105  1.1  mrg   custom_target(
    106  1.1  mrg     f'@man@.man',
    107  1.1  mrg     input: f'man/@man@.man',
    108  1.1  mrg     output: f'@man@.@lib_man_suffix@',
    109  1.1  mrg     command: [
    110  1.1  mrg       prog_sed,
    111  1.1  mrg       '-e', 's/__vendorversion__/"libXxf86dga @0@" "X Version 11"/'.format(meson.project_version()),
    112  1.1  mrg       '-e', 's/__appmansuffix__/1/g',
    113  1.1  mrg       '-e', 's/__filemansuffix__/5/g',
    114  1.1  mrg       '-e', f's/__libmansuffix__/@lib_man_suffix@/g',
    115  1.1  mrg       '-e', 's/__xservername__/Xorg/g',
    116  1.1  mrg       '-e', 's/__xconfigfile__/xorg.conf/g',
    117  1.1  mrg       '@INPUT@',
    118  1.1  mrg     ],
    119  1.1  mrg     capture: true,
    120  1.1  mrg     install: true,
    121  1.1  mrg     install_dir: get_option('prefix') / get_option('mandir') / f'man@lib_man_suffix@',
    122  1.1  mrg   )
    123  1.1  mrg endforeach
    124