Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-26 Thread Thomas Martitz
@kugel- pushed 1 commit.

def28c256a0e7001f5c4873663a723444c617555  fixes for windows


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/c58d1ec8f285ac2572a4c765f4fdb7e355bda223..def28c256a0e7001f5c4873663a723444c617555


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-20 Thread elextr
Since the lxml module is only needed if gtkdoc is enabled it would need to test 
with/without the module depending on the setting.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-948205686

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-20 Thread Eli Schwartz
The python module's find_installation() method accepts the kwarg `modules: 
['import_name']` and will report the python installation as not-found if that 
module is missing.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-948192690

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-20 Thread elextr
@kugel- yay, built a new clone, Geany works and nothing in `$PREFIX/lib`. 
:smile: 

Geany-plugins (at least the ones I have dependencies for) built and installed 
in `lib/x86_64-linux-gnu` except for `pluginutils` that spammed `/lib`, but 
thats not this PRs problem.  At least debugger (which uses pluginutils) works.  

So all good I would say.

One thing I did notice that it configured with GTKdoc enabled but I didn't have 
python3-lxml so the build fails. Maybe lxml should be checked in the configure 
step.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-948069216

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-18 Thread Thomas Martitz
@elextr please check the libdir problem again. I compiled in a Ubuntu container 
and it uses `lib/x86_64-linux-gnu` for both `libgeany.so*` and 
`pkgconfig/geany.pc`

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-946182390

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-05 Thread Eli Schwartz
@eli-schwartz commented on this pull request.



> +cdata.set_quoted('PACKAGE_BUGREPORT', 
> 'https://github.com/geany/geany/issues')
+cdata.set_quoted('PACKAGE_NAME','Geany')
+cdata.set_quoted('PACKAGE_STRING', 'Geany ' + meson.project_version())
+cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
+cdata.set('GETTEXT_PACKAGE', 'PACKAGE')
+cdata.set('VERSION', meson.project_version())
+cdata.set('ENABLE_NLS', true)
+cdata.set('HAVE_VTE', get_option('vte'))
+cdata.set('HAVE_PLUGINS', get_option('plugins'))
+cdata.set('GEANY_DATA_DIR', join_paths(prefix, get_option('datadir'), 'geany'))
+cdata.set('GEANY_DOC_DIR', join_paths(prefix, get_option('datadir'), 'doc', 
'geany'))
+cdata.set('top_srcdir', meson.source_root())
+cdata.set('top_builddir', meson.build_root())
+
+# for geany.pc (adapted from GTK+)
+pcconf = cdata

The automagic module is far less verbose than  `pcconf.set('DEPENDENCIES', 
deps_for_pc)` or redefining a variety of already existing variables.

Additionally, the automagic module will create a geany-uninstalled.pc file 
which can be used to compile third-party software against uninstalled 
development versions of geany, which may be useful.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#discussion_r721903621

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-10-05 Thread Thomas Martitz
@kugel- commented on this pull request.



> +cdata.set_quoted('PACKAGE_BUGREPORT', 
> 'https://github.com/geany/geany/issues')
+cdata.set_quoted('PACKAGE_NAME','Geany')
+cdata.set_quoted('PACKAGE_STRING', 'Geany ' + meson.project_version())
+cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
+cdata.set('GETTEXT_PACKAGE', 'PACKAGE')
+cdata.set('VERSION', meson.project_version())
+cdata.set('ENABLE_NLS', true)
+cdata.set('HAVE_VTE', get_option('vte'))
+cdata.set('HAVE_PLUGINS', get_option('plugins'))
+cdata.set('GEANY_DATA_DIR', join_paths(prefix, get_option('datadir'), 'geany'))
+cdata.set('GEANY_DOC_DIR', join_paths(prefix, get_option('datadir'), 'doc', 
'geany'))
+cdata.set('top_srcdir', meson.source_root())
+cdata.set('top_builddir', meson.build_root())
+
+# for geany.pc (adapted from GTK+)
+pcconf = cdata

Thanks. I'll keep it for now as it seems to work, and is shared with autotools 
build.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#discussion_r721899309

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-09-13 Thread Eli Schwartz
@eli-schwartz commented on this pull request.



> +def_cflags += '-DGDK_DISABLE_DEPRECATION_WARNINGS'
+def_cflags += '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'
+def_cflags += '-DGEANY_PREFIX="@0@"'.format(get_option('prefix'))
+foreach d : [ 'includedir', 'libdir', 'libexecdir', 'datadir', 'localedir' ]
+  def_cflags += '-DGEANY_@0@="@1@"'.format(d.underscorify().to_upper(), 
join_paths(prefix, get_option(d)))
+endforeach
+def_cflags += '-DGEANY_DOCDIR="@0@"'.format(join_paths(prefix, 
get_option('datadir'), 'doc'))
+
+# CFLAGS for everything else, i.e. most of Geany
+geany_cflags = def_cflags
+have_gcc4_visibility = cc.has_argument('-fvisibility=hidden')
+geany_cflags += '-DGEANY_PRIVATE'
+if target_machine.system() == 'windows'
+  geany_cflags += '-DGEANY_EXPORT_SYMBOL="__declspec(dllexport)"'
+elif have_gcc4_visibility
+  geany_cflags += '-fvisibility=hidden'

Use the meson kwarg `gnu_symbol_visibility: 'hidden'` on your build targets, 
and let the declspec define fill in the support gap for Windows (I think 
everywhere else should support it, really). 

> +'scintilla/lexers/LexPerl.cxx',
+'scintilla/lexers/LexPowerShell.cxx',
+'scintilla/lexers/LexProps.cxx',
+'scintilla/lexers/LexPython.cxx',
+'scintilla/lexers/LexPO.cxx',
+'scintilla/lexers/LexR.cxx',
+'scintilla/lexers/LexRuby.cxx',
+'scintilla/lexers/LexRust.cxx',
+'scintilla/lexers/LexSmalltalk.cxx',
+'scintilla/lexers/LexSQL.cxx',
+'scintilla/lexers/LexTCL.cxx',
+'scintilla/lexers/LexTxt2tags.cxx',
+'scintilla/lexers/LexVHDL.cxx',
+'scintilla/lexers/LexVerilog.cxx',
+'scintilla/lexers/LexYAML.cxx',
+cpp_std: 'c++17',

This is not a valid kwarg, but it is a valid project option. You can add it to 
default_options in the project() declaration, or override it per target with 
`override_options: ['cpp_std=c++17']`

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#pullrequestreview-752319216

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-09-01 Thread Enrico Tröger
Here we go, Meson on MSYS2: 
https://gist.github.com/eht16/5dc2fdfc79d10176e67aa7439816cf4c

It looks pretty good already, the configure part works well. Good job!

There are a few details on the build stage:
- https://github.com/geany/geany/pull/2761#discussion_r700600332
- ENABLE_NLS must be set to 1 , not just defined as well as the other HAVE_* 
macros (for the bundled "ctags/gnu_regex" library)
- __USE_GNU macro must be defined for bundled "ctags/gnu_regex" library (as 
done in https://github.com/geany/geany/blob/master/ctags/Makefile.am#L197)
- something is wrong with include paths for bundled "fnmatch" library, it 
doesn't find its own header


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-910811241

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-09-01 Thread Enrico Tröger
@eht16 commented on this pull request.



> +# we're using lots of deprecated stuff with gtk3 (often because there is no 
> proper alternative!)
+def_cflags += '-Wno-deprecated-declarations'
+def_cflags += '-DGDK_DISABLE_DEPRECATION_WARNINGS'
+def_cflags += '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'
+def_cflags += '-DGEANY_PREFIX="@0@"'.format(get_option('prefix'))
+foreach d : [ 'includedir', 'libdir', 'libexecdir', 'datadir', 'localedir' ]
+  def_cflags += '-DGEANY_@0@="@1@"'.format(d.underscorify().to_upper(), 
join_paths(prefix, get_option(d)))
+endforeach
+def_cflags += '-DGEANY_DOCDIR="@0@"'.format(join_paths(prefix, 
get_option('datadir'), 'doc'))
+
+# CFLAGS for everything else, i.e. most of Geany
+geany_cflags = def_cflags
+have_gcc4_visibility = cc.has_argument('-fvisibility=hidden')
+geany_cflags += '-DGEANY_PRIVATE'
+if target_machine.system() == 'windows'
+  geany_cflags += '-DGEANY_EXPORT_SYMBOL="__declspec(dllexport)"'

The quotes around `__declspec(dllexport)` must be removed otherwise we get 
syntax errors, without the quotes the code compiles.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#pullrequestreview-70871

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-11 Thread elextr
@codebrainz why doesn't msys2 have fnmatch and regex?  It seemed to work for 
@eht16, maybe its something that can be installed? 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-897246613

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-11 Thread Matthew Brush
@kugel- You're doing the work, so it's your call (and can be 
discussed/refactored later). It just seems weird to have some stuff in subdirs 
and most stuff in the main file, and then have separate build artifacts, but 
not in own subdirs/subprojects; basically just seems a little inconsistent. 
That said, I don't know what's idiomatic in Meson, so feel free to ignore me :)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-897239541

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-11 Thread Thomas Martitz
@codebrainz I simply wanted to have a single meson.build where the import stuff 
is in. data, icons, po etc is rarely touched and can be in a separate 
meson.build so they don't create too much noise. But for the main build system 
work I don't want to constantly jump between build files.

Not putting meson.build into imported code was only a minor aspect but it's 
another advantage.

> Don't build all the things into helper static libs (Scintilla, Ctags, etc) 
> which are not distributed and only used to build the shared libgeany. These 
> could all be built into the single libgeany shared_library directly.

I do that because they (can) have different CFLAGS/CXXFLAGS. You cannot set 
those per source file. Stuffing everything into one `shared_library` 
declaration (even mixed C/C++) can possibly be done but has no real advantage.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896607353

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
The RPATH thing might still be needed when a non-system $PREFIX is used, also 
there was some fiddling needed (see history above) because here libraries live 
in `/lib/x86_64-linux-gnu` not in `/lib` and meson knows that, whereas the 
autotools builder puts everything in `/lib` irrespective, so the RPATH needed 
adjustment.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896455436

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
> Use the / path operator instead of join_paths() as well as for other paths 
> where now they're just regular strings. Not sure what's idiomatic.

Probably should be https://mesonbuild.com/Syntax.html#string-path-building but 
windows seems much less strict about the slash/backslash issue these days.

Personally when using meson I gather filenames locally into variables in the 
respective directories and let meson take the strain, but @kugel- has wisely 
avoided putting meson.build files into ctags and scintilla directories which 
will avoid them being clobbered during updates so some path munging is needed 
for those.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896442212

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
Agree with @codebrainz suggested path above.

[STOP PRESS, the reason fnmatch and regex work on Linux (and presumably mac) is 
that they don't get built, the meson configuration finds the system ones and 
does not build the ctags internal copies]

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896436735

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread Matthew Brush
I realize this is a more-or-less direct port from the Autotools build system, 
but is it in the scope of this WIP PR to re-organize it to be more Meson-like, 
or rather to get rid of Autotools-style/cruft?

A few things that stick out:

 * Compiling all the things into helper static libs (Scintilla, Ctags, etc) 
which are not distributed and only used to build the shared libgeany. These 
could all be built into a single `shared_library` and delimit the source file 
(directories) in the arguments list with newlines and/or comments.
 * Checking for C headers which are guaranteed to exist (ex. C99 headers)
 * Using the built-in Pkgconfig module to generate .pc file
 * Different `extra_data` filenames for Windows (could be done in the 
`geany.nsi` script probably)
 * If we're going to use subdir(), why not subdir() into the `src` dir as well 
to move the libgeany/geany into a smaller file? Otherwise, maybe all of the 
things could be done in the same huge source of truth `meson.build` file in the 
source root directory?
 * Use the `/` path operator instead of `join_paths()` as well as for other 
paths where now they're just regular strings. Not sure what's idiomatic.
 * Is any explicit `rpath` stuff really needed? I only use Meson for small Vala 
projects, but in my uses it easily handles installing executables linked to 
shared libraries using correct paths for the distro.

Maybe we could do like?

  1. Merge this sort of direct-port PR once ready
  2. Do stuff like listed above to Mesonify in a separate PR(s) afterwards
  3. Once Meson build is nice and clean and maintainable, rip out Autotools

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896427102

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread Matthew Brush
I did try to tinker with it a bit, but not too much. I'll try other stuff next 
time I boot into Windows partition.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896412070

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
@codebrainz if you want to test before @kugel- gets to it, in geany/meson.build 
try making a copy of the `,include_directories: ...` parameter from lines 334 
and 346 into the respective `static_library()` functions above those lines.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896410342

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
>  I'm pretty sure Ninja is doing parallel compiles so the output is probably 
> out of order.

Since ninja buffers output, the messages of different compile commands 
shouldn't be mixed, but yes the order of the compiles may vary.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896401587

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
@codebrainz sorry I didn't look closely enough at it, saw the first error in 
your build post was Scintilla and assumed it was all C++17 regex issues, but in 
fact most of them are ctgas errors:

- missing  which is the linux glob file match header, but its in 
ctags/fnmatch
- at least some of the missing macros are defined in 
ctags/gnu_regex/regex_internal.h, didn't check them all

So it looks like the meson.build needs to declare those two directories as 
includes so the headers will be found, not sure why it works on Linux, possibly 
its using the system headers of the same name or finding them because they are 
in the same directory as the file being compiled.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896398415

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread Matthew Brush
> @codebrainz not sure what the problem is, I would have thought g++ 10 would 
> default to c++17, but maybe I'm wrong, does latest git Geany build with 
> autotools on the same system?

I think the problem is with fnmatch/gnu_regex libraries which I believe are 
special for Windows, and possibly just some missing checks/macros to enable 
them. From the build output, it looks like a bunch of macros are not defined 
which just cascades into a whole pile of errors. I'm pretty sure Ninja is doing 
parallel compiles so the output is probably out of order.

It's the same setup I used to build Geany previously, but I didn't try 
Autotools since pulling latest with the c++17 requirement, though judging by 
the output, I don't think it has hit that issue (yet).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896358305

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread Jiří Techet
I got it compiled on macOS with
```
meson _builddir -Dgtkdoc=false -Dcpp_std=c++17 && ninja -C _builddir
```
and Geany installs and runs fine.

The only problem I did run into during the compilation was inside 
`doc/meson.build` where the `cp` commands take the `-u` parameter which is not 
supported on macOS (for the compilation I just removed it).

One thing still missing is the support of the gtk-mac-integration library which 
is used to make GTK applications behave in a more native way. What's missing is 
the configuration option to enable mac integration and also the detection of 
the presence of the library like in the autotools m4 file here:

https://github.com/geany/geany/blob/master/m4/geany-mac-integration.m4

When the library is enabled, Geany should link against it and add `osx.h` and 
`osx.c` to the compilation:

https://github.com/geany/geany/blob/master/src/Makefile.am#L115

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-896355477

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
@codebrainz not sure what the problem is, I would have thought g++ 10 would 
default to c++17, but maybe I'm wrong, does latest git Geany build with 
autotools on the same system?  If it does build maybe the point I posted above 
will fix it since it meant the standard wasn't explicit?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-895696267

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-10 Thread elextr
Hmm, @kugel- `cpp_std` isn't a valid named parameter to `shared_library()` (see 
the configure output @codebrainz posted), it should probably be in the 
`cpp_args` if you want to apply it to only the Scintilla part of the build.  
But personally I would add it in `add_project_options()` as per 
https://mesonbuild.com/howtox.html#set-default-cc-language-version.  Might as 
well make it global, only Scintilla is C++ anyway.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-895693268

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-09 Thread Matthew Brush
Tried to test on Win10 with Msys2; seems to have some issues with the embedded 
fnmatch/gnu_regex stuff.

  * [Configure 
Output](https://gist.github.com/codebrainz/0fcbfbfb9bd21d4c06ed542ff636ea46#file-configure)
  * [Build 
Output](https://gist.github.com/codebrainz/0fcbfbfb9bd21d4c06ed542ff636ea46#file-build)


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-895672363

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-08 Thread elextr
Ok fair enough, to be excruciatingly semantically correct, meson is fast 
because ninja is fast and meson requires files to be listed because ninja does 
not support directory search, and meson being a slw python program `meson 
build` just invokes ninja and does nothing else, ninja will re-invoke meson if 
any of the `meson.build` files change.  

In fact you can invoke `ninja build` instead of `meson build`, that is how 
little meson build does when using the ninja backend. :grin:

Sure a makefile written to ninja rules will likely be nearly as fast because 
those rules are designed to make a fast build system, so except for automatic 
parallelisation it should be similar because it does much the same stuff (other 
than automatic include dependency handling and no recursive dependency issues, 
but they are convenience and accuracy issues, not speed).  

And for make you can of course try to guess a suitable `-j` yourself and try to 
remember to run `make depends` manually when you change includes (unless you 
use the GNU make extensions, which autofools doesn't).  

But almost all makefiles written by humans, and by autofools, and by most other 
tools, do not meet the ninja rules, and as @kugel- pointed out that is what 
most comparisons are to.  It would be interesting to get benchmarks of ninja 
and kmake makefiles for a big program like chromium, frankly Geany is just a 
tiddler[1]. IIUC pre-ninja chromium make would take ages to figure out what to 
do before it actually started the compiles, which was annoying if you only 
changed one character :imp: 

This lack of search is also important on windows where the file system is slow 
(by comparison to linux) and makes the visual studio backend work better too.

Anyway @kugel- thanks for fixing the Julia, probably should have prompted when 
I merged it, but didn't think of it.

[1] tiddler: a thing so small its not worth anything in the context, usually of 
fish that are thrown back.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-894896202

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-08 Thread Thomas Martitz
> Quick explain, meson requires all files to be explicitly listed, it doesn't 
> search to see whats in the directories the way make does. Its how meson gets 
> its speed since it doesn't need to rebuild the ninja files every time. Not a 
> lot of impact with Geany, but huge with things like chromium or llvm etc.

Sorry, I have to bust that myth. 

1) meson doesn't build anything itself, it just generates ninja build scripts. 
ninja is doing the heavy work
2) make also requires all files to be listed explicitely, by default. GNU make 
has an extension that allows wildcards that allows to use dynamic source file 
lists, but that's evaluated at parse-time (basically by shelling out to a "ls 
dir/*") and doesn't affect the build speed (perhaps unless you have *huge* 
directories)
3) ninja is not much faster than Make because most of the time is used by the 
compiler, naturally, especially with C++ code. Ninja has a reduced syntax so 
parsing ninja files is a bit faster, but at the expense that it's not 
recommended to write ninja files by hand.

I would expect that an optimized, i.e. non-recursive, as realized with my 
[kmake](https://github.com/kugel-/kmake/) system, Make build is about the same 
speed that ninja builds. make can be blazing fast if used properly, i.e. almost 
all CPU time is measurably used by the compiler.

meson is *much* faster than autoconf, that's true for sure.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-894847002

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-08 Thread elextr
What has probably happened is the meson.build hasn't been updated since the 
julia parser was merged, and I admit I havn't tested the meson build since 
then.  So it probably just needs the file listed in the meson.build file with 
the other ctags/parsers files.

Quick explain, meson requires all files to be explicitly listed, it doesn't 
search to see whats in the directories the way make does.  Its how meson gets 
its speed since it doesn't need to rebuild the ninja files every time.  Not a 
lot of impact with Geany, but huge with things like chromium or llvm etc.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-894776942

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-08 Thread Jiří Techet
OK, with

```
meson _builddir -Dgtkdoc=false -Dcpp_std=c++17 && ninja -C _builddir -j 1 -v
```

 I got a bit further now:

```
[230/252] /Applications/Xcode.app/Contents/Developer/usr/bin/g++  -o 
libgeany.0.dylib libgeany.0.dylib.p/src_about.c.o 
libgeany.0.dylib.p/src_build.c.o libgeany.0.dylib.p/src_callbacks.c.o 
libgeany.0.dylib.p/src_dialogs.c.o libgeany.0.dylib.p/src_document.c.o 
libgeany.0.dylib.p/src_editor.c.o libgeany.0.dylib.p/src_encodings.c.o 
libgeany.0.dylib.p/src_filetypes.c.o 
libgeany.0.dylib.p/src_geanyentryaction.c.o 
libgeany.0.dylib.p/src_geanymenubuttonaction.c.o 
libgeany.0.dylib.p/src_geanyobject.c.o 
libgeany.0.dylib.p/src_geanywraplabel.c.o 
libgeany.0.dylib.p/src_highlighting.c.o libgeany.0.dylib.p/src_keybindings.c.o 
libgeany.0.dylib.p/src_keyfile.c.o libgeany.0.dylib.p/src_log.c.o 
libgeany.0.dylib.p/src_libmain.c.o libgeany.0.dylib.p/src_msgwindow.c.o 
libgeany.0.dylib.p/src_navqueue.c.o libgeany.0.dylib.p/src_notebook.c.o 
libgeany.0.dylib.p/src_plugins.c.o libgeany.0.dylib.p/src_pluginutils.c.o 
libgeany.0.dylib.p/src_prefs.c.o libgeany.0.dylib.p/src_printing.c.o 
libgeany.0.dylib.p/src_project.c.o libgeany.0.dylib.p/src_sciwrappers.c.o 
libgeany.0.dylib.p/src_search.c.o libgeany.0.dylib.p/src_socket.c.o 
libgeany.0.dylib.p/src_spawn.c.o libgeany.0.dylib.p/src_stash.c.o 
libgeany.0.dylib.p/src_symbols.c.o libgeany.0.dylib.p/src_templates.c.o 
libgeany.0.dylib.p/src_toolbar.c.o libgeany.0.dylib.p/src_tools.c.o 
libgeany.0.dylib.p/src_sidebar.c.o libgeany.0.dylib.p/src_ui_utils.c.o 
libgeany.0.dylib.p/src_utils.c.o libgeany.0.dylib.p/src_vte.c.o 
-L/Users/jhbuild/gtk/inst/lib 
-L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
 
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
 -I/Users/jhbuild/gtk/inst/include -Wl,-dead_strip_dylibs 
