Re: [Github-comments] [geany/geany] WIP: Meson build system (#2761)
@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)
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)
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)
@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)
@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)
@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)
@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)
@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)
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)
@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)
@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)
@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)
@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)
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)
> 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)
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)
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)
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)
@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)
> 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)
@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)
> @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)
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)
@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)
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)
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)
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)
> 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)
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)
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)
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)
@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)
@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)
@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)
> 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)
> > 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)
@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)
@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)
@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)
> @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)
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)
@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)
@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)
@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)
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)
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)
@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)
> 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)
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)
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)
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)
> > 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)
@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)
> 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)
> 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)
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)
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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
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)
> 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)
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)
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)
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)
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)
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)
@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)
@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)
@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)
@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)
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)
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)
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)
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)
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)
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)
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)
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)
@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)
@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)
@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)
@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)
@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)
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