Page MenuHomePhabricator

Meson build ignoring prefix
Closed, InvalidPublic

Description

The 'prefix' is ignored for meson builds of Enlightenment. Note my prefix is set to /opt/e22:

gandalf ~/e/enlightenment # meson configure build
Core properties:
  Source dir /root/e/enlightenment
  Build dir  /root/e/enlightenment/build

Core options:
  Option          Current Value Possible Values                                  Description
  ------          ------------- ---------------                                  -----------
  buildtype       debug         [plain, debug, debugoptimized, release, minsize] Build type to use.
  warning_level   2             [1, 2, 3]                                        Compiler warning level to use.
  werror          false         [true, false]                                    Treat warnings as errors.
  strip           false         [true, false]                                    Strip targets on install.
  unity           off           [on, off, subprojects]                           Unity build.
  default_library shared        [shared, static]                                 Default library type.

  Option            Current Value Description
  ------            ------------- -----------
  backend_max_links 0             Maximum number of linker processes to run or 0 for no limit

Base options:
  Option      Current Value Description
  ------      ------------- -----------
  b_asneeded  true          Use -Wl,--as-needed when linking
  b_colorout  always        Use colored output
  b_coverage  false         Enable coverage tracking.
  b_lto       false         Use link time optimization
  b_lundef    true          Use -Wl,--no-undefined when linking
  b_ndebug    false         Disable asserts
  b_pch       true          Use precompiled headers
  b_pgo       off           Use profile guided optimization
  b_sanitize  none          Code sanitizer to use
  b_staticpic true          Build static libraries as position independent

Compiler arguments:
  c_args ['-O3', '-g3', '-march=skylake', '-ffast-math', '-W', '-Wall', '-Wextra', '-Wshadow', '-Wstrict-prototypes']

Linker args:
  c_link_args ['-O3', '-g3', '-march=skylake', '-ffast-math', '-W', '-Wall', '-Wextra', '-Wshadow', '-Wstrict-prototypes']

Compiler options:
  Option Current Value Description
  ------ ------------- -----------
  c_std  gnu99         C language standard to use

Directories:
  Option         Current Value Description
  ------         ------------- -----------
  prefix         /opt/e22      Installation prefix.
  libdir         lib64         Library directory.
  libexecdir     libexec       Library executable directory.
  bindir         bin           Executable directory.
  sbindir        sbin          System executable directory.
  includedir                   Header file directory.
  datadir        share         Data file directory.
  mandir         share/man     Manual page directory.
  infodir        share/info    Info page directory.
  localedir      share/locale  Locale data directory.
  sysconfdir     etc           Sysconf data directory.
  localstatedir  var           Localstate data directory.
  sharedstatedir com           Architecture-independent data directory.