-Wl,-headerpad_max_install_names -Wl,-undefined,error -shared -install_name 
@rpath/libgeany.0.dylib -compatibility_version 0 -current_version 0 -arch 
x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
 -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -O2 -arch x86_64 
-isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
 -mmacosx-version-min=10.13 -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
 libtagmanager.a libctags.a libscintilla.a 
/Users/jhbuild/gtk/inst/lib/libglib-2.0.dylib 
/Users/jhbuild/gtk/inst/lib/libintl.dylib 
/Users/jhbuild/gtk/inst/lib/libgmodule-2.0.dylib 
/Users/jhbuild/gtk/inst/lib/libgtk-3.dylib 
/Users/jhbuild/gtk/inst/lib/libgdk-3.dylib -Wl,-framework,Cocoa 
-Wl,-framework,Carbon -Wl,-framework,CoreGraphics 
/Users/jhbuild/gtk/inst/lib/libpangocairo-1.0.dylib 
/Users/jhbuild/gtk/inst/lib/libpango-1.0.dylib 
/Users/jhbuild/gtk/inst/lib/libharfbuzz.dylib 
/Users/jhbuild/gtk/inst/lib/libatk-1.0.dylib 
/Users/jhbuild/gtk/inst/lib/libcairo-gobject.dylib 
/Users/jhbuild/gtk/inst/lib/libcairo.dylib 
/Users/jhbuild/gtk/inst/lib/libgdk_pixbuf-2.0.dylib 
/Users/jhbuild/gtk/inst/lib/libgio-2.0.dylib 
/Users/jhbuild/gtk/inst/lib/libgobject-2.0.dylib -Wl,-framework,Cocoa 
-Wl,-framework,Carbon -Wl,-framework,CoreGraphics -Wl,-framework,Cocoa 
-Wl,-framework,Carbon -Wl,-framework,CoreGraphics
FAILED: libgeany.0.dylib 
/Applications/Xcode.app/Contents/Developer/usr/bin/g++  -o libgeany.0.dylib 
libgeany.0.dylib.p/src_about.c.o libgeany.0.dylib.p/src_build.c.o 
libgeany.0.dylib.p/src_callbacks.c.o libgeany.0.dylib.p/src_dialogs.c.o 
libgeany.0.dylib.p/src_document.c.o libgeany.0.dylib.p/src_editor.c.o 
libgeany.0.dylib.p/src_encodings.c.o libgeany.0.dylib.p/src_filetypes.c.o 
libgeany.0.dylib.p/src_geanyentryaction.c.o 
libgeany.0.dylib.p/src_geanymenubuttonaction.c.o 
libgeany.0.dylib.p/src_geanyobject.c.o 
libgeany.0.dylib.p/src_geanywraplabel.c.o 
libgeany.0.dylib.p/src_highlighting.c.o libgeany.0.dylib.p/src_keybindings.c.o 
libgeany.0.dylib.p/src_keyfile.c.o libgeany.0.dylib.p/src_log.c.o 
libgeany.0.dylib.p/src_libmain.c.o libgeany.0.dylib.p/src_msgwindow.c.o 
libgeany.0.dylib.p/src_navqueue.c.o libgeany.0.dylib.p/src_notebook.c.o 
libgeany.0.dylib.p/src_plugins.c.o libgeany.0.dylib.p/src_pluginutils.c.o 
libgeany.0.dylib.p/src_prefs.c.o libgeany.0.dylib.p/src_printing.c.o 
libgeany.0.dylib.p/src_project.c.o libgeany.0.dylib.p/src_sciwrappers.c.o 
libgeany.0.dylib.p/src_search.c.o libgeany.0.dylib.p/src_socket.c.o 
libgeany.0.dylib.p/src_spawn.c.o libgeany.0.dylib.p/src_stash.c.o 
libgeany.0.dylib.p/src_symbols.c.o libgeany.0.dylib.p/src_templates.c.o 
libgeany.0.dylib.p/src_toolbar.c.o libgeany.0.dylib.p/src_tools.c.o 
libgeany.0.dylib.p/src_sidebar.c.o libgeany.0.dylib.p/src_ui_utils.c.o 
libgeany.0.dylib.p/src_utils.c.o libgeany.0.dylib.p/src_vte.c.o 
-L/Users/jhbuild/gtk/inst/lib 
-L/Applications/Xcode.app/Contents/De

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-07 Thread Andy Alt
But you can still specify the prefix and other options after the build 
directory has been initialized. While in the build directory 'meson configure 
-Dprefix=...'. (Use 'meson configure' to see other config options)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-894724332

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-07 Thread elextr
@techee you specify the prefix when you initialize the build directory, see 
https://github.com/geany/geany/pull/2761#issuecomment-809698447

