From a4166b5c291318bdbbd7d229df9124f59c91b9b2 Mon Sep 17 00:00:00 2001 From: Quentin Glidic Date: Thu, 10 Dec 2020 21:11:12 +0100 Subject: Drop Meson It goes out of sync too often. Signed-off-by: Quentin Glidic --- .travis.yml | 38 ----- INSTALL.md | 44 ----- Makefile.am | 9 - meson.build | 498 ------------------------------------------------------ meson_options.txt | 3 - 5 files changed, 592 deletions(-) delete mode 100644 meson.build delete mode 100644 meson_options.txt diff --git a/.travis.yml b/.travis.yml index 9ddc0b6f..7b79c25c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,6 @@ addons: name: "DaveDavenport/rofi" description: "Build submitted via Travis CI" notification_email: qball@gmpclient.org - # TODO: What do these actually do? - build_command_prepend: "meson setup build" - build_command: "ninja -C build" branch_pattern: coverity_scan apt: packages: @@ -38,10 +35,6 @@ addons: - libxkbcommon-dev - libxkbcommon-dev - libxkbcommon-x11-dev - - ninja-build - - python3-pip - - python3-setuptools - - python3-wheel - texi2html - texinfo - xdotool @@ -92,29 +85,6 @@ before_install: - test $(grep -c warning doxygen.log) -eq 0 - ../doxy-coverage/doxy-coverage.py doc/html/xml/ -# YAML anchor, ignored by Travis CI (albeit present in the JSON render): -.meson: &meson - install: &meson_install - # Ubuntu's meson version is outdated. Use pip to install a more recent - # release: - - pip3 install --user meson - # ~/.local/bin is not a part of $PATH by default. Update $PATH to include it: - - PATH="$PATH:$HOME/.local/bin" - before_script: - &meson_before_script # Configure the build directory with meson: - - meson setup build -Db_coverage=true - # TODO: Fix X11 tests (and check whether or not changing the user's resource - # limit is still required for the X11 tests). - script: &meson_script # Build the project: - - ninja -C build - # Run tests: - - ninja -C build test - #- ulimit -c unlimited - #- ninja -C build test-x - - ninja -C build doc/html 2>&1 > doxygen.log - - test $(grep -c warning doxygen.log) -eq 0 - - ./doxy-coverage/doxy-coverage.py build/doc/html/xml/ - after_success: - bash <(curl -s https://codecov.io/bash) @@ -132,14 +102,6 @@ jobs: compiler: gcc # Merge keys from the .autotools map: <<: *autotools - - name: "Meson - Clang" - compiler: clang - # Merge keys from the .meson map: - <<: *meson - - name: "Meson - GCC" - compiler: gcc - # Merge keys from the .meson map: - <<: *meson notifications: webhooks: diff --git a/INSTALL.md b/INSTALL.md index 6c358490..771fa355 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -4,7 +4,6 @@ This guide explains how to install rofi using its build system and how you can m Rofi uses autotools (GNU Build system), for more information see [here](https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html). -You can also use [Meson](https://mesonbuild.com/) as an alternative. ## DEPENDENCY @@ -74,28 +73,6 @@ make install The default installation prefix is: `/usr/local/` use `./configure --prefix={prefix}` to install into another location. -### Meson - -Check dependencies and configure build system: - -``` -meson setup build -``` - -Build Rofi: - -``` -ninja -C build -``` - -The actual install, execute as root (if needed): - -``` -ninja -C build install -``` - -The default installation prefix is: `/usr/local/` use `meson setup build --prefix={prefix}` to install into another location. - ## Install a checkout from git The GitHub Pages version of these directions may be out of date. Please use @@ -132,17 +109,12 @@ From this point, use the same steps you use for a release. When you run the configure step there are several options you can configure. For Autotools, you can see the full list with `./configure --help`. -For Meson, before the initial setup, you can see rofi options in `meson_options.txt` and Meson options with `meson setup --help`. -After the initial setup, use `meson configure build`. The most useful one to set the installation prefix: ``` # Autotools ../configure --prefix= - -# Meson -meson setup build --prefix ``` f.e. @@ -150,9 +122,6 @@ f.e. ``` # Autotools ../configure --prefix=/usr/ - -# Meson -meson setup build --prefix /usr ``` ### Install locally @@ -162,9 +131,6 @@ or to install locally: ``` # Autotools ../configure --prefix=${HOME}/.local/ - -# Meson -meson setup build --prefix ${HOME}/.local ``` @@ -179,9 +145,6 @@ Show the commands called: ``` # Autotools make V=1 - -# Meson -ninja -C build -v ``` ### Debug build @@ -191,10 +154,6 @@ Compile with debug symbols and no optimization, this is useful for making backtr ``` # Autotools make CFLAGS="-O0 -g3" clean rofi - -# Meson -meson configure build --debug -ninja -C build ``` ### Get a backtrace @@ -207,9 +166,6 @@ can then load the core in GDB. ``` # Autotools gdb rofi core - -# Meson (because it uses a separate build directory) -gdb build/rofi core ``` > Where the core file is located and what its exact name is different on each distributions. Please consult the diff --git a/Makefile.am b/Makefile.am index 72d32534..f464417f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -634,12 +634,3 @@ coverage-clean: .PHONY: .FORCE .FORCE: - -EXTRA_DIST += \ - doc/meson.build \ - subprojects/libnkutils/meson.build \ - subprojects/libnkutils/meson_options.txt \ - subprojects/libgwater/xcb/meson.build \ - meson_options.txt \ - subprojects/xcb \ - meson.build diff --git a/meson.build b/meson.build deleted file mode 100644 index 265b3074..00000000 --- a/meson.build +++ /dev/null @@ -1,498 +0,0 @@ -project('rofi', 'c', - version: '1.6.1-dev', - meson_version: '>=0.47.0', - license: [ 'MIT' ], - default_options: [ - 'c_std=c99', - ], -) - -c_compiler = meson.get_compiler('c') - -add_project_arguments( - '-I@0@'.format(meson.build_root()), - '-I@0@'.format(join_paths(meson.source_root(), 'include')), - '-D_DEFAULT_SOURCE=1', - language: 'c' -) - -flags = [ - '-Wparentheses', - '-Winline', - '-Wunreachable-code', - '-Werror=missing-prototypes', - '-Wno-inline', # A bit too noisy with Bison… -] -foreach f : flags - if c_compiler.has_argument(f) - add_project_arguments(f, language: 'c') - endif -endforeach - -plugindir = join_paths(get_option('libdir'), meson.project_name()) -themedir = join_paths(get_option('datadir'), meson.project_name(), 'themes') - -glib_min_major=2 -glib_min_minor=40 -glib_min_version='@0@.@1@'.format(glib_min_major, glib_min_minor) -plugins_deps = [ - dependency('glib-2.0', version: '>= @0@'.format(glib_min_version)), - dependency('gmodule-2.0'), - dependency('cairo'), -] - -deps = [ - plugins_deps, - dependency('gio-unix-2.0'), - dependency('pango'), - dependency('pangocairo'), - dependency('xkbcommon'), - dependency('gdk-pixbuf-2.0'), -] - - -gwxcb = subproject('xcb') -# XCB stuff -deps += [ - gwxcb.get_variable('libgwater_xcb'), - dependency('xcb-aux'), - dependency('xcb-xkb'), - dependency('xkbcommon-x11'), - dependency('xcb-ewmh'), - dependency('xcb-icccm'), - dependency('xcb-xrm'), - dependency('xcb-randr'), - dependency('xcb-xinerama'), - dependency('cairo-xcb'), - dependency('libstartup-notification-1.0'), -] - -libgif = c_compiler.find_library('libgif', required: false) -deps += [ libgif ] - -check = dependency('check', version: '>= 0.11.0', required: get_option('check')) - -header_conf = configuration_data() -header_conf.set_quoted('PACKAGE_NAME', meson.project_name()) -header_conf.set_quoted('PACKAGE_VERSION', meson.project_version()) -header_conf.set_quoted('VERSION', meson.project_version()) -header_conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) -header_conf.set_quoted('PACKAGE_BUGREPORT', 'https://github.com/davatorium/rofi/') -header_conf.set_quoted('PACKAGE_URL', 'https://reddit.com/r/qtools/') - -header_conf.set('THEME_CONVERTER', true) -header_conf.set('_GNU_SOURCE', true) - -header_conf.set('USE_NK_GIT_VERSION', true) - -header_conf.set('GLIB_VERSION_MIN_REQUIRED', '(G_ENCODE_VERSION(@0@,@1@))'.format(glib_min_major, glib_min_minor)) -header_conf.set('GLIB_VERSION_MAX_ALLOWED', '(G_ENCODE_VERSION(@0@,@1@))'.format(glib_min_major, glib_min_minor)) - -header_conf.set('ENABLE_DRUN', get_option('drun')) -header_conf.set('HAVE_LIBGIF', libgif.found()) -header_conf.set('WINDOW_MODE', get_option('window')) - -header_conf.set_quoted('MANPAGE_PATH', join_paths(get_option('prefix'), get_option('mandir'))) -header_conf.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir'))) -header_conf.set_quoted('PLUGIN_PATH', join_paths(get_option('prefix'), plugindir)) -header_conf.set_quoted('THEME_DIR', join_paths(get_option('prefix'), themedir)) - -config_h = configure_file(output: 'config.h', configuration: header_conf) - -nk_options = [ - 'bindings=true', - 'xdg-theme=true', - 'git-work-tree=@0@'.format(meson.source_root()), -] -nk = subproject('libnkutils', default_options: nk_options) -nk_subproject_options = nk.get_variable('nk_options') -foreach o : nk_options + nk_subproject_options - if not nk_options.contains(o) or not nk_subproject_options.contains(o) - error('You must not change libnkutils options @0@ != @1@'.format('|'.join(nk_options), '|'.join(nk_subproject_options))) - endif -endforeach -deps += nk.get_variable('libnkutils') -deps += nk.get_variable('libnkutils_bindings') - -install_headers([ - 'include/mode.h', - 'include/mode-private.h', - 'include/helper.h', - 'include/rofi-types.h', - 'include/rofi-icon-fetcher.h' - ], - subdir: meson.project_name(), -) -install_data( - 'script/rofi-sensible-terminal', - 'script/rofi-theme-selector', - install_dir: join_paths(get_option('prefix'), get_option('bindir')) -) - -flex = generator(find_program('flex'), - output: '@BASENAME@.c', - arguments: [ '-o', '@OUTPUT@', '@INPUT@' ] -) -bison = generator(find_program('bison'), - output: [ '@BASENAME@.c', '@BASENAME@.h' ], - arguments: [ '-d', '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@' ] -) - -rofi_sources = files( - 'source/rofi.c', - 'source/view.c', - 'source/mode.c', - 'source/keyb.c', - 'config/config.c', - 'source/helper.c', - 'source/timings.c', - 'source/history.c', - 'source/theme.c', - 'source/rofi-icon-fetcher.c', - 'source/css-colors.c', - 'source/widgets/box.c', - 'source/widgets/icon.c', - 'source/widgets/container.c', - 'source/widgets/widget.c', - 'source/widgets/textbox.c', - 'source/widgets/listview.c', - 'source/widgets/scrollbar.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - 'source/xcb.c', - 'source/dialogs/run.c', - 'source/dialogs/ssh.c', - 'source/dialogs/drun.c', - 'source/dialogs/dmenu.c', - 'source/dialogs/combi.c', - 'source/dialogs/window.c', - 'source/dialogs/script.c', - 'source/dialogs/help-keys.c', - 'source/dialogs/filebrowser.c', - 'include/display.h', - 'include/xcb.h', - 'include/xcb-internal.h', - 'include/rofi.h', - 'include/mode.h', - 'include/mode-private.h', - 'include/settings.h', - 'include/keyb.h', - 'include/view.h', - 'include/view-internal.h', - 'include/rofi-icon-fetcher.h', - 'include/helper.h', - 'include/helper-theme.h', - 'include/timings.h', - 'include/history.h', - 'include/theme.h', - 'include/rofi-types.h', - 'include/css-colors.h', - 'include/widgets/box.h', - 'include/widgets/icon.h', - 'include/widgets/container.h', - 'include/widgets/widget.h', - 'include/widgets/widget-internal.h', - 'include/widgets/textbox.h', - 'include/widgets/listview.h', - 'include/widgets/scrollbar.h', - 'include/xrmoptions.h', - 'include/dialogs/ssh.h', - 'include/dialogs/run.h', - 'include/dialogs/drun.h', - 'include/dialogs/dmenu.h', - 'include/dialogs/combi.h', - 'include/dialogs/script.h', - 'include/dialogs/window.h', - 'include/dialogs/dialogs.h', - 'include/dialogs/help-keys.h', - 'include/dialogs/filebrowser.h', - 'include/dialogs/dmenuscriptshared.h', -) -theme_lexer_sources = files('lexer/theme-lexer.l') -theme_parser_sources = files('lexer/theme-parser.y') - -theme_lexer = flex.process(theme_lexer_sources) -theme_parser = bison.process(theme_parser_sources) - -gnome = import('gnome') -default_theme = gnome.compile_resources('resources', files('resources/resources.xml')) - -rofi = executable('rofi', rofi_sources + [ - theme_lexer, - theme_parser, - default_theme, - ], - dependencies: deps, - install: true, -) - -subdir('doc') -install_man( - 'doc/rofi.1', - 'doc/rofi-theme-selector.1', - 'doc/rofi-sensible-terminal.1', - 'doc/rofi-script.5', - 'doc/rofi-theme.5', -) - -install_data( - 'themes/Adapta-Nokto.rasi', - 'themes/Arc.rasi', - 'themes/Arc-Dark.rasi', - 'themes/DarkBlue.rasi', - 'themes/Pop-Dark.rasi', - 'themes/Indego.rasi', - 'themes/Monokai.rasi', - 'themes/Paper.rasi', - 'themes/android_notification.rasi', - 'themes/arthur.rasi', - 'themes/blue.rasi', - 'themes/c64.rasi', - 'themes/dmenu.rasi', - 'themes/glue_pro_blue.rasi', - 'themes/gruvbox-common.rasi', - 'themes/gruvbox-dark-hard.rasi', - 'themes/gruvbox-dark-soft.rasi', - 'themes/gruvbox-dark.rasi', - 'themes/gruvbox-light-hard.rasi', - 'themes/gruvbox-light-soft.rasi', - 'themes/gruvbox-light.rasi', - 'themes/lb.rasi', - 'themes/paper-float.rasi', - 'themes/purple.rasi', - 'themes/sidebar.rasi', - 'themes/solarized.rasi', - 'themes/solarized_alternate.rasi', - 'themes/fancy.rasi', - install_dir: themedir -) - -pkg = import('pkgconfig') - -pkg.generate( - filebase: 'rofi', - name: 'rofi', - version: meson.project_version(), - description: 'Header files for rofi plugins', - variables: [ - 'pluginsdir=@0@'.format(join_paths('${libdir}', meson.project_name())), - ], - requires_private: plugins_deps, -) - - -test('history test', executable('history.test', [ - 'test/history-test.c', - ], - objects: rofi.extract_objects([ - 'source/history.c', - 'config/config.c', - ]), - dependencies: deps, -)) - -test('helper_pidfile test', executable('helper_pidfile.test', [ - 'test/helper-pidfile.c', - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/helper.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - ]), - dependencies: deps, -)) - - -test('widget test', executable('widget.test', [ - 'test/widget-test.c', - theme_parser, - theme_lexer, - ], - objects: rofi.extract_objects([ - 'source/widgets/widget.c', - 'source/widgets/textbox.c', - 'source/theme.c', - 'source/rofi-types.c', - 'source/css-colors.c', - 'source/helper.c', - 'config/config.c', - ]), - dependencies: deps, -)) - -test('box test', executable('box.test', [ - 'test/box-test.c', - theme_parser, - theme_lexer, - ], - objects: rofi.extract_objects([ - 'source/widgets/widget.c', - 'source/widgets/box.c', - 'source/theme.c', - 'source/rofi-types.c', - 'source/css-colors.c', - 'config/config.c', - ]), - dependencies: deps, -)) - -test('scrollbar test', executable('scrollbar.test', [ - 'test/scrollbar-test.c', - theme_parser, - theme_lexer, - ], - objects: rofi.extract_objects([ - 'source/widgets/widget.c', - 'source/widgets/scrollbar.c', - 'source/theme.c', - 'source/rofi-types.c', - 'source/css-colors.c', - 'config/config.c', - ]), - dependencies: deps, -)) - -test('textbox test', executable('textbox.test', [ - 'test/textbox-test.c', - theme_parser, - theme_lexer, - ], - objects: rofi.extract_objects([ - 'source/widgets/widget.c', - 'source/widgets/textbox.c', - 'source/theme.c', - 'source/rofi-types.c', - 'source/css-colors.c', - 'source/helper.c', - 'config/config.c', - ]), - dependencies: deps, -)) - -test('helper test', executable('helper.test', [ - 'test/helper-test.c', - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/helper.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - ]), - dependencies: deps, -)) - -test('helper_expand test', executable('helper_expand.test', [ - 'test/helper-expand.c', - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/helper.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - ]), - dependencies: deps, -)) - -test('helper_config_cmdline_parser test', executable('helper_config_cmdline_parser.test', [ - 'test/helper-config-cmdline-parser.c', - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/helper.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - ]), - dependencies: deps, -)) - -if check.found() - deps+= [ check ] - - test('theme_parser test', executable('theme_parser.test', [ - 'test/theme-parser-test.c', - theme_lexer, - theme_parser, - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/helper.c', - 'source/xrmoptions.c', - 'source/theme.c', - 'source/rofi-types.c', - 'source/css-colors.c', - ]), - dependencies: deps, - )) - - test('mode test', executable('mode.test', [ - 'test/mode-test.c', - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/dialogs/help-keys.c', - 'source/helper.c', - 'source/mode.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - 'source/keyb.c', - ]), - dependencies: deps, - )) - - test('helper_tokenize test', executable('helper_tokenize.test', [ - 'test/helper-tokenize.c', - ], - objects: rofi.extract_objects([ - 'config/config.c', - 'source/helper.c', - 'source/xrmoptions.c', - 'source/rofi-types.c', - ]), - dependencies: deps, - )) -endif - - -run_target('test-x', command: [ 'test/run_all_tests.sh' ], depends: [ rofi ]) - -uncrustify = find_program('uncrustify', required: false) -if uncrustify.found() - run_target('indent', - command: [ - uncrustify, - '-c', join_paths(meson.source_root(), 'data', 'uncrustify.cfg'), - '--replace', - rofi_sources - ], - ) -endif - -rofi_sources += theme_lexer_sources -rofi_sources += theme_parser_sources - -cppcheck = find_program('cppcheck', required: false) -if cppcheck.found() - run_target('cppcheck', - command: [ - cppcheck, - '--std=@0@'.format(get_option('c_std')), - '--platform=unix64', - '--enable=all', - '-Uerror_dialog', - '--inconclusive', - '-I@0@'.format(join_paths(meson.source_root(), 'include')), - rofi_sources - ], - ) -endif - -ohcount = find_program('ohcount', required: false) -if ohcount.found() - run_target('ohcount', - command: [ - ohcount, - rofi_sources - ], - ) -endif diff --git a/meson_options.txt b/meson_options.txt deleted file mode 100644 index 08fb0de0..00000000 --- a/meson_options.txt +++ /dev/null @@ -1,3 +0,0 @@ -option('drun', type: 'boolean', value: true, description: 'Desktop file mode') -option('window', type: 'boolean', value: true, description: 'Window switcher mode') -option('check', type: 'feature', description: 'Build and run libcheck-based tests') -- cgit v1.2.3