Project options:
  Option                     Current Value Possible Values Description
  ------                     ------------- --------------- -----------
  appmenu                    true          [True, False]   enable appmenu module: (default=true)
  backlight                  true          [True, False]   enable backlight module: (default=true)
  battery                    true          [True, False]   enable battery module: (default=true)
  bluez4                     true          [True, False]   enable bluez4 module: (default=true)
  clock                      true          [True, False]   enable clock module: (default=true)
  conf                       true          [True, False]   enable conf module: (default=true)
  conf-applications          true          [True, False]   enable conf-applications module: (default=true)
  conf-bindings              true          [True, False]   enable conf-bindings module: (default=true)
  conf-dialogs               true          [True, False]   enable conf-dialogs module: (default=true)
  conf-display               true          [True, False]   enable conf-display module: (default=true)
  conf-interaction           true          [True, False]   enable conf-interaction module: (default=true)
  conf-intl                  true          [True, False]   enable conf-intl module: (default=true)
  conf-menus                 true          [True, False]   enable conf-menus module: (default=true)
  conf-paths                 true          [True, False]   enable conf-paths module: (default=true)
  conf-performance           true          [True, False]   enable conf-performance module: (default=true)
  conf-randr                 true          [True, False]   enable conf-randr module: (default=true)
  conf-shelves               true          [True, False]   enable conf-shelves module: (default=true)
  conf-theme                 true          [True, False]   enable conf-theme module: (default=true)
  conf-window-manipulation   true          [True, False]   enable conf-window-manipulation module: (default=true)
  conf-window-remembers      true          [True, False]   enable conf-window-remembers module: (default=true)
  connman                    true          [True, False]   enable connman module: (default=true)
  cpufreq                    true          [True, False]   enable cpufreq module: (default=true)
  device-udev                true          [True, False]   enable udev device backend: (default=true)
  edje-cc                                                  A path to a edje_cc. Defaults to system edje_cc
  eet                                                      A path to a eet. Defaults to system eet
  eldbus-codegen                                           A path to a eldbus-codegen. Defaults to system eldbus-codegen
  everything                 true          [True, False]   enable everything module: (default=true)
  fileman                    true          [True, False]   enable fileman module: (default=true)
  fileman-opinfo             true          [True, False]   enable fileman-opinfo module: (default=true)
  files                      true          [True, False]   enable Files menu item: (default=true)
  gadman                     true          [True, False]   enable gadman module: (default=true)
  geolocation                true          [True, False]   enable geolocation module: (default=true)
  ibar                       true          [True, False]   enable ibar module: (default=true)
  ibox                       true          [True, False]   enable ibox module: (default=true)
  install-enlightenment-menu true          [True, False]   install /etc/xdg/menus/e-applications.menu: (default=true)
  install-sysactions         true          [True, False]   install /etc/enlightenment/sysactions.conf: (default=true)
  lokker                     true          [True, False]   enable lokker module: (default=true)
  luncher                    true          [True, False]   enable luncher module: (default=true)
  mixer                      true          [True, False]   enable mixer module: (default=true)
  mount-eeze                 false         [True, False]   enable eeze mounting support: (default=false)
  mount-udisks               true          [True, False]   enable udisks mounting support: (default=true)
  msgbus                     true          [True, False]   enable msgbus module: (default=true)
  music-control              true          [True, False]   enable music-control module: (default=true)
  nls                        true          [True, False]   enable localization: (default=true)
  notification               true          [True, False]   enable notification module: (default=true)
  packagekit                 true          [True, False]   enable packagekit module: (default=true)
  pager                      true          [True, False]   enable pager module: (default=true)
  pager-plain                true          [True, False]   enable pager_plain module: (default=true)
  pam                        true          [True, False]   enable PAM support: (default=true)
  quickaccess                true          [True, False]   enable quickaccess module: (default=true)
  shot                       true          [True, False]   enable shot module: (default=true)
  start                      true          [True, False]   enable start module: (default=true)
  syscon                     true          [True, False]   enable syscon module: (default=true)
  sysinfo                    true          [True, False]   enable sysinfo module: (default=true)
  systemd                    true          [True, False]   enable systemd support: (default=true)
  systemdunitdir                                           path to systemd user services directory
  systray                    true          [True, False]   enable systray module: (default=true)
  tasks                      true          [True, False]   enable tasks module: (default=true)
  teamwork                   true          [True, False]   enable teamwork module: (default=true)
  temperature                true          [True, False]   enable temperature module: (default=true)
  tiling                     true          [True, False]   enable tiling module: (default=true)
  time                       true          [True, False]   enable time module: (default=true)
  vkbd                       true          [True, False]   enable vkbd module: (default=true)
  wayland                    true          [True, False]   enable wayland support: (default=false)
  winlist                    true          [True, False]   enable winlist module: (default=true)
  wireless                   true          [True, False]   enable wireless module: (default=true)
  wizard                     true          [True, False]   enable wizard module: (default=true)
  wl-buffer                  true          [True, False]   enable buffer wayland output: (default=true)
  wl-desktop-shell           true          [True, False]   enable wayland desktop shell support: (default=true)
  wl-drm                     true          [True, False]   enable drm wayland output: (default=true)
  wl-text-input              true          [True, False]   enable wayland vkbd support: (default=true)
  wl-weekeyboard             true          [True, False]   enable internal wayland vkbd: (default=true)
  wl-wl                      true          [True, False]   enable nested wayland output: (default=true)
  wl-x11                     true          [True, False]   enable x11 wayland output: (default=true)
  xkbswitch                  true          [True, False]   enable xkbswitch module: (default=true)
  xwayland                   true          [True, False]   enable xwayland support: (default=true)
  xwayland-bin                                             set the path to Xwayland: (default=)

Testing options:
  Option    Current Value Possible Values Description
  ------    ------------- --------------- -----------
  stdsplit  true          [true, false]   Split stdout and stderr in test logs.
  errorlogs true          [true, false]   Whether to print the logs from failing tests.
gandalf ~/e/enlightenment #

When installing, the prefix of /usr/local/ is instead used. As a side-note ... terminology, which uses meson, honors the installation prefix ( somewhat demonstrating that my build system is not completely broken ).

dkasak created this task.Dec 5 2017, 3:31 PM
zmike reassigned this task from zmike to bu5hm4n.Jan 4 2018, 6:54 AM

Can you look at this since you're doing more work on meson now than I am?

Cannot reproduce, and the correct prefix here is always used except systemd unit files, since they need to be in that special dir.

dkasak closed this task as Invalid.Jan 14 2018, 4:47 PM

I've upgraded to meson 0.43.0 and tried again, and E now honors the prefix. I'm not sure whether it's the meson version number change or something else, but since it's my bug and it's now working, I'm closing it as invalid ...