The error looks like g++ is using the wrong standard, @kugel- hasn't specified 
it and I guess all the rest of us are using a g++ that defaults to at least 
c++11.  In fact the new Julia lexer requires c++17 so you will need a compiler 
capable of that (see recent changes to travis distro version on geany-plugins 
to get new enough compilers).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-894722666

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-08-07 Thread Jiří Techet
@kugel- Finally had some time to try it on macOS but I get the following error:

```
The Meson build system
Version: 0.59.0
Source dir: /Users/jhbuild/geany
Build dir: /Users/jhbuild/geany/_builddir
Build type: native build
Project name: geany
Project version: 1.38
C compiler for the host machine: 
/Applications/Xcode.app/Contents/Developer/usr/bin/gcc (clang 12.0.5 "Apple 
clang version 12.0.5 (clang-1205.0.22.11)")
C linker for the host machine: 
/Applications/Xcode.app/Contents/Developer/usr/bin/gcc ld64 650.9
C++ compiler for the host machine: 
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ (clang 12.0.5 "Apple 
clang version 12.0.5 (clang-1205.0.22.11)")
C++ linker for the host machine: 
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ ld64 650.9
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /Users/jhbuild/gtk/inst/bin/pkg-config (0.29.2)
Run-time dependency glib-2.0 found: YES 2.68.0
Run-time dependency gmodule-2.0 found: YES 2.68.0
Run-time dependency gtk+-3.0 found: YES 3.24.30
Has header "dlfcn.h" : YES 
Has header "errno.h" : YES 
Has header "fcntl.h" : YES 
Has header "glob.h" : YES 
Has header "inttypes.h" : YES 
Has header "limits.h" : YES 
Has header "locale.h" : YES 
Has header "memory.h" : YES 
Has header "stdint.h" : YES 
Has header "stdlib.h" : YES 
Has header "strings.h" : YES 
Has header "string.h" : YES 
Has header "stdbool.h" : YES 
Has header "sys/stat.h" : YES 
Has header "sys/time.h" : YES 
Has header "sys/types.h" : YES 
Has header "unistd.h" : YES 
Checking for function "gnu_get_libc_version" : NO 
Checking for function "fnmatch" : YES 
Checking for function "ftruncate" : YES 
Checking for function "mkstemp" : YES 
Checking for function "regcomp" : YES 
Checking for function "socket" : YES 
Checking for function "strerror" : YES 
Checking for function "strstr" : YES 
Program sh found: YES (/bin/sh)
Program cp found: YES (/bin/cp)
Program ln found: YES (/bin/ln)
Program python3 found: YES (/Users/jhbuild/gtk/inst/bin/python3)
Program rst2html found: NO
Program rst2pdf found: NO
Program git found: YES (/usr/bin/git)
Configuring config.h using configuration
Configuring geany.pc using configuration
Compiler for C supports arguments -fvisibility=hidden: YES 
Configuring geany.1 using configuration
Message: Building from tarball, installing prebuild html
Program doxygen found: NO
Program ctags/runner.sh found: YES (/Users/jhbuild/geany/tests/ctags/runner.sh)
Message: [['COPYING', 'GPL-2']]
Program cp found: YES (/bin/cp)
Build targets in project: 22

Found ninja-1.8.2 at /Users/jhbuild/.new_local/bin/ninja
[1/252] Compiling C++ object 
libscintilla.a.p/scintilla_lexlib_CharacterSet.cxx.o
FAILED: libscintilla.a.p/scintilla_lexlib_CharacterSet.cxx.o 
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -Ilibscintilla.a.p -I. 
-I.. -I../scintilla/include -I../scintilla/src -I../scintilla/lexlib 
-I/Users/jhbuild/gtk/inst/include/glib-2.0 
-I/Users/jhbuild/gtk/inst/lib/glib-2.0/include 
-I/Users/jhbuild/gtk/inst/include/gtk-3.0 
-I/Users/jhbuild/gtk/inst/include/gio-unix-2.0 
-I/Users/jhbuild/gtk/inst/include/cairo 
-I/Users/jhbuild/gtk/inst/include/pango-1.0 
-I/Users/jhbuild/gtk/inst/include/harfbuzz 
-I/Users/jhbuild/gtk/inst/include/fribidi 
-I/Users/jhbuild/gtk/inst/include/atk-1.0 
-I/Users/jhbuild/gtk/inst/include/pixman-1 
-I/Users/jhbuild/gtk/inst/include/freetype2 
-I/Users/jhbuild/gtk/inst/include/libpng16 
-I/Users/jhbuild/gtk/inst/include/gdk-pixbuf-2.0 
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
 -I/Users/jhbuild/gtk/inst/include -fcolor-diagnostics -Wall -Winvalid-pch 
-Wnon-virtual-dtor -O0 -g -O2 -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
 -mmacosx-version-min=10.13 -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
 -DHAVE_CONFIG_H=1 -O2 -DGTK -Wno-deprecated-declarations 
-DGDK_DISABLE_DEPRECATION_WARNINGS 
-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32 '-DGEANY_PREFIX="/usr/local"' 
'-DGEANY_INCLUDEDIR="/usr/local/include"' '-DGEANY_LIBDIR="/usr/local/lib"' 
'-DGEANY_LIBEXECDIR="/usr/local/libexec"' '-DGEANY_DATADIR="/usr/local/share"' 
'-DGEANY_LOCALEDIR="/usr/local/share/locale"' 
'-DGEANY_DOCDIR="/usr/local/share/doc"' -DGEANY_PRIVATE -fvisibility=hidden 
'-DGEANY_EXPORT_SYMBOL=__attribute__((visibility("default")))' 
-DGEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL -Wno-non-virtual-dtor -DNDEBUG 
-DSCI_LEXER -DNO_CXX11_REGEX -MD -MQ 
libscintilla.a.p/scintilla_lexlib_CharacterSet.cxx.o -MF 
libscintilla.a.p/scintilla_lexlib_CharacterSet.cxx.o.d -o 
libscintilla.a.p/scintilla_lexlib_CharacterSet.cxx.o -c 
../scintilla/lexlib/CharacterSet.cxx
In file included from ../scintilla/lexlib/CharacterSet.cxx:12:
../scintilla/lexlib/CharacterSet.h:49:28: warning: rvalue references are a 
C++11 extension [-Wc++11-extensions]
Chara

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-06-27 Thread Andy Alt
@andy5995 commented on this pull request.



> @@ -0,0 +1,714 @@
+project('geany', 'c', 'cpp', version: '1.38')

```suggestion
project('geany', 'c', 'cpp', version: '1.38', default_options: 
'warning_level=2')
```
https://mesonbuild.com/Builtin-options.html#core-options

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#pullrequestreview-693378306

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-06-27 Thread Andy Alt
> I think this is what the 
> [i18n.merge_file()](https://mesonbuild.com/i18n-module.html#i18nmerge_file) 
> function was designed for (note the 'type' keyword).

Ah.. nevermind. I see you're already using that.


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-869099649

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-06-27 Thread Andy Alt
> 
>   I wonder if the missing `../po/LINGUAS` is a problem and what's the 
> consequence.
>   The lines about "warning: invalid non-blank line" seems to be related 
> that Meson is using `gettext` to process the .desktop file where previously 
> `intltool` was used. And the `_Keyword...` syntax is specific for `intltool`.
>   It seems this might be a seperate task like migrating from `intltool` 
> to `gettext` 
> (https://stackoverflow.com/questions/62504873/i18n-merge-file-cant-translate-desktop-file).
>   Anyway, we need to handle this in some way as the resulting .desktop 
> file is missing items like "Name", "Comment" and "Keywords".

I think this is what the 
[i18n.merge_file()](https://mesonbuild.com/i18n-module.html#i18nmerge_file) 
function was designed for (note the 'type' keyword).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-869098690

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-06-26 Thread Andy Alt
@andy5995 commented on this pull request.



> +cdata.set_quoted('PACKAGE_BUGREPORT', 
> 'https://github.com/geany/geany/issues')
+cdata.set_quoted('PACKAGE_NAME','Geany')
+cdata.set_quoted('PACKAGE_STRING', 'Geany ' + meson.project_version())
+cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
+cdata.set('GETTEXT_PACKAGE', 'PACKAGE')
+cdata.set('VERSION', meson.project_version())
+cdata.set('ENABLE_NLS', true)
+cdata.set('HAVE_VTE', get_option('vte'))
+cdata.set('HAVE_PLUGINS', get_option('plugins'))
+cdata.set('GEANY_DATA_DIR', join_paths(prefix, get_option('datadir'), 'geany'))
+cdata.set('GEANY_DOC_DIR', join_paths(prefix, get_option('datadir'), 'doc', 
'geany'))
+cdata.set('top_srcdir', meson.source_root())
+cdata.set('top_builddir', meson.build_root())
+
+# for geany.pc (adapted from GTK+)
+pcconf = cdata

There's [a function that will generate .pc 
files](https://mesonbuild.com/Pkgconfig-module.html#pkgconfig-module) more 
automagically...


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#pullrequestreview-693364691

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-06-07 Thread Jiří Techet
@kugel- Sorry for the delay on my side - is there anything macOS specific that 
should be addressed? In general,  there should be no problem with meson on 
macOS - I build all the dependencies of Geany from sources and many of them use 
meson already and work alright.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-855891050

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-06-02 Thread elextr
@kugel- I got merge conflicts on a couple of files so I made a clean clone (and 
they went away, did you force push something?) and now building geany installs 
the icons ... except `scaleable`.

With the clean build geany-plugins fails again because it doesn't find 
pkg-config, works if PKG_CONFIG_PATH is set of course, I'll raise that on G-P 
and see what @hyperair has to say, maybe its not supposed to follow 
`--with-geany-libdir`, who knows with these distro rules :confused: 

I'll leave the translations to @eht16 since I only speak ASCII :grin: 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-853486055

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-30 Thread Enrico Tröger
> @eht16 In fact, `gawk` is not a new depedency, it's already needed by 
> `geany-i18n-m4`. but I still replaced the offending statement because meson 
> discourages from listing source files via wildcards.

Almost. `geany-i18n-m4` requires `AC_PROG_AWK` which supports also other `awk` 
variants than `gawk`.
I noticed this because the system where I tested the build actually had no 
`gawk` installed but I was still able to successfully compile Geany with 
autotools (probably with `mawk` as this is installed on that system).
Maybe Meson supports something similar to use either `gawk` or `mawk` depending 
on what is available, so we could still have the dynamically generated list.

Found a few more issues:

- `$PREFIX/share/geany/filedefs/filetypes.python.in` is installed as is. But it 
needs to be preprocessed to replace `@PYTHON_COMMAND@`.

- G_LOG_DOMAIN is not set which results in log messages without the source set, 
e.g.: `17:53:15: (null) INFO   : Geany 1.38 (git >= 73ab53541), 
en_GB.UTF-8`. Log messages should look like: `17:54:09: Geany INFO: 
Geany 1.38 (git >= 8a30ce2), en_GB.UTF-8`. For the different parts of the code, 
there are different log domains defined:
CTags
 Classbuilder
Demoplugin
Demoproxy
Export
FileBrowser
Geany 
HTMLChars
MIO 
SaveActions
SplitWindow
Tagmanager

- in the output I found `Running custom install script '/usr/bin/meson 
--internal gettext install --subdir=po --localedir=share/locale --pkgname=geany 
--langs=ar@@ast@@be@@bg@@ca@@cs@@da@@de@@el@@en_GB@@es@@et@@eu@@fa@@fi@@fr@@gl@@he@@hi@@hu@@id@@ie@@it@@ja@@kk@@ko@@ku@@lb@@lt@@lv@@mn@@nl@@nn@@pl@@pt@@pt_BR@@ro@@ru@@sk@@sl@@sr@@sv@@tr@@uk@@vi@@zh_CN@@zh_TW'`
 which looks strange but possibly is fine anyway. At least it seems the 
language files were probably installed.

- I still have the messages like 
```
msgfmt: ../po/LINGUAS does not exist
../geany.desktop.in:5:0: warning: invalid non-blank line
../geany.desktop.in:6:0: warning: invalid non-blank line
../geany.desktop.in:7:0: warning: invalid non-blank line
../geany.desktop.in:14:0: warning: invalid non-blank line
```
I wonder if the missing `../po/LINGUAS` is a problem and what's the 
consequence.
The lines about "warning: invalid non-blank line" seems to be related that 
Meson is using `gettext` to process the .desktop file where previously 
`intltool` was used. And the `_Keyword...` syntax is specific for `intltool`.
It seems this might be a seperate task like migrating from `intltool` to 
`gettext` 
(https://stackoverflow.com/questions/62504873/i18n-merge-file-cant-translate-desktop-file).
Anyway, we need to handle this in some way as the resulting .desktop file is 
missing items like "Name", "Comment" and "Keywords".

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-850972050

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-29 Thread Thomas Martitz
icons should be fixed as well

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-850821765

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-29 Thread Thomas Martitz
@kugel- commented on this pull request.



> +act_icons = {'16x16': actions,
+ '24x24': actions,
+ '32x32': actions,
+ '48x48': actions}
+
+icons_dir = join_paths(get_option('datadir'), 'icons', 'hicolor')
+icons_appsdir = join_paths(icons_dir, 'apps')
+icons_actionsdir = join_paths(icons_dir, 'actions')
+
+foreach dir, icons_array : app_icons
+foreach icon : icons_array
+install_data(join_paths(dir, icon), install_dir: icons_appsdir)
+endforeach
+endforeach
+
+foreach dir, icons_array : app_icons

yea

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#discussion_r641930320

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-29 Thread Thomas Martitz
@kugel- pushed 1 commit.

c24146e54a6feb50e5efa2b619c5221c95dbe36e  fixup! install icons


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/73ab535417c5bdaca85ae3116ad88a140825c2d6..c24146e54a6feb50e5efa2b619c5221c95dbe36e


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-27 Thread elextr
@elextr commented on this pull request.



> +act_icons = {'16x16': actions,
+ '24x24': actions,
+ '32x32': actions,
+ '48x48': actions}
+
+icons_dir = join_paths(get_option('datadir'), 'icons', 'hicolor')
+icons_appsdir = join_paths(icons_dir, 'apps')
+icons_actionsdir = join_paths(icons_dir, 'actions')
+
+foreach dir, icons_array : app_icons
+foreach icon : icons_array
+install_data(join_paths(dir, icon), install_dir: icons_appsdir)
+endforeach
+endforeach
+
+foreach dir, icons_array : app_icons

@kugel- shouldn't this be act_icons?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#pullrequestreview-670292181

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-23 Thread elextr
Neat, plugins seems to be working, configures, builds and they show up in PM 
and at least @eht16's add-ons works (so many todos, sigh) :-)

But icons still not right, at least some icons got installed but the same set 
of icons got installed in both $PREFIX/share/icons/hicolor/apps and actions 
whereas autotools puts them in a tree like:

```
$PREFIX/share/icons/hicolor/
16x16/
apps/
actions/
24x24/
actions/
32x32/
apps/
actions/
48x48/
apps/
actions/
scalable/
apps
actions
```

where each apps has the classviewer icons and each actions has the Geany 
bookcase and save all and close all fallback icons, dunno what happened to 
24x24 apps??.  There is also an` icon-theme.cache` in hicolor that is not 
present in the meson one.  Are you using the meson gnome module, the end of 
[this](https://mesonbuild.com/Gnome-module.html#page-description) page talks 
about creating it?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-846559290

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-22 Thread elextr
mentioned on IRC, just FTR

```
checking for GEANY... no
configure: error: Package requirements (geany >= 1.29) were not met:

No package 'geany' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-846472172

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-22 Thread Thomas Martitz
@kugel- pushed 2 commits.

0956ad3d1ceaef94d9c2185e2355bdb40a99afdd  install icons
73ab535417c5bdaca85ae3116ad88a140825c2d6  fix compile and gaeny.pc location


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/155a268d6e3912bf062947d8bed346a26f50c11b..73ab535417c5bdaca85ae3116ad88a140825c2d6


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-22 Thread Thomas Martitz
> As I said configuring 
> --with-geany-libdir=/home/lex/geany_meson/lib/x86_64-linux-gnu fails.

Can you please paste the exact error message?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-846470917

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-22 Thread Thomas Martitz
I fixed the icons and then got distracted. I'm on the libdir issue now

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-846468195

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-05-22 Thread elextr
Ping.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-846465381

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-12 Thread Thomas Martitz
Thanks, I'll check again

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-817463987

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-11 Thread elextr
> > Geany plugins now build if configured --prefix=/home/lex/geany_meson 
> > --with-geany-libdir=/home/lex/geany_meson/lib and install to 
> > $PREFIX/lib/geany but do not appear in plugin manager.

> You have to use the correct libdir, obviously, i.e. 
> --with-geany-libdir=/home/lex/geany_meson/lib/x86_64-linux-gnu. Typically you 
> avoid setting --with-geany-libdir and instead point pkg-config to the correct 
> geany.pc. Under ubuntu, geany.pc has this line: 
> libdir=${exec_prefix}/lib/x86_64-linux-gnu


As I said configuring ` 
--with-geany-libdir=/home/lex/geany_meson/lib/x86_64-linux-gnu` fails.  
According to @hyperair when this option was added, this is the "proper" way of 
configuring this for Debian and derivative systems.  But anyway until G-P is 
mesoned (meson subprojects might be a good fit?) it needs to work.

On this system _all_ the system pkg-configs are under 
`x86_64-linux-gnu/pkgconfig` so a geany installed to the system would be out of 
place and not found if it installed in `lib/pkgconfig`.

It seems like there are still things being installed in a mixture of `lib` and 
`lib/x86_64-linux-gnu` whereas it should all be the latter if thats the system 
default determined by meson.  I guess its hard to notice on your system if 
`lib` is the default, but the meson build should never force `lib`.

> Maybe my meson-geany gets the icons from my system-geany from /usr/local/... ?

The advantage of my habit of _only_ using prefixed geanys and having no system 
install :-)

The meson build isn't installing `$PREFIX/share/icons` which is likely the 
problem.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-817395986

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-11 Thread Thomas Martitz
@kugel- pushed 1 commit.

155a268d6e3912bf062947d8bed346a26f50c11b  fix tests and travis


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/7315a62ee8e9af15b9b3e428ad792cabc3069a9b..155a268d6e3912bf062947d8bed346a26f50c11b


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-11 Thread Thomas Martitz
> Still has classviewer icons messages at runtime, added checkbox as reminder.

I don't see that; weird, but since I don't do anything to install those yet, I 
guess there is something missing. Maybe my meson-geany gets the icons from my 
system-geany from /usr/local/... ?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-817294496

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-11 Thread Thomas Martitz
> Geany plugins now build if configured --prefix=/home/lex/geany_meson 
> --with-geany-libdir=/home/lex/geany_meson/lib and install to 
> $PREFIX/lib/geany but do not appear in plugin manager.

You have to use the correct libdir, obviously, i.e. 
`--with-geany-libdir=/home/lex/geany_meson/lib/x86_64-linux-gnu`. Typically you 
avoid setting `--with-geany-libdir` and instead point pkg-config to the correct 
`geany.pc`.  Under ubuntu, geany.pc has this line: 
`libdir=${exec_prefix}/lib/x86_64-linux-gnu`

I configure G-P like this:

`./configure 
PKG_CONFIG_PATH=/home/kugel/dev/geany.git/build-meson/dest/lib/pkgconfig 
--prefix=/home/kugel/dev/geany.git/build-meson/dest/`.

IMO, the `PKG_CONFIG_PATH` ought to be enough and the prefix should follow 
automatically but that's not how G-P configure works currenty

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-817293688

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-10 Thread elextr
Still has [classviewer 
icons](https://github.com/geany/geany/pull/2761#issuecomment-813147411) 
messages at runtime, added checkbox as reminder.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-817236510

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-10 Thread elextr
Not sure if this is ready for re-test but tried it anyway :-).

Had to set `-Dgtkdoc=false`, what tool is needed for that?

Geany plugins now build if configured `--prefix=/home/lex/geany_meson 
--with-geany-libdir=/home/lex/geany_meson/lib` and install to 
`$PREFIX/lib/geany` but do not appear in plugin manager.  

The plugins that are part of geany are installed in 
`$PREFIX/lib/x86_64-linux-gnu/geany` and do appear, but geany-plugins won't 
configure with `--with-geany-libdir=/home/lex/geany_meson/lex/x86_64-linux-gnu`.

So it looks like another mixed up libdir problem.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-817236012

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-10 Thread Thomas Martitz
@kugel- pushed 1 commit.

7315a62ee8e9af15b9b3e428ad792cabc3069a9b  tests


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/104da1196c354096e1566edd2938ee7292282322..7315a62ee8e9af15b9b3e428ad792cabc3069a9b


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-09 Thread Thomas Martitz
@kugel- pushed 1 commit.

104da1196c354096e1566edd2938ee7292282322  meson compat fix


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/0168e6feb0d4332d1d12b331700b1595a5d55328..104da1196c354096e1566edd2938ee7292282322


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-09 Thread Thomas Martitz
@kugel- pushed 3 commits.

5061b593d08c7b25d57afb632d918b4e0be4c3c2  fixed geany.1 man page
9e8f79e956c00b759f7abd39499397e9c417b10a  Doxyfile per Makefile anstat per 
configure
0168e6feb0d4332d1d12b331700b1595a5d55328  meson: doc completed


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/3f26c8820ef6b0e42f5094a291b1db02c24c22c4..0168e6feb0d4332d1d12b331700b1595a5d55328


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
@eht16 In fact, `gawk` is not a new depedency, it's already needed by 
`geany-i18n-m4`. but I still replaced the offending statement because meson 
discourages from listing source files via wildcards.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813625333

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
@kugel- pushed 1 commit.

3f26c8820ef6b0e42f5094a291b1db02c24c22c4  rework i18n support to not use 
wildcard sources


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/ec88291a8dea2f3bf231933c1d20e89f2ed20488..3f26c8820ef6b0e42f5094a291b1db02c24c22c4


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
@kugel- pushed 1 commit.

ec88291a8dea2f3bf231933c1d20e89f2ed20488  added missing file


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/3380d1072edc3c2b6363e7d3250c010dcd4536a3..ec88291a8dea2f3bf231933c1d20e89f2ed20488


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
@kugel- pushed 1 commit.

3380d1072edc3c2b6363e7d3250c010dcd4536a3  initial docs


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/2726fb4950096b5f7cfecc6fde40935c03c8868f..3380d1072edc3c2b6363e7d3250c010dcd4536a3


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
@kugel- pushed 3 commits.

887c219d65abaef5468bb99620a73b0f815393a8  define GEANY_DATA_DIR
90ead17dfac30208c70782b56f112979d9d87646  generate geany.pc so that it contains 
palceholders
2726fb4950096b5f7cfecc6fde40935c03c8868f  install headers to allow for G-P


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/197d264d0a62f35eff5554a7bc68495b9148fff1..2726fb4950096b5f7cfecc6fde40935c03c8868f


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
Thanks that was the clear sign I was waiting for. Apparently it was not clear 
enough yet :-) I'll work on it further then.

Btw, I could also offer my own build system, https://github.com/kugel-/kmake/, 
this replaces Automake by pure (GNU) make. It's a huge improvement over 
Automake (accurate dependencys, no busted checkouts by badly generated 
Makefiles and more). But I'm not sure it's truly useful for Geany because 
Geany's pain is more on the autoconf than on the Automake side and kmake isn't 
really tested for Windows stuff.

I do use kmake for Peasy though and it's great (and peasy is much more than 
compiling C files)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813347556

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread elextr
> but what I want is a clear sign that I won't waste my time because nobody 
> would approve this.

What do you think I'm testing and commenting on it for?  Or are you saying I've 
wasted my time because you won't finish the job.

When its a reasonable replacement for autotools I will merge it even if only 
for Linux initially, but its not there yet.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813255812

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-05 Thread Thomas Martitz
Thanks for your feedback! 

This is still a WIP and a lot of stuff is missing. I'll try to fix all of that, 
but what I want is a clear sign that I won't waste my time because nobody would 
approve this. I have too much other stuff rotting in PRs already.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813231120

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-04 Thread elextr
PS plugins that are in Geany repo build and run, but I can't live without 
Enricos add-ons :-)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813148699

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-04 Thread elextr
Geany plugins with autotools configures against Geany built with meson but 
fails to build:

```
  CC   libgeanypluginutils_la-filelist.lo
filelist.c:27:10: fatal error: geanyplugin.h: No such file or directory
   27 | #include 
  |  ^~~
```

because meson build of geany did not install anything to `$PREFIX/include/geany`

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813147733

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-04 Thread elextr
Basic build WFM.

Lots of warnings like:
```
../src/highlighting.c:1140:3: note: in expansion of macro ‘styleset_case’
 1140 |   styleset_case(VERILOG);
  |   ^
/usr/include/glib-2.0/glib/gmacros.h:820:42: warning: division ‘sizeof 
(HLProperty * {aka struct  *}) / sizeof (HLProperty {aka struct 
})’ does not compute the number of array elements 
[-Wsizeof-pointer-div]
  820 | #define G_N_ELEMENTS(arr)  (sizeof (arr) / sizeof ((arr)[0]))
 ```
and GTK deprecation warnings.

These don't happen with autotools build, probably missing some compiler options 
we set somewhere in autotools.

Runtime messages:
```
** (geany:39502): WARNING **: 12:06:58.868: failed to load icon 
'classviewer-var': Icon 'classviewer-var' not present in theme Mint-Y-Dark

** (geany:39502): WARNING **: 12:06:58.868: failed to load icon 
'classviewer-method': Icon 'classviewer-method' not present in theme Mint-Y-Dark
```

probably not installing some icons or installing in the wrong place.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813147411

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-04-04 Thread Enrico Tröger
I support @elextr's  request for docs, 
https://github.com/geany/geany/pull/2761#issuecomment-809698447 helped.

On configure, I got:
```
po/meson.build:6:4: ERROR: Problem encountered: /bin/sh: 1: gawk: not
found
```
which seems to be a new dependency.
As it is just used (AFAIK) to generate a list of names of the available 
languages, this can done also with a Python oneliner or maybe even with Meson 
itself?

At the end of the compilation I got a few warnings which might be interesting:
```
msgfmt: ../po/LINGUAS does not exist
../geany.desktop.in:5:0: warning: invalid non-blank line
../geany.desktop.in:6:0: warning: invalid non-blank line
../geany.desktop.in:7:0: warning: invalid non-blank line
../geany.desktop.in:14:0: warning: invalid non-blank line
[247/247] Linking target plugins/libsplitwindow.so
meson compile -C build  464.85s user 38.27s system 353% cpu 2:22.13 total
```
Tested on ArchLinux and Debian Testing.

For reference, here is my `geany.desktop.in`:
```
[Desktop Entry]
Type=Application
Version=1.0
_Name=Geany
_GenericName=Integrated Development Environment
_Comment=A fast and lightweight IDE using GTK+
Exec=geany %F
Icon=geany
Terminal=false
Categories=GTK;Development;IDE;TextEditor;
MimeType=text/plain;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;text/x-java;text/x-dsrc;text/x-pascal;text/x-perl;text/x-python;application/x-php;application/x-httpd-php3;application/x-httpd-php4;application/x-httpd-php5;application/xml;text/html;text/css;text/x-sql;text/x-diff;
StartupNotify=true
_Keywords=Text;Editor;
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-813105172

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-30 Thread Thomas Martitz
@kugel- pushed 1 commit.

197d264d0a62f35eff5554a7bc68495b9148fff1  truly fix debian/ubuntu


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/a772beb02032011c6bdbb5da336bb7fe588a0012..197d264d0a62f35eff5554a7bc68495b9148fff1


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-30 Thread Thomas Martitz
@kugel- pushed 5 commits.

3d73cdd7d30a35adfbb85cf09e9b4cc51bb001c9  fix geany.pc
16249f54708c3f98f5d99589972ffabcaa2e9b5e  hopefully fix debian/ubuntu
c022ca856713f9d2891e39bf2914946d0be814f6  fix internal dependencies
f9765e9a1035aed8b9c63c84cb37529090a6b7f9  tiny cleanup
a772beb02032011c6bdbb5da336bb7fe588a0012  mingw workaround (FIXME)


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/b3d157714e29e733ccbc067412f46debd7048fb0..a772beb02032011c6bdbb5da336bb7fe588a0012


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-30 Thread elextr
@elextr commented on this pull request.



> +'src/utils.h',
+'src/vte.c',
+'src/vte.h',
+gen_src,
+soversion: '0',
+c_args: geany_cflags,
+include_directories: [iscintilla],
+dependencies: [dep_tagmanager, dep_ctags, dep_scintilla] + deps,
+install: true)
+
+executable('geany', 'src/main.c',
+link_with: libgeany,
+c_args: geany_cflags,
+dependencies: [dep_ctags] + deps,
+build_rpath: meson.build_root(),
+install_rpath: join_paths(prefix, 'lib'),

Maybe `shared_library()` takes `install-dir:`?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#discussion_r604021138

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-30 Thread elextr
@elextr commented on this pull request.



> +'src/utils.h',
+'src/vte.c',
+'src/vte.h',
+gen_src,
+soversion: '0',
+c_args: geany_cflags,
+include_directories: [iscintilla],
+dependencies: [dep_tagmanager, dep_ctags, dep_scintilla] + deps,
+install: true)
+
+executable('geany', 'src/main.c',
+link_with: libgeany,
+c_args: geany_cflags,
+dependencies: [dep_ctags] + deps,
+build_rpath: meson.build_root(),
+install_rpath: join_paths(prefix, 'lib'),

@kugel- here is why rpath is set to `$PREFIX/lib` but I can't find how in meson 
docs to find where libraries are installed but clearly its different for 
different systems but this needs to be set to it (or the install set).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#pullrequestreview-624154179

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread elextr
Possibly needs DT_RUNPATH set correctly, presumably thats why ld-linux looks in 
$PREFIX/lib since I have no LD_LIBRARY_PATH set.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809727983

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread elextr
Sorry, Linux Mint 20 meson 0.54

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809721323

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread Thomas Martitz
Interesting. What OS are you running? I'm on Arch linux, and it installs to 
$PREFIX/lib and runs fine.

I guess ld-linux does not pick up $PREFIX/lib/x86_64-linux-gnu for non-standard 
$PREFIXes by default. Is there any configuration around this?

Thanks for the test!

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809719404

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread elextr
Seems meson installs .so files to `$PREFIX/lib/x86_64-linux-gnu` not 
`$PREFIX/lib`.  Linking from `$PREFIX/lib/libgeany.so.0` works, but needs to be 
fixed properly.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809713173

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread elextr
Fresh clone, applied your PR.

```
cd /home/lex/geany-meson/geany
meson --prefix=/home/lex/geany-meson build
meson compile -C build
meson install -C build
```

Warning while compiling makes geany.pc unusable

```
meson.build:82: WARNING: The variable(s) 'DEPENDENCIES', 'VERSION', 'datadir', 
'datarootdir', 'exec_prefix', 'includedir', 'libdir', 'localedir', 'prefix' in 
the input file 'geany.pc.in' are not present in the given configuration data.
```

Won't run after install
```
./geany: error while loading shared libraries: libgeany.so.0: cannot open 
shared object file: No such file or directory
```

Should be at least working in a basic manner before merge.


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809698447

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread elextr
Needs to update docs describing how to use the meson build system with Geany, 
otherwise nobody will use it because its not documented.

README
HACKING
INSTALL
geany.txt

all cover various parts of autofools and need meson instructions too.  Suggest 
you cover it in detail (commands, options, prefixes, and other stuff those docs 
cover) in one place, then refer to that from the others.  That will avoid 
issues of inconsistent and missing information in different places.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809679300

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread Thomas Martitz
Well I don't like to spend even more time on it while it's unclear whether it's 
going to be merged or not. In that sense, yes it helps because I have no fear 
that the time is wasted.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809629050

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread Enrico Tröger
I don't know Meson and didn't review the Meson related changes.
But the rest looks OK, I guess preferring `PACKAGE_VERSION` over `VERSION` is 
better for Meson and doesn't matter for Autotools?

Would it help for the Windows part to merge it first?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809624569

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-29 Thread Thomas Martitz
@b4n @eht16 @codebrainz Any interested? If not I might just merge this, since 
Autotools support is not affected and I would like to see if we can get 
frictionless Windows builds.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-809611669

Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-13 Thread Thomas Martitz
@kugel- pushed 1 commit.

b3d157714e29e733ccbc067412f46debd7048fb0  meson 0.45 compat and -O2


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/cf411fc5c7f3e32bea78f3e32431bca84f09652b..b3d157714e29e733ccbc067412f46debd7048fb0


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-13 Thread Thomas Martitz
@kugel- pushed 1 commit.

cf411fc5c7f3e32bea78f3e32431bca84f09652b  Fix travis


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/2bd80676b9d75783aa24aa8c63376c2f06a03afb..cf411fc5c7f3e32bea78f3e32431bca84f09652b


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-13 Thread Thomas Martitz
@kugel- pushed 1 commit.

2bd80676b9d75783aa24aa8c63376c2f06a03afb  travis for meson


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/geany/geany/pull/2761/files/1a7053c30e6e07d65c7c7c85d238155401bedbde..2bd80676b9d75783aa24aa8c63376c2f06a03afb


Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-13 Thread Thomas Martitz
@techee can you help with the OSX parts? I can try to enable travis builds but 
I don't have access to a running OSX system.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-798309175

[Github-comments] [geany/geany] WIP: Meson build system (#2761)

2021-03-13 Thread Thomas Martitz
Port to the meson build system.

Benefits are blazing fast builds and more user friendly configuration. This is 
promised by meson and I would agree in the case of Geany.

This is a work-in-progress. I have ported only the GTK3 build (GTK2 about to be 
phased out anyway) and didn't test OSX or Windows yet.
You can view, comment on, or merge this pull request online at:

  https://github.com/geany/geany/pull/2761

-- Commit Summary --

  * Initial meson.build
  * Support l18n
  * Support plugins
  * Support generating geany.pc
  * Simplified installing data
  * Install some extra files that are renamed in the process
  * fixes for 1.36
  * missing files to git
  * update for 1.38/2.0
  * add build dirs to .gitignore

-- File Changes --

M .gitignore (2)
A config.h.meson (340)
A data/meson.build (17)
A meson.build (629)
A meson_options.txt (2)
M plugins/Makefile.am (7)
M plugins/classbuilder.c (2)
M plugins/demoplugin.c (5)
M plugins/export.c (8)
M plugins/filebrowser.c (4)
M plugins/htmlchars.c (4)
A plugins/meson.build (27)
M plugins/saveactions.c (2)
M plugins/splitwindow.c (2)
A po/meson.build (7)
A scripts/gen-signallist.sh (6)
M src/libmain.c (4)
M src/templates.c (2)
M src/utils.c (2)

-- Patch Links --

https://github.com/geany/geany/pull/2761.patch
https://github.com/geany/geany/pull/2761.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761