lists.geany.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
List overview
Commits
April 2022
----- 2025 -----
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
commits@lists.geany.org
1 participants
32 discussions
Start a n
N
ew thread
[geany/geany] dcc0f2: Add build directories to gitignore
by Thomas Martitz
07 Apr '22
07 Apr '22
Branch: refs/heads/master Author: Thomas Martitz <thomas.martitz(a)mailbox.org> Committer: Thomas Martitz <thomas.martitz(a)mailbox.org> Date: Mon, 14 Mar 2022 21:08:47 UTC Commit: dcc0f2959bb490be4801ec9e98058d6bd136c1df
https://github.com/geany/geany/commit/dcc0f2959bb490be4801ec9e98058d6bd136c…
Log Message: ----------- Add build directories to gitignore Meson won't support in-tree builds. Add some common build directories to .gitignore. Modified Paths: -------------- .gitignore Modified: .gitignore 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -20,6 +20,9 @@ Makefile.in /ABOUT-NLS /aclocal.m4 /autom4te.cache +/build/ +/builddir/ +/build-*/ /build-aux/ /build-stamp /codenames -------------- This E-Mail was brought to you by github_commit_mail.py (Source:
https://github.com/geany/infrastructure
).
1
0
0
0
[geany/geany] d9fbb8: Merge pull request #2761 from kugel-/meson
by Thomas Martitz
07 Apr '22
07 Apr '22
Branch: refs/heads/master Author: Thomas Martitz <thomas.martitz(a)mailbox.org> Committer: GitHub <noreply(a)github.com> Date: Thu, 07 Apr 2022 20:32:22 UTC Commit: d9fbb8dcb0ffaea8e0415ade1fac795972562801
https://github.com/geany/geany/commit/d9fbb8dcb0ffaea8e0415ade1fac795972562…
Log Message: ----------- Merge pull request #2761 from kugel-/meson Port to the meson build system. Meson generally provides much faster incremental builds and configuration. This is still kind of beta. Meson builds might not work on all systems out there and I don't know if it's suitable for generating releases but it's a start. Modified Paths: -------------- .github/workflows/build.yml .gitignore Makefile.am README configure.ac data/meson.build doc/Doxyfile.in doc/Makefile.am doc/meson.build icons/24x24/Makefile.am icons/24x24/geany.png icons/meson.build meson.build meson_options.txt plugins/Makefile.am plugins/classbuilder.c plugins/demoplugin.c plugins/export.c plugins/filebrowser.c plugins/htmlchars.c plugins/meson.build plugins/saveactions.c plugins/splitwindow.c po/meson.build scripts/gen-signallist.sh src/Makefile.am src/libmain.c src/templates.c src/utils.c tests/ctags/Makefile.am tests/ctags/runner.sh tests/meson.build Modified: .github/workflows/build.yml 63 lines changed, 63 insertions(+), 0 deletions(-) =================================================================== @@ -102,7 +102,70 @@ jobs: - name: ccache statistics run: ccache --show-stats if: ${{ env.DEBUG == '1' }} + linux-meson: + name: Linux Meson Build + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + + env: + CC: ccache gcc + CXX: ccache g++ + + steps: + - uses: actions/checkout@v2 + + # create and use a timestamp for the cache key: GH Actions will never update a cache + # only use an existing cache item or create a new one. To use an existing cache *and* + # push back the the updated cache after build, we use a always new cache key (to force + # the creation of the cache item at the end) in combination with "restore-keys" as fallback + - name: Prepare ccache timestamp + id: ccache_cache_timestamp + run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M)" + + - name: Configure ccache + uses: actions/cache@v2 + with: + path: ${{ env.CCACHE_DIR }} + key: ${{ runner.os }}-${{ github.job }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }} + restore-keys: ${{ runner.os }}-${{ github.job }}-ccache- + + - name: Show environment + run: env | sort + if: ${{ env.DEBUG == '1' }} + + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install --assume-yes --no-install-recommends \ + ccache \ + gettext autopoint \ + libtool \ + libgtk-3-dev \ + doxygen \ + python3-docutils \ + python3-lxml \ + rst2pdf \ + meson + + - name: Configuration + run: | + meson _build + + - name: Build + run: | + ninja -C _build + + - name: Run Tests + run: | + ninja -C _build test + + # distcheck not applicable, meson exports the source tree per git-archive + + - name: ccache statistics + run: ccache --show-stats + if: ${{ env.DEBUG == '1' }} mingw: name: Mingw Build Modified: .gitignore 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -20,6 +20,9 @@ Makefile.in /ABOUT-NLS /aclocal.m4 /autom4te.cache +/build/ +/builddir/ +/build-*/ /build-aux/ /build-stamp /codenames Modified: Makefile.am 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -15,6 +15,7 @@ WIN32_BUILD_FILES = \ EXTRA_DIST = \ autogen.sh \ scripts/gen-api-gtkdoc.py \ + scripts/gen-signallist.sh \ geany.desktop.in \ geany.pc.in \ ChangeLog.pre-1-22 \ Modified: README 32 lines changed, 32 insertions(+), 0 deletions(-) =================================================================== @@ -78,6 +78,38 @@ and open the online version instead when requested. Installing from a Git clone +++++++++++++++++++++++++++ +Using the Meson build system +++++++++++++++++++++++++++++ + +N.B. Meson support is still incomplete and a work-in-progress. + +Meson requires to chose a separate build directory. Either create +one, or let meson do it: + +`meson build` or `mkdir build; cd build; meson ..` + +Either command will configure the build system. The system is probed +in many ways and system-dependant build files are created. This includes +location of dependencies and compiler and linker flags required for them. + +To build Geany, follow with a `meson compile -C build` + +To install Geany, follow the build with a `sudo meson install -C build`. + +By default, meson will install Geany to `/usr/local`. A different +prefix can be selected at the initial command or via reconfiguration: + +`meson --prefix /opt build` or `meson configure --prefix /opt build` + +Geany has some selectable features that may reduce the required +build and runtime dependencies. See meson_optionts.txt for a full list. + +To turn a feature off, use `-D<feature>=false` when configuring the build, +for example: `meson configure -Dvte=false build` + +Using Autotools ++++++++++++++++ + Install Autotools (*autopoint*, *automake*, *autoconf* and *libtool*), *gettext*, and the GLib development files **before** running any of the following commands, as well as *rst2html* from Docutils (see above for Modified: configure.ac 3 lines changed, 1 insertions(+), 2 deletions(-) =================================================================== @@ -48,7 +48,7 @@ fi AC_CHECK_HEADERS([fcntl.h glob.h stdlib.h sys/time.h errno.h limits.h]) # Checks for dependencies needed by ctags -AC_CHECK_HEADERS([fnmatch.h direct.h io.h sys/dir.h]) +AC_CHECK_HEADERS([dirent.h fnmatch.h direct.h io.h sys/dir.h]) AC_DEFINE([HAVE_STDBOOL_H], [1], [whether or not to use <stdbool.h>.]) AC_CHECK_FUNC([regcomp], [have_regcomp=yes], @@ -184,7 +184,6 @@ AC_CONFIG_FILES([ doc/geany.1 geany.pc geany.nsi - doc/Doxyfile tests/Makefile tests/ctags/Makefile ]) Modified: data/meson.build 22 lines changed, 22 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,22 @@ +install_subdir('templates', install_dir: cdata.get('GEANY_DATA_DIR')) +install_subdir('tags', install_dir: cdata.get('GEANY_DATA_DIR')) +install_subdir('colorschemes', install_dir: cdata.get('GEANY_DATA_DIR')) + +install_subdir('filedefs', install_dir: cdata.get('GEANY_DATA_DIR'), exclude_files: 'filetypes.python.in') + +configure_file(input: 'filedefs/filetypes.python.in', + output: 'filetypes.python', + install: true, + install_dir: cdata.get('GEANY_DATA_DIR') + '/filedefs', + configuration: cdata) + +misc = [ + 'filetype_extensions.conf', + 'snippets.conf', + 'ui_toolbar.xml', + 'geany.glade', + 'geany-3.0.css', + 'geany-3.20.css', + 'geany.css', +] +install_data(sources: misc, install_dir: cdata.get('GEANY_DATA_DIR')) Modified: doc/Doxyfile.in 15 lines changed, 7 insertions(+), 8 deletions(-) =================================================================== @@ -248,7 +248,7 @@ ALIASES = "signal=- @ref " \ "signaldesc=" \ "signals=@b Signals: " \ "endsignals= " \ - "gironly=@internal" + "gironly=@GIRONLY@" # Apparently Doxygen doesn't seem to like \<type>only without a previous command, so create a no-op ALIASES += "noop=\if FALSE \endif" @@ -567,15 +567,15 @@ INLINE_INFO = NO # name. If set to NO the members will appear in declaration order. # The default value is: YES. -SORT_MEMBER_DOCS = YES +SORT_MEMBER_DOCS = @SORT@ # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. -SORT_BRIEF_DOCS = YES +SORT_BRIEF_DOCS = @SORT@ # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and @@ -848,8 +848,7 @@ RECURSIVE = NO # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = @top_srcdir@/doc/geany-gtkdoc.h \ - @top_srcdir@/doc/geany-sciwrappers-gtkdoc.h +EXCLUDE = @top_srcdir@/src/callbacks.c # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -1090,7 +1089,7 @@ IGNORE_PREFIX = # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. -GENERATE_HTML = YES +GENERATE_HTML = @HTML@ # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of @@ -1881,7 +1880,7 @@ MAN_LINKS = NO # captures the structure of the code including all documentation. # The default value is: NO. -GENERATE_XML = NO +GENERATE_XML = @XML@ # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of @@ -2016,7 +2015,7 @@ SEARCH_INCLUDES = NO # preprocessor. # This tag requires that the tag SEARCH_INCLUDES is set to YES. -INCLUDE_PATH = @top_builddir@/src/ +INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the Modified: doc/Makefile.am 42 lines changed, 29 insertions(+), 13 deletions(-) =================================================================== @@ -82,17 +82,31 @@ clean-pdf-local: endif +AT=@ + # API Documentation if WITH_DOXYGEN +# $(AT) instead of @ so that configure doesn't mess up the rules already +Doxyfile: Doxyfile.in + $(AM_V_GEN)$(SED) \ + -e 's,$(AT)top_srcdir$(AT),$(top_srcdir),' \ + -e 's,$(AT)top_builddir$(AT),$(top_builddir),' \ + -e 's,$(AT)VERSION$(AT),$(VERSION),' \ + -e 's,$(AT)GIRONLY$(AT),@internal,' \ + -e 's,$(AT)HTML$(AT),YES,' \ + -e 's,$(AT)XML$(AT),NO,' \ + -e 's,$(AT)SORT$(AT),YES,' \ + $< > $@ || ( $(RM) -f $@ ; exit 1 ) + doxygen_sources = \ $(srcdir)/plugins.dox \ $(srcdir)/pluginsignals.c \ $(srcdir)/pluginsymbols.c \ $(srcdir)/stash-example.c \ $(srcdir)/stash-gui-example.c -EXTRA_DIST += $(doxygen_sources) +EXTRA_DIST += Doxyfile.in $(doxygen_sources) doxygen_dependencies = \ $(doxygen_sources) \ @@ -114,18 +128,16 @@ clean-api-docs-local: if ENABLE_GTKDOC_HEADER -# set WARN_IF_UNDOCUMENTED because apparently doxygens warns for undocumented stuff -# in headers (even though it's correctly documented in the corresponding .c file) only -# for xml output -Doxyfile-gi: Doxyfile +Doxyfile-gi: Doxyfile.in $(AM_V_GEN)$(SED) \ - -e 's,gironly=@internal,gironly=,' \ - -e 's,^\(GENERATE_HTML.*\)YES,\1NO,' \ - -e 's,^\(GENERATE_XML.*\)NO,\1YES,' \ - -e 's,^\(WARN_IF_UNDOCUMENTED.*\)YES,\1NO,' \ - -e 's,^\(SORT_MEMBER_DOCS.*\)YES,\1NO,' \ - -e 's,^\(SORT_BRIEF_DOCS.*\)YES,\1NO,' \ - $< > $@ || { $(RM) $@ && exit 1; } + -e 's,$(AT)top_srcdir$(AT),$(top_srcdir),' \ + -e 's,$(AT)top_builddir$(AT),$(top_builddir),' \ + -e 's,$(AT)VERSION$(AT),$(VERSION),' \ + -e 's,$(AT)GIRONLY$(AT),,' \ + -e 's,$(AT)HTML$(AT),NO,' \ + -e 's,$(AT)XML$(AT),YES,' \ + -e 's,$(AT)SORT$(AT),NO,' \ + $< > $@ || ( $(RM) -f $@ ; exit 1 ) # we depend on Doxyfile.stamp not have this run in parallel with it to avoid # concurrent Doxygen runs, which might overwrite each other's files @@ -145,7 +157,9 @@ ALL_LOCAL_TARGETS += geany-gtkdoc.h geany-sciwrappers-gtkdoc.h CLEAN_LOCAL_TARGETS += clean-gtkdoc-header-local clean-gtkdoc-header-local: - -rm -rf xml/ Doxyfile-gi Doxyfile-gi.stamp geany-gtkdoc.h geany-sciwrappers-gtkdoc.h + rm -rf xml/ \ + Doxyfile Doxyfile.stamp Doxyfile-gi Doxyfile-gi.stamp \ + geany-gtkdoc.h geany-sciwrappers-gtkdoc.h endif @@ -158,6 +172,7 @@ uninstall-local: rm -f $(DOCDIR)/html/index.html rm -f $(DOCDIR)/manual.txt rm -f $(DOCDIR)/ScintillaLicense.txt + rm -f $(DOCDIR)/LexillaLicense.txt # manually install some files under another name install-data-local: @@ -171,3 +186,4 @@ endif $(mkinstalldirs) $(DOCDIR) $(INSTALL_DATA) $(srcdir)/geany.txt $(DOCDIR)/manual.txt $(INSTALL_DATA) $(top_srcdir)/scintilla/License.txt $(DOCDIR)/ScintillaLicense.txt + $(INSTALL_DATA) $(top_srcdir)/scintilla/lexilla/License.txt $(DOCDIR)/LexillaLicense.txt Modified: doc/meson.build 138 lines changed, 138 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,138 @@ +configure_file( + input: 'geany.1.in', + output: 'geany.1', + install: true, + install_dir: join_paths(join_paths(prefix, get_option('mandir'), 'man1')), + configuration: cdata +) + +if rst2pdf.found() + custom_target('pdf-manual', + input: ['geany.txt'], + output: ['geany-@0@.pdf'.format(cdata.get('VERSION'))], + command: [rst2pdf, '@INPUT@', '-o', '@OUTPUT@'], + build_by_default: true + ) +endif + +tarball = run_command('test', '-f', 'geany.html', check: false) +if tarball.returncode() == 0 or rst2html.found() + install_data( + 'images/build_menu_commands_dialog.png', + 'images/find_dialog.png', + 'images/find_in_files_dialog.png', + 'images/main_window.png', + 'images/pref_dialog_edit_completions.png', + 'images/pref_dialog_edit_display.png', + 'images/pref_dialog_edit_features.png', + 'images/pref_dialog_edit_indentation.png', + 'images/pref_dialog_files.png', + 'images/pref_dialog_gen_misc.png', + 'images/pref_dialog_gen_startup.png', + 'images/pref_dialog_interface_interface.png', + 'images/pref_dialog_interface_notebook.png', + 'images/pref_dialog_interface_toolbar.png', + 'images/pref_dialog_keys.png', + 'images/pref_dialog_printing.png', + 'images/pref_dialog_templ.png', + 'images/pref_dialog_tools.png', + 'images/pref_dialog_various.png', + 'images/pref_dialog_vte.png', + 'images/replace_dialog.png', + install_dir: join_paths(cdata.get('GEANY_DOC_DIR'), 'html', 'images') + ) + if tarball.returncode() == 0 + message('Building from tarball, installing prebuild html') + geany_html = files('geany.html') + else + cmd = [rst2html, '-stg', '--stylesheet=@INPUT0@', '@INPUT1@', '@OUTPUT@'] + geany_html = custom_target('geany.html', + input: ['geany.css', 'geany.txt'], + output: ['geany.html'], + build_by_default: true, + command: cmd + ) + custom_target('hacking.html', + input: ['geany.css', '../HACKING'], + output: ['hacking.html'], + build_by_default: true, + command: cmd + ) + endif + # geany.html is installed as index.html + custom_target('index.html', + input: [geany_html], + output: ['index.html'], + command: [ln, '-f', '@INPUT@', '@OUTPUT@'], + install: true, + install_dir: join_paths(cdata.get('GEANY_DOC_DIR'), 'html') + ) +endif + +install_data('geany.txt', + rename: 'manual.txt', + install_dir: cdata.get('GEANY_DOC_DIR') +) + +# Normally, doxygen is required for the gtkdoc headers +# but it can be disabled if really needed (e.g. if plugins are also disabled), +# packagers must not disable this! +if doxygen.found() + doxcfg = configuration_data() + doxcfg.merge_from(cdata) + doxcfg.set('GIRONLY', '@internal') + doxcfg.set('HTML', 'YES') + doxcfg.set('XML', 'NO') + doxcfg.set('SORT', 'YES') + + doxgicfg = doxcfg + doxgicfg.set('GIRONLY', '') + doxgicfg.set('HTML', 'NO') + doxgicfg.set('XML', 'YES') + doxgicfg.set('SORT', 'NO') + + dep_doxygen = files([ + 'plugins.dox', + 'pluginsignals.c', + 'pluginsymbols.c', + 'stash-example.c', + 'stash-gui-example.c' + ]) + if python.found() + doxyfile_gi = configure_file( + input: 'Doxyfile.in', + output: 'Doxyfile-gi', + configuration: doxgicfg + ) + doxygen_gi = custom_target('doxygen-gi', + input: doxyfile_gi, + # stamp file due
https://github.com/mesonbuild/meson/issues/2320
+ output: 'doxygen-gi.stamp', + command: [sh, '-c', 'doxygen "$1" && touch "$2"', 'sh', '@INPUT@', '@OUTPUT@'], + depends: libgeany, + depend_files: dep_doxygen + ) + gtkdoc_py = find_program('../scripts/gen-api-gtkdoc.py') + custom_target('gtkdoc-headers', + output: ['geany-gtkdoc.h', 'geany-sciwrappers-gtkdoc.h'], + command: [gtkdoc_py, join_paths(meson.current_build_dir(), 'xml'), '-d', '.', '-o', '@OUTPUT0@', '--sci-output', '@OUTPUT1@'], + depends: doxygen_gi, + install: true, + install_dir: join_paths(get_option('includedir'), 'geany', 'gtkdoc') + ) + endif + doxyfile = configure_file( + input: 'Doxyfile.in', + output: 'Doxyfile', + configuration: doxcfg + ) + custom_target('doxygen', + input: doxyfile, + # stamp file due
https://github.com/mesonbuild/meson/issues/2320
+ output: 'doxygen.stamp', + command: [sh, '-c', 'doxygen "$1" && touch "$2"', 'sh', '@INPUT@', '@OUTPUT@'], + depends: libgeany, + depend_files: dep_doxygen, + build_by_default: true + ) +endif Modified: icons/24x24/Makefile.am 7 lines changed, 6 insertions(+), 1 deletions(-) =================================================================== @@ -1,4 +1,9 @@ -icons_actionsdir = $(datadir)/icons/hicolor/24x24/actions +iconsdir = $(datadir)/icons/hicolor/24x24 +icons_appsdir = $(iconsdir)/apps +icons_actionsdir = $(iconsdir)/actions + +dist_icons_apps_DATA = \ + geany.png dist_icons_actions_DATA = \ geany-build.png \ Modified: icons/24x24/geany.png 0 lines changed, 0 insertions(+), 0 deletions(-) =================================================================== No diff available, check online Modified: icons/meson.build 46 lines changed, 46 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,46 @@ +icon_dirs = [ '16x16', '24x24', '32x32', '48x48', 'scalable' ] + +# in all resolutions +app_icon = 'geany' + +# in all resolutions +action_icons = [ + 'geany-build', + 'geany-close-all', + 'geany-save-all' +] + +icons_dir = join_paths(get_option('datadir'), 'icons', 'hicolor') +tango_dir = join_paths(get_option('datadir'), 'icons', 'Tango') + +foreach dir : icon_dirs + ext = dir == 'scalable' ? '.svg' : '.png' + install_data(join_paths(dir, app_icon+ext), install_dir: join_paths(icons_dir, dir, 'apps')) + foreach icon : action_icons + install_data(join_paths(dir, icon+ext), install_dir: join_paths(icons_dir, dir, 'actions')) + endforeach + install_data(join_paths('tango', dir, 'geany-save-all'+ext), install_dir: join_paths(tango_dir, dir, 'actions')) +endforeach + +# classviewer icons only in 16x16 +class_icons = [ + 'classviewer-class.png', + 'classviewer-macro.png', + 'classviewer-member.png', + 'classviewer-method.png', + 'classviewer-namespace.png', + 'classviewer-other.png', + 'classviewer-struct.png', + 'classviewer-var.png' +] + +foreach icon : class_icons + install_data(join_paths('16x16', icon), install_dir: join_paths(icons_dir, '16x16', 'apps')) +endforeach + +if meson.version().version_compare('>=0.57.0') + gnome.post_install(gtk_update_icon_cache: true) +else + warning('You may need to run `gtk-update-icon-cache` yourself after installing') + warning('E.g. gtk-update-icon-cache -f -t ' + join_paths(prefix, icons_dir)) +endif Modified: meson.build 912 lines changed, 912 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,912 @@ +project('geany', 'c', 'cpp', + meson_version: '>= 0.53', + version: '1.38', + default_options : ['c_std=c11', 'cpp_std=c++17']) + +gnome = import('gnome') +pymod = import('python') + +cc = meson.get_compiler('c') +cxx = meson.get_compiler('cpp') +prefix = get_option('prefix') + +deps_in = [ + ['glib-2.0', '2.32'], + ['gmodule-2.0', '2.32'], + ['gtk+-3.0', '3.0'] +] + +deps = [] +deps_for_pc = '' +foreach dep : deps_in + deps += [dependency(dep[0], version: '>= ' + dep[1])] + deps_for_pc += ' ' + dep[0] + ' >= ' + dep[1] +endforeach + +glib = deps[0] + +# detect libc +glibc = false +if cc.has_header('gnu/libc-version.h') + glibc = true +endif + +gnu_source = glibc + +cdata = configuration_data() +check_headers = [ + 'alloca.h', + 'asprintf.h', + 'direct.h', + 'dirent.h', + 'dlfcn.h', + 'errno.h', + 'fcntl.h', + 'fnmatch.h', + 'glob.h', + 'inttypes.h', + 'io.h', + 'langinfo.h', + 'libintl.h', + 'limits.h', + 'locale.h', + 'memory.h', + 'stdbool.h', + 'sys/dir.h', + 'sys/stat.h', + 'sys/time.h', + 'sys/types.h', + 'unistd.h', + 'wchar.h', + 'wctype.h', +] + +check_functions = [ + ['alloca', '#include <alloca.h>'], + ['asprintf', '#include <stdio.h>'], + ['chsize', '#include <io.h>'], + ['fnmatch', '#include <fnmatch.h>'], + ['ftruncate', '#include <unistd.h>'], + ['isblank', '#include <ctype.h>'], + ['mbrtowc', '#include <wchar.h>'], + ['memcpy', '#include <string.h>'], + ['mkstemp', '#include <stdlib.h>'], + ['realpath', '#include <limits.h>\n#include <stdlib.h>'], + ['regcomp', '#include <regex.h>'], + ['socket', '#include <sys/socket.h>'], + # man page says strings.h but we include only string.h and it works + ['strcasecmp', '#include <string.h>'], + ['strncasecmp', '#include <string.h>'], + ['stricmp', '#include <string.h>'], + ['strnicmp', '#include <string.h>'], + ['strerror', '#include <string.h>'], + ['strstr', '#include <string.h>'], + ['tempnam', '#include <stdio.h>'], + ['truncate', '#include <unistd.h>'], + ['wcrtomb', '#include <wchar.h>'], + ['wcscoll', '#include <wchar.h>'], + +] + +foreach h : check_headers + define = 'HAVE_' + h.underscorify().to_upper() + if cc.has_header(h) + cdata.set(define, 1) + else + cdata.set(define, false) + endif +endforeach + +foreach f : check_functions + define = 'HAVE_' + f.get(0).underscorify().to_upper() + ccprefix = '\n'.join([gnu_source ? '#define _GNU_SOURCE' : '', f.get(1)]) + if cc.has_function(f.get(0), prefix : ccprefix) + cdata.set(define, 1) + else + cdata.set(define, false) + endif +endforeach + +# From configure.ac: +# non-functions checks for u-ctags. Not that we really need those as we don't +# use u-ctags's main, but the corresponding macros have to be defined to +# something, so simply perform the actual checks. +#AC_CHECK_DECLS([__environ],,,[[#include <unistd.h>]]) +#AC_CHECK_DECLS([_NSGetEnviron],,,[[#include <crt_externs.h>]]) +# In meson we cannot as easily test for declarations so defining as 0 is easiest +cdata.set('HAVE_DECL___ENVIRON', 0) +cdata.set('HAVE_DECL__NSGETENVIRON', 0) + +cdata.set_quoted('PACKAGE', 'geany') +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', 1) +if (host_machine.system() == 'windows') + cdata.set('HAVE_VTE', false) +else + cdata.set('HAVE_VTE', get_option('vte')) +endif +cdata.set('HAVE_PLUGINS', get_option('plugins')) +cdata.set('HAVE_SOCKET', get_option('socket')) +if (host_machine.system() == 'windows') + cdata.set('GEANY_DATA_DIR', join_paths(prefix, 'data')) + cdata.set('GEANY_DOC_DIR', join_paths(prefix)) +else + 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')) +endif +cdata.set('top_srcdir', meson.source_root()) +cdata.set('top_builddir', meson.build_root()) + +# for geany.pc (adapted from GTK+) +pcconf = cdata +pcconf.set('DEPENDENCIES', deps_for_pc) +pcconf.set('prefix', get_option('prefix')) +pcconf.set('libdir', join_paths('${exec_prefix}', get_option('libdir'))) +pcconf.set('includedir', join_paths('${prefix}', get_option('includedir'))) +pcconf.set('datarootdir', join_paths('${prefix}', get_option('datadir'))) +# actually constant, just match autconf +pcconf.set('exec_prefix', '${prefix}') +pcconf.set('datadir', '${datarootdir}') +pcconf.set('localedir', join_paths('${datarootdir}', 'locale')) + +# needed programs +sh = find_program('sh') +cp = find_program('cp') +ln = find_program('ln') +doxygen = find_program('doxygen', required: get_option('api-docs')) +python = pymod.find_installation('python3', modules: doxygen.found() and get_option('gtkdoc') ? ['lxml'] : []) +# These two are truly optional +rst2html = find_program('rst2html', required: get_option('html-docs')) +rst2pdf = find_program('rst2pdf', required: get_option('pdf-docs')) +git = find_program('git', required: false) +if git.found() + ret = run_command(git, 'rev-parse', '--short', '--revs-only', 'HEAD', check: true) + cdata.set_quoted('REVISION', ret.stdout().strip()) +else + cdata.set_quoted('REVISION', '-1') +endif + +python_command = get_option('python-command') +if python_command == '' or python_command == 'auto' + if target_machine.system() == 'windows' + python_command = 'py' + else + python_command = 'python' + endif +endif +cdata.set('PYTHON_COMMAND', python_command) + +configure_file( + output : 'config.h', + configuration : cdata +) + +configure_file( + input: 'geany.pc.in', + install: true, + install_dir: join_paths(prefix, get_option('libdir'), 'pkgconfig'), + output: 'geany.pc', + configuration: pcconf +) + +# CFLAGS for basic stuff that only depends on libc +basic_cflags = [ '-DHAVE_CONFIG_H=1', '-O2' ] +if (gnu_source) + basic_cflags += '-D_GNU_SOURCE' +endif + +# CFLAGS common between Geany and bundled plugins +def_cflags = basic_cflags + [ + '-DGTK', +# we're using lots of deprecated stuff with gtk3 (often because there is no proper alternative!) + '-Wno-deprecated-declarations', + '-DGDK_DISABLE_DEPRECATION_WARNINGS', + '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32', + '-DGEANY_PREFIX="@0@"'.format(get_option('prefix')), + '-DGEANY_DOCDIR="@0@"'.format(join_paths(prefix, get_option('datadir'), 'doc')) +] +foreach d : [ 'includedir', 'libdir', 'libexecdir', 'datadir', 'localedir' ] + def_cflags += '-DGEANY_@0@="@1@"'.format(d.underscorify().to_upper(), join_paths(prefix, get_option(d))) +endforeach + +# 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' + geany_cflags += '-DGEANY_EXPORT_SYMBOL=__attribute__((visibility("default")))' +endif +geany_cflags += '-DGEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL' +sci_cflags = geany_cflags +sci_cflags += [ '-std=c++17', '-Wno-non-virtual-dtor', '-DNDEBUG', '-DSCI_LEXER', '-DNO_CXX11_REGEX' ] + +iregex = include_directories('ctags/gnu_regex') +ifnmatch = include_directories('ctags/fnmatch') +ictags = include_directories('ctags/main', 'ctags/parsers', 'ctags/dsl') +itagmanager = include_directories('src/tagmanager') +iscintilla = include_directories('scintilla/include', 'scintilla/lexilla/include') +igeany = include_directories('src') + +install_headers( + 'scintilla/include/Scintilla.h', + 'scintilla/include/Scintilla.iface', + 'scintilla/include/ScintillaWidget.h', + 'scintilla/include/Sci_Position.h', + 'scintilla/lexilla/include/SciLexer.h', + subdir: 'geany/scintilla' +) + +lexilla = static_library('lexilla', + 'scintilla/lexilla/include/Lexilla.h', + 'scintilla/lexilla/include/SciLexer.h', + 'scintilla/lexilla/lexers/LexAbaqus.cxx', + 'scintilla/lexilla/lexers/LexAda.cxx', + 'scintilla/lexilla/lexers/LexAsciidoc.cxx', + 'scintilla/lexilla/lexers/LexAsm.cxx', + 'scintilla/lexilla/lexers/LexBash.cxx', + 'scintilla/lexilla/lexers/LexBasic.cxx', + 'scintilla/lexilla/lexers/LexBatch.cxx', + 'scintilla/lexilla/lexers/LexCaml.cxx', + 'scintilla/lexilla/lexers/LexCmake.cxx', + 'scintilla/lexilla/lexers/LexCOBOL.cxx', + 'scintilla/lexilla/lexers/LexCoffeeScript.cxx', + 'scintilla/lexilla/lexers/LexCPP.cxx', + 'scintilla/lexilla/lexers/LexCSS.cxx', + 'scintilla/lexilla/lexers/LexD.cxx', + 'scintilla/lexilla/lexers/LexDiff.cxx', + 'scintilla/lexilla/lexers/LexErlang.cxx', + 'scintilla/lexilla/lexers/LexForth.cxx', + 'scintilla/lexilla/lexers/LexGDScript.cxx', + 'scintilla/lexilla/lexers/LexFortran.cxx', + 'scintilla/lexilla/lexers/LexHaskell.cxx', + 'scintilla/lexilla/lexers/LexHTML.cxx', + 'scintilla/lexilla/lexers/LexJulia.cxx', + 'scintilla/lexilla/lexers/LexLaTeX.cxx', + 'scintilla/lexilla/lexers/LexLisp.cxx', + 'scintilla/lexilla/lexers/LexLua.cxx', + 'scintilla/lexilla/lexers/LexMake.cxx', + 'scintilla/lexilla/lexers/LexMarkdown.cxx', + 'scintilla/lexilla/lexers/LexMatlab.cxx', + 'scintilla/lexilla/lexers/LexNsis.cxx', + 'scintilla/lexilla/lexers/LexNull.cxx', + 'scintilla/lexilla/lexers/LexPascal.cxx', + 'scintilla/lexilla/lexers/LexPerl.cxx', + 'scintilla/lexilla/lexers/LexPO.cxx', + 'scintilla/lexilla/lexers/LexPowerShell.cxx', + 'scintilla/lexilla/lexers/LexProps.cxx', + 'scintilla/lexilla/lexers/LexPython.cxx', + 'scintilla/lexilla/lexers/LexR.cxx', + 'scintilla/lexilla/lexers/LexRuby.cxx', + 'scintilla/lexilla/lexers/LexRust.cxx', + 'scintilla/lexilla/lexers/LexSmalltalk.cxx', + 'scintilla/lexilla/lexers/LexSQL.cxx', + 'scintilla/lexilla/lexers/LexTCL.cxx', + 'scintilla/lexilla/lexers/LexTxt2tags.cxx', + 'scintilla/lexilla/lexers/LexVerilog.cxx', + 'scintilla/lexilla/lexers/LexVHDL.cxx', + 'scintilla/lexilla/lexers/LexYAML.cxx', + 'scintilla/lexilla/lexlib/Accessor.cxx', + 'scintilla/lexilla/lexlib/Accessor.h', + 'scintilla/lexilla/lexlib/CatalogueModules.h', + 'scintilla/lexilla/lexlib/CharacterCategory.cxx', + 'scintilla/lexilla/lexlib/CharacterCategory.h', + 'scintilla/lexilla/lexlib/CharacterSet.cxx', + 'scintilla/lexilla/lexlib/CharacterSet.h', + 'scintilla/lexilla/lexlib/DefaultLexer.cxx', + 'scintilla/lexilla/lexlib/DefaultLexer.h', + 'scintilla/lexilla/lexlib/LexAccessor.cxx', + 'scintilla/lexilla/lexlib/LexAccessor.h', + 'scintilla/lexilla/lexlib/LexerBase.cxx', + 'scintilla/lexilla/lexlib/LexerBase.h', + 'scintilla/lexilla/lexlib/LexerModule.cxx', + 'scintilla/lexilla/lexlib/LexerModule.h', + 'scintilla/lexilla/lexlib/LexerNoExceptions.cxx', + 'scintilla/lexilla/lexlib/LexerNoExceptions.h', + 'scintilla/lexilla/lexlib/LexerSimple.cxx', + 'scintilla/lexilla/lexlib/LexerSimple.h', + 'scintilla/lexilla/lexlib/OptionSet.h', + 'scintilla/lexilla/lexlib/PropSetSimple.cxx', + 'scintilla/lexilla/lexlib/PropSetSimple.h', + 'scintilla/lexilla/lexlib/SparseState.h', + 'scintilla/lexilla/lexlib/StringCopy.h', + 'scintilla/lexilla/lexlib/StyleContext.cxx', + 'scintilla/lexilla/lexlib/StyleContext.h', + 'scintilla/lexilla/lexlib/SubStyles.h', + 'scintilla/lexilla/lexlib/WordList.cxx', + 'scintilla/lexilla/lexlib/WordList.h', + 'scintilla/lexilla/src/Lexilla.cxx', + cpp_args: sci_cflags, + dependencies: deps, + include_directories: [ + iscintilla, + include_directories('scintilla/lexilla/lexlib', 'scintilla/lexilla/include') + ] +) +dep_lexilla = declare_dependency( + link_with: lexilla, + include_directories: include_directories('scintilla/lexilla/include') +) + +scintilla = static_library('scintilla', + 'scintilla/gtk/Converter.h', + 'scintilla/gtk/PlatGTK.cxx', + 'scintilla/gtk/ScintillaGTKAccessible.cxx', + 'scintilla/gtk/ScintillaGTKAccessible.h', + 'scintilla/gtk/ScintillaGTK.cxx', + 'scintilla/gtk/ScintillaGTK.h', + 'scintilla/gtk/scintilla-marshal.c', + 'scintilla/gtk/scintilla-marshal.h', + 'scintilla/include/ILexer.h', + 'scintilla/include/ILoader.h', + 'scintilla/include/ScintillaCall.h', + 'scintilla/include/Scintilla.h', + 'scintilla/include/ScintillaMessages.h', + 'scintilla/include/ScintillaStructures.h', + 'scintilla/include/ScintillaTypes.h', + 'scintilla/include/ScintillaWidget.h', + 'scintilla/include/Sci_Position.h', + 'scintilla/src/AutoComplete.cxx', + 'scintilla/src/AutoComplete.h', + 'scintilla/src/CallTip.cxx', + 'scintilla/src/CallTip.h', + 'scintilla/src/CaseConvert.cxx', + 'scintilla/src/CaseConvert.h', + 'scintilla/src/CaseFolder.cxx', + 'scintilla/src/CaseFolder.h', + 'scintilla/src/CellBuffer.cxx', + 'scintilla/src/CellBuffer.h', + 'scintilla/src/CharacterCategoryMap.cxx', + 'scintilla/src/CharacterCategoryMap.h', + 'scintilla/src/CharacterType.cxx', + 'scintilla/src/CharacterType.h', + 'scintilla/src/CharClassify.cxx', + 'scintilla/src/CharClassify.h', + 'scintilla/src/ContractionState.cxx', + 'scintilla/src/ContractionState.h', + 'scintilla/src/DBCS.cxx', + 'scintilla/src/DBCS.h', + 'scintilla/src/Debugging.h', + 'scintilla/src/Decoration.cxx', + 'scintilla/src/Decoration.h', + 'scintilla/src/Document.cxx', + 'scintilla/src/Document.h', + 'scintilla/src/EditModel.cxx', + 'scintilla/src/EditModel.h', + 'scintilla/src/Editor.cxx', + 'scintilla/src/Editor.h', + 'scintilla/src/EditView.cxx', + 'scintilla/src/EditView.h', + 'scintilla/src/ElapsedPeriod.h', + 'scintilla/src/FontQuality.h', + 'scintilla/src/Geometry.cxx', + 'scintilla/src/Geometry.h', + 'scintilla/src/Indicator.cxx', + 'scintilla/src/Indicator.h', + 'scintilla/src/KeyMap.cxx', + 'scintilla/src/KeyMap.h', + 'scintilla/src/LineMarker.cxx', + 'scintilla/src/LineMarker.h', + 'scintilla/src/MarginView.cxx', + 'scintilla/src/MarginView.h', + 'scintilla/src/Partitioning.h', + 'scintilla/src/PerLine.cxx', + 'scintilla/src/PerLine.h', + 'scintilla/src/Platform.h', + 'scintilla/src/PositionCache.cxx', + 'scintilla/src/PositionCache.h', + 'scintilla/src/Position.h', + 'scintilla/src/RESearch.cxx', + 'scintilla/src/RESearch.h', + 'scintilla/src/RunStyles.cxx', + 'scintilla/src/RunStyles.h', + 'scintilla/src/ScintillaBase.cxx', + 'scintilla/src/ScintillaBase.h', + 'scintilla/src/Selection.cxx', + 'scintilla/src/Selection.h', + 'scintilla/src/SparseVector.h', + 'scintilla/src/SplitVector.h', + 'scintilla/src/Style.cxx', + 'scintilla/src/Style.h', + 'scintilla/src/UniConversion.cxx', + 'scintilla/src/UniConversion.h', + 'scintilla/src/UniqueString.cxx', + 'scintilla/src/UniqueString.h', + 'scintilla/src/ViewStyle.cxx', + 'scintilla/src/ViewStyle.h', + 'scintilla/src/XPM.cxx', + 'scintilla/src/XPM.h', + cpp_args: sci_cflags, + dependencies: deps + [ dep_lexilla ], + include_directories: [ + iscintilla, + include_directories('scintilla/include', 'scintilla/src') + ] +) +dep_scintilla = declare_dependency( + link_with: scintilla, + include_directories: include_directories('scintilla/include') +) + +if cdata.get('HAVE_FNMATCH') == 1 + dep_fnmatch = dependency('', required: false) +else + # use fnmatch bundled with ctags + fnmatch = static_library('fnmatch', + 'ctags/fnmatch/fnmatch.c', + 'ctags/fnmatch/fnmatch.h', + include_directories: [ifnmatch], + c_args: basic_cflags + ) + dep_fnmatch = declare_dependency(link_with: [fnmatch], include_directories: [ifnmatch]) +endif + +if cdata.get('HAVE_REGCOMP') == 1 + dep_regex = dependency('', required: false) +else + # use regcomp bundled with ctags + regex = static_library('regex', + 'ctags/gnu_regex/regex.c', + 'ctags/gnu_regex/regex.h', + dependencies: [dep_fnmatch], + c_args: basic_cflags + [ '-D__USE_GNU' ] + ) + dep_regex = declare_dependency(link_with: [regex], include_directories: [iregex]) +endif + +ctags = static_library('ctags', + 'ctags/dsl/es.c', + 'ctags/dsl/es.h', + 'ctags/dsl/optscript.c', + 'ctags/dsl/optscript.h', + 'ctags/main/args.c', + 'ctags/main/args_p.h', + 'ctags/main/colprint.c', + 'ctags/main/colprint_p.h', + 'ctags/main/CommonPrelude.c', + 'ctags/main/ctags.h', + 'ctags/main/debug.c', + 'ctags/main/debug.h', + 'ctags/main/dependency.c', + 'ctags/main/dependency.h', + 'ctags/main/dependency_p.h', + 'ctags/main/e_msoft.h', + 'ctags/main/entry.c', + 'ctags/main/entry.h', + 'ctags/main/entry_p.h', + 'ctags/main/entry_private.c', + 'ctags/main/error.c', + 'ctags/main/error_p.h', + 'ctags/main/field.c', + 'ctags/main/field.h', + 'ctags/main/field_p.h', + 'ctags/main/flags.c', + 'ctags/main/flags_p.h', + 'ctags/main/fmt.c', + 'ctags/main/fmt_p.h', + 'ctags/main/gcc-attr.h', + 'ctags/main/general.h', + 'ctags/main/gvars.h', + 'ctags/main/htable.c', + 'ctags/main/htable.h', + 'ctags/main/inline.h', + 'ctags/main/interactive_p.h', + 'ctags/main/keyword.c', + 'ctags/main/keyword.h', + 'ctags/main/keyword_p.h', + 'ctags/main/kind.c', + 'ctags/main/kind.h', + 'ctags/main/kind_p.h', + 'ctags/main/lregex.c', + 'ctags/main/lregex-default.c', + 'ctags/main/lregex.h', + 'ctags/main/lregex_p.h', + 'ctags/main/lxpath.c', + 'ctags/main/lxpath.h', + 'ctags/main/lxpath_p.h', + 'ctags/main/main.c', + 'ctags/main/main_p.h', + 'ctags/main/mbcs.c', + 'ctags/main/mbcs.h', + 'ctags/main/mbcs_p.h', + 'ctags/main/mio.c', + 'ctags/main/mio.h', + 'ctags/main/nestlevel.c', + 'ctags/main/nestlevel.h', + 'ctags/main/numarray.c', + 'ctags/main/numarray.h', + 'ctags/main/objpool.c', + 'ctags/main/objpool.h', + 'ctags/main/options.c', + 'ctags/main/options.h', + 'ctags/main/options_p.h', + 'ctags/main/param.c', + 'ctags/main/param.h', + 'ctags/main/param_p.h', + 'ctags/main/parse.c', + 'ctags/main/parse.h', + 'ctags/main/parse_p.h', + 'ctags/main/parsers_p.h', + 'ctags/main/portable-dirent_p.h', + 'ctags/main/portable-scandir.c', + 'ctags/main/promise.c', + 'ctags/main/promise.h', + 'ctags/main/promise_p.h', + 'ctags/main/ptag.c', + 'ctags/main/ptag_p.h', + 'ctags/main/ptrarray.c', + 'ctags/main/ptrarray.h', + 'ctags/main/rbtree.c', + 'ctags/main/rbtree.h', + 'ctags/main/read.c', + 'ctags/main/read.h', + 'ctags/main/read_p.h', + 'ctags/main/repoinfo.c', + 'ctags/main/repoinfo.h', + 'ctags/main/routines.c', + 'ctags/main/routines.h', + 'ctags/main/routines_p.h', + 'ctags/main/script.c', + 'ctags/main/script_p.h', + 'ctags/main/seccomp.c', + 'ctags/main/selectors.c', + 'ctags/main/selectors.h', + 'ctags/main/sort.c', + 'ctags/main/sort_p.h', + 'ctags/main/stats.c', + 'ctags/main/stats_p.h', + 'ctags/main/strlist.c', + 'ctags/main/strlist.h', + 'ctags/main/subparser.h', + 'ctags/main/subparser_p.h', + 'ctags/main/tokeninfo.c', + 'ctags/main/tokeninfo.h', + 'ctags/main/trace.c', + 'ctags/main/trace.h', + 'ctags/main/trashbox.c', + 'ctags/main/trashbox.h', + 'ctags/main/trashbox_p.h', + 'ctags/main/types.h', + 'ctags/main/unwindi.c', + 'ctags/main/unwindi.h', + 'ctags/main/vstring.c', + 'ctags/main/vstring.h', + 'ctags/main/writer.c', + 'ctags/main/writer-ctags.c', + 'ctags/main/writer-etags.c', + 'ctags/main/writer-json.c', + 'ctags/main/writer_p.h', + 'ctags/main/writer-xref.c', + 'ctags/main/xtag.c', + 'ctags/main/xtag.h', + 'ctags/main/xtag_p.h', + 'ctags/parsers/abaqus.c', + 'ctags/parsers/abc.c', + 'ctags/parsers/asciidoc.c', + 'ctags/parsers/asm.c', + 'ctags/parsers/basic.c', + 'ctags/parsers/bibtex.c', + 'ctags/parsers/cobol.c', + 'ctags/parsers/cpreprocessor.c', + 'ctags/parsers/cpreprocessor.h', + 'ctags/parsers/css.c', + 'ctags/parsers/cxx/cxx.c', + 'ctags/parsers/cxx/cxx_debug.c', + 'ctags/parsers/cxx/cxx_debug.h', + 'ctags/parsers/cxx/cxx_debug_type.c', + 'ctags/parsers/cxx/cxx_keyword.c', + 'ctags/parsers/cxx/cxx_keyword.h', + 'ctags/parsers/cxx/cxx_parser_block.c', + 'ctags/parsers/cxx/cxx_parser.c', + 'ctags/parsers/cxx/cxx_parser_function.c', + 'ctags/parsers/cxx/cxx_parser.h', + 'ctags/parsers/cxx/cxx_parser_internal.h', + 'ctags/parsers/cxx/cxx_parser_lambda.c', + 'ctags/parsers/cxx/cxx_parser_namespace.c', + 'ctags/parsers/cxx/cxx_parser_template.c', + 'ctags/parsers/cxx/cxx_parser_tokenizer.c', + 'ctags/parsers/cxx/cxx_parser_typedef.c', + 'ctags/parsers/cxx/cxx_parser_using.c', + 'ctags/parsers/cxx/cxx_parser_variable.c', + 'ctags/parsers/cxx/cxx_qtmoc.c', + 'ctags/parsers/cxx/cxx_scope.c', + 'ctags/parsers/cxx/cxx_scope.h', + 'ctags/parsers/cxx/cxx_subparser.c', + 'ctags/parsers/cxx/cxx_subparser.h', + 'ctags/parsers/cxx/cxx_subparser_internal.h', + 'ctags/parsers/cxx/cxx_tag.c', + 'ctags/parsers/cxx/cxx_tag.h', + 'ctags/parsers/cxx/cxx_token.c', + 'ctags/parsers/cxx/cxx_token_chain.c', + 'ctags/parsers/cxx/cxx_token_chain.h', + 'ctags/parsers/cxx/cxx_token.h', + 'ctags/parsers/diff.c', + 'ctags/parsers/erlang.c', + 'ctags/parsers/flex.c', + 'ctags/parsers/gdscript.c', + 'ctags/parsers/geany_c.c', + 'ctags/parsers/geany_docbook.c', + 'ctags/parsers/geany_fortran.c', + 'ctags/parsers/geany_lcpp.c', + 'ctags/parsers/geany_lcpp.h', + 'ctags/parsers/geany_markdown.c', + 'ctags/parsers/geany_matlab.c', + 'ctags/parsers/geany_tcl.c', + 'ctags/parsers/geany_tex.c', + 'ctags/parsers/geany_vhdl.c', + 'ctags/parsers/go.c', + 'ctags/parsers/haskell.c', + 'ctags/parsers/haxe.c', + 'ctags/parsers/html.c', + 'ctags/parsers/iniconf.c', + 'ctags/parsers/iniconf.h', + 'ctags/parsers/jscript.c', + 'ctags/parsers/json.c', + 'ctags/parsers/julia.c', + 'ctags/parsers/lua.c', + 'ctags/parsers/make.c', + 'ctags/parsers/make.h', + 'ctags/parsers/nsis.c', + 'ctags/parsers/objc.c', + 'ctags/parsers/pascal.c', + 'ctags/parsers/perl.c', + 'ctags/parsers/perl.h', + 'ctags/parsers/php.c', + 'ctags/parsers/powershell.c', + 'ctags/parsers/python.c', + 'ctags/parsers/r.c', + 'ctags/parsers/r.h', + 'ctags/parsers/rst.c', + 'ctags/parsers/ruby.c', + 'ctags/parsers/rust.c', + 'ctags/parsers/sh.c', + 'ctags/parsers/sql.c', + 'ctags/parsers/txt2tags.c', + 'ctags/parsers/verilog.c', + c_args: geany_cflags + [ '-DG_LOG_DOMAIN="CTags"', + '-DEXTERNAL_PARSER_LIST_FILE="src/tagmanager/tm_parsers.h"' ], + dependencies: deps + [dep_fnmatch, dep_regex], + include_directories: [ictags] +) +dep_ctags = declare_dependency(link_with: [ctags], include_directories: [ictags]) + +install_headers( + 'src/tagmanager/tm_source_file.h', + 'src/tagmanager/tm_tag.h', + 'src/tagmanager/tm_workspace.h', + 'src/tagmanager/tm_parser.h', + subdir: 'geany/tagmanager' +) + +tagmanager = static_library('tagmanager', + 'src/tagmanager/tm_ctags.h', + 'src/tagmanager/tm_ctags.c', + 'src/tagmanager/tm_parser.h', + 'src/tagmanager/tm_parser.c', + 'src/tagmanager/tm_parsers.h', + 'src/tagmanager/tm_source_file.h', + 'src/tagmanager/tm_source_file.c', + 'src/tagmanager/tm_tag.h', + 'src/tagmanager/tm_tag.c', + 'src/tagmanager/tm_workspace.h', + 'src/tagmanager/tm_workspace.c', + c_args: geany_cflags + [ '-DG_LOG_DOMAIN="Tagmanager"' ], + dependencies: [dep_ctags, glib] +) +dep_tagmanager = declare_dependency( + link_with: tagmanager, + include_directories: [itagmanager] +) + +# Generate signallist.i +gen_src = custom_target('gen-signallist', + input : [ 'data/geany.glade' ], + output : [ 'signallist.i' ], + command : [find_program('scripts/gen-signallist.sh'), '@INPUT@', '@OUTPUT@' ] +) + +win_src = [] +win_deps = [] +if (host_machine.system() == 'windows') + win_src += [ 'src/win32.c', 'src/win32.h' ] + foreach lib : ['ole32', 'wsock32', 'comdlg32'] + win_deps += cc.find_library(lib) + endforeach +endif + +install_headers( + 'plugins/geanyfunctions.h', + 'plugins/geanyplugin.h', + 'src/app.h', + 'src/build.h', + 'src/dialogs.h', + 'src/document.h', + 'src/editor.h', + 'src/encodings.h', + 'src/filetypes.h', + 'src/geany.h', + 'src/gtkcompat.h', + 'src/highlighting.h', + 'src/keybindings.h', + 'src/main.h', + 'src/msgwindow.h', + 'src/navqueue.h', + 'src/plugindata.h', + 'src/pluginutils.h', + 'src/prefs.h', + 'src/project.h', + 'src/sciwrappers.h', + 'src/search.h', + 'src/spawn.h', + 'src/stash.h', + 'src/support.h', + 'src/symbols.h', + 'src/templates.h', + 'src/toolbar.h', + 'src/ui_utils.h', + 'src/utils.h', + subdir: 'geany' +) + +libgeany = shared_library('geany', + 'src/about.c', + 'src/about.h', + 'src/app.h', + 'src/build.c', + 'src/build.h', + 'src/callbacks.c', + 'src/callbacks.h', + 'src/dialogs.c', + 'src/dialogs.h', + 'src/document.c', + 'src/document.h', + 'src/editor.c', + 'src/editor.h', + 'src/encodings.c', + 'src/encodings.h', + 'src/filetypes.c', + 'src/filetypes.h', + 'src/geanyentryaction.c', + 'src/geanyentryaction.h', + 'src/geanymenubuttonaction.c', + 'src/geanymenubuttonaction.h', + 'src/geanyobject.c', + 'src/geanyobject.h', + 'src/geanywraplabel.c', + 'src/geanywraplabel.h', + 'src/gtkcompat.h', + 'src/highlighting.c', + 'src/highlighting.h', + 'src/highlightingmappings.h', + 'src/keybindings.c', + 'src/keybindings.h', + 'src/keyfile.c', + 'src/keyfile.h', + 'src/log.c', + 'src/log.h', + 'src/libmain.c', + 'src/main.h', + 'src/geany.h', + 'src/msgwindow.c', + 'src/msgwindow.h', + 'src/navqueue.c', + 'src/navqueue.h', + 'src/notebook.c', + 'src/notebook.h', + 'src/plugins.c', + 'src/plugins.h', + 'src/pluginutils.c', + 'src/pluginutils.h', + 'src/prefs.c', + 'src/prefs.h', + 'src/printing.c', + 'src/printing.h', + 'src/project.c', + 'src/project.h', + 'src/sciwrappers.c', + 'src/sciwrappers.h', + 'src/search.c', + 'src/search.h', + 'src/socket.c', + 'src/socket.h', + 'src/spawn.c', + 'src/spawn.h', + 'src/stash.c', + 'src/stash.h', + 'src/support.h', + 'src/symbols.c', + 'src/symbols.h', + 'src/templates.c', + 'src/templates.h', + 'src/toolbar.c', + 'src/toolbar.h', + 'src/tools.c', + 'src/tools.h', + 'src/sidebar.c', + 'src/sidebar.h', + 'src/ui_utils.c', + 'src/ui_utils.h', + 'src/utils.c', + 'src/utils.h', + gen_src, + win_src, + host_machine.system() == 'windows' ? ['src/win32.c', 'src/win32.h'] : [ 'src/vte.c', 'src/vte.h' ], + soversion: '0', + c_args: geany_cflags + [ '-DG_LOG_DOMAIN="Geany"' ], + include_directories: [iscintilla], + dependencies: [dep_tagmanager, dep_ctags, dep_scintilla] + deps + win_deps, + install: true +) +dep_libgeany = declare_dependency( + link_with: libgeany, + include_directories: [igeany] +) + +executable('geany', + 'src/main.c', + link_with: libgeany, + c_args: geany_cflags + [ '-DG_LOG_DOMAIN="Geany"' ], + dependencies: deps, + build_rpath: meson.build_root(), + install_rpath: '$ORIGIN/../' + get_option('libdir'), + install: true +) + +i18n = import('i18n') + +desktop_file = 'geany.desktop' +desktop_output_file = i18n.merge_file( + type: 'desktop', + input: desktop_file + '.in', + output: desktop_file, + po_dir: 'po', + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') +) + +subdir('po') +subdir('data') +subdir('doc') +subdir('icons') +subdir('plugins') +subdir('tests') + +install_data('COPYING', rename: 'GPL-2') +install_data( + 'scintilla/License.txt', + 'scintilla/lexilla/License.txt', + rename: [ + 'ScintillaLicense.txt', + 'LexillaLicense.txt' + ], + install_dir: cdata.get('GEANY_DOC_DIR') +) +misc = [ + 'AUTHORS', + 'COPYING', + 'ChangeLog', + 'NEWS', + 'README', + 'THANKS', + 'TODO' +] +install_data(misc, install_dir: cdata.get('GEANY_DOC_DIR')) +if host_machine.system() == 'windows' +misc_rename = [ + 'Authors.txt', + 'Changelog.txt', + 'Copying.txt', + 'Readme.txt', + 'News.txt', + 'Thanks.txt', + 'Todo.txt' +] +install_data(misc, install_dir: prefix, rename: misc_rename) +endif Modified: meson_options.txt 8 lines changed, 8 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,8 @@ +option('html-docs', type : 'feature', description : 'enable to generate HTML documentation using rst2html') +option('pdf-docs', type : 'feature', description : 'enable to generate PDF documentation using rst2pdf') +option('vte', type : 'boolean', description : 'enable if you want virtual terminal support') +option('plugins', type : 'boolean', description : 'enable if you want plugin support') +option('api-docs', type : 'feature', description : 'enable to generate API documentation using Doxygen') +option('gtkdoc', type : 'boolean', description : 'enable to generate gtk-doc compatible headers for the API') +option('python-command', type: 'string', description: 'the default Python command') +option('socket', type: 'boolean', description: 'enable if you want to detect a running instance') Modified: plugins/Makefile.am 7 lines changed, 3 insertions(+), 4 deletions(-) =================================================================== @@ -43,7 +43,7 @@ saveactions_la_SOURCES = saveactions.c filebrowser_la_SOURCES = filebrowser.c splitwindow_la_SOURCES = splitwindow.c -demoplugin_la_CFLAGS = -DG_LOG_DOMAIN=\""Demoplugin"\" -DLOCALEDIR=\""$(LOCALEDIR)"\" +demoplugin_la_CFLAGS = -DG_LOG_DOMAIN=\""Demoplugin"\" demoproxy_la_CFLAGS = -DG_LOG_DOMAIN=\""Demoproxy"\" classbuilder_la_CFLAGS = -DG_LOG_DOMAIN=\""Classbuilder"\" htmlchars_la_CFLAGS = -DG_LOG_DOMAIN=\""HTMLChars"\" @@ -64,10 +64,9 @@ splitwindow_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS) endif # PLUGINS if MINGW -# FIXME: why is this define different than the non-MINGW one? -AM_CPPFLAGS = -DGEANY_DATADIR=\"data\" +AM_CPPFLAGS = -DGEANY_DATADIR=\"data\" -DGEANY_LOCALEDIR=\"\" else -AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" +AM_CPPFLAGS = -DGEANY_DATADIR=\"$(datadir)\" -DGEANY_LOCALEDIR=\""$(localedir)"\" endif AM_CPPFLAGS += \ Modified: plugins/classbuilder.c 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -31,7 +31,7 @@ GeanyData *geany_data; PLUGIN_VERSION_CHECK(GEANY_API_VERSION) -PLUGIN_SET_INFO(_("Class Builder"), _("Creates source files for new class types."), VERSION, +PLUGIN_SET_INFO(_("Class Builder"), _("Creates source files for new class types."), PACKAGE_VERSION, "Alexander Rodin, Ondrej Donek, the Geany developer team") Modified: plugins/demoplugin.c 5 lines changed, 4 insertions(+), 1 deletions(-) =================================================================== @@ -30,6 +30,9 @@ * - it will be loaded at next startup. */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif #include "geanyplugin.h" /* plugin API, always comes first */ #include "Scintilla.h" /* for the SCNotification struct */ @@ -216,7 +219,7 @@ static void demo_cleanup(GeanyPlugin *plugin, gpointer data) void geany_load_module(GeanyPlugin *plugin) { /* main_locale_init() must be called for your package before any localization can be done */ - main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); + main_locale_init(GEANY_LOCALEDIR, GETTEXT_PACKAGE); plugin->info->name = _("Demo"); plugin->info->description = _("Example plugin."); plugin->info->version = "0.4"; Modified: plugins/export.c 8 lines changed, 4 insertions(+), 4 deletions(-) =================================================================== @@ -33,8 +33,8 @@ GeanyData *geany_data; PLUGIN_VERSION_CHECK(GEANY_API_VERSION) -PLUGIN_SET_INFO(_("Export"), _("Exports the current file into different formats."), VERSION, - _("The Geany developer team")) +PLUGIN_SET_INFO(_("Export"), _("Exports the current file into different formats."), + PACKAGE_VERSION, _("The Geany developer team")) static GtkWidget *main_menu_item = NULL; @@ -50,7 +50,7 @@ static GtkWidget *main_menu_item = NULL; <head>\n\ <title>{export_filename}</title>\n\ <meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />\n\ - <meta name=\"generator\" content=\"Geany " VERSION "\" />\n\ + <meta name=\"generator\" content=\"Geany " PACKAGE_VERSION "\" />\n\ <meta name=\"date\" content=\"{export_date}\" />\n\ <style type=\"text/css\">\n\ {export_styles}\n\ @@ -65,7 +65,7 @@ static GtkWidget *main_menu_item = NULL; </html>\n" #define TEMPLATE_LATEX "\ -% {export_filename} (LaTeX code generated by Geany " VERSION " on {export_date})\n\ +% {export_filename} (LaTeX code generated by Geany " PACKAGE_VERSION " on {export_date})\n\ \\documentclass[a4paper]{article}\n\ \\usepackage[a4paper,margin=2cm]{geometry}\n\ \\usepackage[utf8]{inputenc}\n\ Modified: plugins/filebrowser.c 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -46,8 +46,8 @@ GeanyData *geany_data; PLUGIN_VERSION_CHECK(GEANY_API_VERSION) -PLUGIN_SET_INFO(_("File Browser"), _("Adds a file browser tab to the sidebar."), VERSION, - _("The Geany developer team")) +PLUGIN_SET_INFO(_("File Browser"), _("Adds a file browser tab to the sidebar."), + PACKAGE_VERSION, _("The Geany developer team")) /* Keybinding(s) */ Modified: plugins/htmlchars.c 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -35,8 +35,8 @@ GeanyData *geany_data; PLUGIN_VERSION_CHECK(GEANY_API_VERSION) -PLUGIN_SET_INFO(_("HTML Characters"), _("Inserts HTML character entities like '&'."), VERSION, - _("The Geany developer team")) +PLUGIN_SET_INFO(_("HTML Characters"), _("Inserts HTML character entities like '&'."), + PACKAGE_VERSION, _("The Geany developer team")) /* Keybinding(s) */ Modified: plugins/meson.build 28 lines changed, 28 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,28 @@ +plugin_inc = [include_directories('..', '../src', '../src/tagmanager')] +plugin_inc += iscintilla + +plugins = [ + 'Demoplugin', + 'Demoproxy', + 'Classbuilder', + 'HTMLChars', + 'Export', + 'SaveActions', + 'FileBrowser', + 'SplitWindow' +] + +foreach plugin : plugins + id = plugin.to_lower() + skip_install = id.startswith('demo') + shared_module(id, + id + '.c', + name_prefix: '', # "lib" seems to be the default prefix + link_with: libgeany, + include_directories: plugin_inc, + c_args: [def_cflags, '-DG_LOG_DOMAIN="'+plugin+'"'], + dependencies: [deps, dep_libgeany], + install_dir: join_paths(prefix, get_option('libdir'), 'geany'), + install: not skip_install + ) +endforeach Modified: plugins/saveactions.c 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -40,7 +40,7 @@ GeanyData *geany_data; PLUGIN_VERSION_CHECK(GEANY_API_VERSION) PLUGIN_SET_INFO(_("Save Actions"), _("This plugin provides different actions related to saving of files."), - VERSION, _("The Geany developer team")) + PACKAGE_VERSION, _("The Geany developer team")) enum Modified: plugins/splitwindow.c 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -31,7 +31,7 @@ PLUGIN_VERSION_CHECK(GEANY_API_VERSION) PLUGIN_SET_INFO(_("Split Window"), _("Splits the editor view into two windows."), - VERSION, _("The Geany developer team")) + PACKAGE_VERSION, _("The Geany developer team")) GeanyData *geany_data; Modified: po/meson.build 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1 @@ +i18n.gettext(meson.project_name(), preset: 'glib', install: true) Modified: scripts/gen-signallist.sh 8 lines changed, 8 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +HEADER="/* This file is auto-generated, do not edit. */" +TEXT=$(sed -n 's/^.*handler="\([^"]\{1,\}\)".*$/ITEM(\1)/p' "$1" | sort | uniq) + +printf "%s\n%s\n" "$HEADER" "$TEXT" > "$2" Modified: src/Makefile.am 6 lines changed, 1 insertions(+), 5 deletions(-) =================================================================== @@ -179,11 +179,7 @@ callbacks.c: signallist.i glade_file=$(top_srcdir)/data/geany.glade signallist.i: $(glade_file) Makefile - $(AM_V_GEN)( \ - echo '/* This file is auto-generated, do not edit. */' && \ - $(SED) -n 's/^.*handler="\([^"]\{1,\}\)".*$$/ITEM(\1)/p' "$(glade_file)" \ - | $(SORT) | $(UNIQ) \ - ) > $@ || { $(RM) $@ && exit 1; } + $(AM_V_GEN)$(top_srcdir)/scripts/gen-signallist.sh $(glade_file) $@ CLEANFILES += signallist.i Modified: src/libmain.c 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -304,10 +304,10 @@ static void main_init(void) const gchar *main_get_version_string(void) { - static gchar full[] = VERSION " (git >= " REVISION ")"; + static gchar full[] = PACKAGE_VERSION " (git >= " REVISION ")"; if (utils_str_equal(REVISION, "-1")) - return VERSION; + return PACKAGE_VERSION; else return full; } Modified: src/templates.c 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -533,7 +533,7 @@ static void replace_static_values(GString *text) utils_string_replace_all(text, "{mail}", template_prefs.mail); utils_string_replace_all(text, "{company}", template_prefs.company); utils_string_replace_all(text, "{untitled}", GEANY_STRING_UNTITLED); - utils_string_replace_all(text, "{geanyversion}", "Geany " VERSION); + utils_string_replace_all(text, "{geanyversion}", PACKAGE_STRING); } Modified: src/utils.c 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1930,7 +1930,7 @@ gchar *utils_get_help_url(const gchar *suffix) if (! g_file_test(uri + skip, G_FILE_TEST_IS_REGULAR)) { /* fall back to online documentation if it is not found on the hard disk */ g_free(uri); - uri = g_strconcat(GEANY_HOMEPAGE, "manual/", VERSION, "/index.html", NULL); + uri = g_strconcat(GEANY_HOMEPAGE, "manual/", PACKAGE_VERSION, "/index.html", NULL); } if (suffix != NULL) Modified: tests/ctags/Makefile.am 6 lines changed, 4 insertions(+), 2 deletions(-) =================================================================== @@ -343,6 +343,8 @@ test_results = $(test_sources:=.tags) TEST_EXTENSIONS = .tags TAGS_LOG_COMPILER = $(srcdir)/runner.sh +AM_TAGS_LOG_FLAGS = $(top_builddir)/src/geany$(EXEEXT) +AM_TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) TESTS = $(test_results) EXTRA_DIST = $(test_sources) $(test_results) @@ -353,6 +355,6 @@ check_processing_order_sources = \ EXTRA_DIST += $(check_processing_order_sources) .PHONY: check-processing-order check-processing-order: $(check_processing_order_sources) - srcdir="$(srcdir)" top_builddir="$(top_builddir)" \ - $(srcdir)/runner.sh --result $(check_processing_order_sources:%=$(srcdir)/%) + $(AM_TESTS_ENVIRONMENT) \ + $(srcdir)/runner.sh $(top_builddir)/src/geany$(EXEEXT) --result $(check_processing_order_sources:%=$(srcdir)/%) check-local: check-processing-order Modified: tests/ctags/runner.sh 10 lines changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -1,10 +1,9 @@ -#!/bin/sh +#!/bin/bash # error out on undefined variable expansion, useful for debugging set -u -# FIXME: get this from automake so we have $(EXEEXT) -GEANY="${top_builddir:-../..}/src/geany" +GEANY="$1" TMPDIR=$(mktemp -d) || exit 99 CONFDIR="$TMPDIR/config/" @@ -14,9 +13,10 @@ trap 'rm -rf "$TMPDIR"' EXIT # related configuration files mkdir -p "$CONFDIR" || exit 99 mkdir -p "$CONFDIR/filedefs/" || exit 99 -cp "${srcdir:-.}"/../../data/filetype_extensions.conf "$CONFDIR" || exit 99 -cp "${srcdir:-.}"/../../data/filedefs/filetypes.* "$CONFDIR/filedefs/" || exit 99 +cp "${top_srcdir:-../..}"/data/filetype_extensions.conf "$CONFDIR" || exit 99 +cp "${top_srcdir:-../..}"/data/filedefs/filetypes.* "$CONFDIR/filedefs/" || exit 99 +shift if [ "$1" = "--result" ]; then # --result $result $source... [ $# -gt 2 ] || exit 99 Modified: tests/meson.build 354 lines changed, 354 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,354 @@ +test_deps = declare_dependency(compile_args: geany_cflags + [ '-DG_LOG_DOMAIN="Geany"' ], + dependencies: [deps, dep_libgeany]) + +ctags_tests = files([ + 'ctags/1795612.js.tags', + 'ctags/1850914.js.tags', + 'ctags/1878155.js.tags', + 'ctags/1880687.js.tags', + 'ctags/2023624.js.tags', + 'ctags/3184782.sql.tags', + 'ctags/3470609.js.tags', + 'ctags/3526726.tex.tags', + 'ctags/68hc11.asm.tags', + 'ctags/actionscript/as-first-token.as.tags', + 'ctags/actionscript/classes.as.tags', + 'ctags/actionscript/const2.as.tags', + 'ctags/actionscript/const.as.tags', + 'ctags/actionscript/method-attributes.as.tags', + 'ctags/actionscript/packages.as.tags', + 'ctags/actionscript/sampler.as.tags', + 'ctags/angle_bracket.cpp.tags', + 'ctags/anonymous_functions.php.tags', + 'ctags/arraylist.js.tags', + 'ctags/array_ref_and_out.cs.tags', + 'ctags/array_spec.f90.tags', + 'ctags/array-spec.f90.tags', + 'ctags/attributes.cs.tags', + 'ctags/auto.f.tags', + 'ctags/backslashes.c.tags', + 'ctags/bit_field.c.tags', + 'ctags/block.f90.tags', + 'ctags/bracematch.js.tags', + 'ctags/bug1020715.cpp.tags', + 'ctags/bug1020715.c.tags', + 'ctags/bug1086609.c.tags', + 'ctags/bug1093123.cpp.tags', + 'ctags/bug1111214-j-chan.v.tags', + 'ctags/bug1111214.v.tags', + 'ctags/bug1201689.c.tags', + 'ctags/bug1447756.java.tags', + 'ctags/bug1458930.c.tags', + 'ctags/bug1466117.c.tags', + 'ctags/bug1491666.c.tags', + 'ctags/bug1515910.cs.tags', + 'ctags/bug1548443.cpp.tags', + 'ctags/bug1563476.cpp.tags', + 'ctags/bug1570779.sql.tags', + 'ctags/bug1575055.cpp.tags', + 'ctags/bug1585745.cpp.tags', + 'ctags/bug1611054.cs.tags', + 'ctags/bug1691412.java.tags', + 'ctags/bug1742588.rb.tags', + 'ctags/bug1743330.v.tags', + 'ctags/bug1764143.h.tags', + 'ctags/bug1764148.py.tags', + 'ctags/bug1770479.cpp.tags', + 'ctags/bug1773926.cpp.tags', + 'ctags/bug1777344.java.tags', + 'ctags/bug1799340.cpp.tags', + 'ctags/bug1799343-1.cpp.tags', + 'ctags/bug1799343-2.cpp.tags', + 'ctags/bug1800065.cs.tags', + 'ctags/bug1809024.py.tags', + 'ctags/bug1830343.cs.tags', + 'ctags/bug1830344.cs.tags', + 'ctags/bug1856363.py.tags', + 'ctags/bug1906062.py.tags', + 'ctags/bug1907083.cpp.tags', + 'ctags/bug1924919.cpp.tags', + 'ctags/bug1938565.sql.tags', + 'ctags/bug1944150.sql.tags', + 'ctags/bug1950327.js.tags', + 'ctags/bug1988026.py.tags', + 'ctags/bug1988027.py.tags', + 'ctags/bug1988130.py.tags', + 'ctags/bug2049723.java.tags', + 'ctags/bug2075402.py.tags', + 'ctags/bug2117073.java.tags', + 'ctags/bug2374109.vhd.tags', + 'ctags/bug2411878.cs.tags', + 'ctags/bug2747828.v.tags', + 'ctags/bug2777310.js.tags', + 'ctags/bug2781264.rb.tags', + 'ctags/bug2886870.tex.tags', + 'ctags/bug2888482.js.tags', + 'ctags/bug3036476.js.tags', + 'ctags/bug3168705.py.tags', + 'ctags/bug3571233.js.tags', + 'ctags/bug507864.c.tags', + 'ctags/bug538629.asm.tags', + 'ctags/bug556645.c.tags', + 'ctags/bug556646.c.tags', + 'ctags/bug565813.f90.tags', + 'ctags/bug612019.pas.tags', + 'ctags/bug612621.pl.tags', + 'ctags/bug620288.f.tags', + 'ctags/bug639639.h.tags', + 'ctags/bug639644.hpp.tags', + 'ctags/bug665086.cpp.tags', + 'ctags/bug670433.f90.tags', + 'ctags/bug699171.py.tags', + 'ctags/bug722501.sql.tags', + 'ctags/bug726712.f90.tags', + 'ctags/bug726875.f90.tags', + 'ctags/bug734933.f90.tags', + 'ctags/bug762027.v.tags', + 'ctags/bug814263.java.tags', + 'ctags/bug823000.sql.tags', + 'ctags/bug842077.pl.tags', + 'ctags/bug849591.cpp.tags', + 'ctags/bug852368.cpp.tags', + 'ctags/bug858165.f90.tags', + 'ctags/bug872494.cpp.tags', + 'ctags/bug877956.f90.tags', + 'ctags/bug960316.v.tags', + 'ctags/bug961001.v.tags', + 'ctags/byte.f.tags', + 'ctags/c-digraphs.c.tags', + 'ctags/c-trigraphs.c.tags', + 'ctags/case_sensitivity.php.tags', + 'ctags/char-selector.f90.tags', + 'ctags/classes.php.tags', + 'ctags/cobol/helloworld.cbl.tags', + 'ctags/cobol/helloworld2.cbl.tags', + 'ctags/cobol/levels.cbl.tags', + 'ctags/cobol/quoted-program-id.cbl.tags', + 'ctags/cobol/simple.cbl.tags', + 'ctags/common.f.tags', + 'ctags/complex-return.js.tags', + 'ctags/continuation.f90.tags', + 'ctags/continuation.mak.tags', + 'ctags/countall.sql.tags', + 'ctags/cpp_destructor.cpp.tags', + 'ctags/css-at-rules.css.tags', + 'ctags/css-at-supports.css.tags', + 'ctags/css-attribute-selectors.css.tags', + 'ctags/css-comma-no-space.css.tags', + 'ctags/css-namespace-selectors.css.tags', + 'ctags/css-pseudo-classes.css.tags', + 'ctags/css-simple.css.tags', + 'ctags/css-singlequote-in-comment-issue2.css.tags', + 'ctags/css-tag-types.css.tags', + 'ctags/css-trivial.css.tags', + 'ctags/cython_sample.pyx.tags', + 'ctags/cython_sample2.pyx.tags', + 'ctags/cxx11enum.cpp.tags', + 'ctags/cxx11-final.cpp.tags', + 'ctags/cxx11-noexcept.cpp.tags', + 'ctags/cxx11-override.cpp.tags', + 'ctags/cxx11-raw-strings.cpp.tags', + 'ctags/cxx14-combined.cpp.tags', + 'ctags/db-trig.sql.tags', + 'ctags/debian_432872.f90.tags', + 'ctags/directives.c.tags', + 'ctags/dopbl2.f.tags', + 'ctags/dotted-names.json.tags', + 'ctags/enum.c.tags', + 'ctags/enum.f90.tags', + 'ctags/enum.java.tags', + 'ctags/enumerators.f90.tags', + 'ctags/events.cs.tags', + 'ctags/extern_variable.h.tags', + 'ctags/forall_module.f90.tags', + 'ctags/format.pl.tags', + 'ctags/fortran_associate.f90.tags', + 'ctags/fortran_line_continuation.f90.tags', + 'ctags/func_typedef.h.tags', + 'ctags/geany.nsi.tags', + 'ctags/general.cs.tags', + 'ctags/hex2dec.sql.tags', + 'ctags/implied_program.f.tags', + 'ctags/indexer.cs.tags', + 'ctags/infinite_loop.java.tags', + 'ctags/ingres_procedures.sql.tags', + 'ctags/initialization.f90.tags', + 'ctags/interface_indexers.cs.tags', + 'ctags/interface_properties.cs.tags', + 'ctags/interfaces.f90.tags', + 'ctags/internal.cs.tags', + 'ctags/intro_orig.tex.tags', + 'ctags/intro.tex.tags', + 'ctags/invalid_name.f90.tags', + 'ctags/java_enum.java.tags', + 'ctags/js-broken-strings.js.tags', + 'ctags/js-class-related-unterminated.js.tags', + 'ctags/js-const.js.tags', + 'ctags/js-implicit-semicolons.js.tags', + 'ctags/js-let.js.tags', + 'ctags/js-scope.js.tags', + 'ctags/js-signature.js.tags', + 'ctags/js-string-continuation.js.tags', + 'ctags/js-sub-block-scope.js.tags', + 'ctags/js-unknown-construct-nesting.js.tags', + 'ctags/julia-corner_cases.jl.tags', + 'ctags/jsFunc_tutorial.js.tags', + 'ctags/keyword_abstract.cs.tags', + 'ctags/keyword_catch_try.cs.tags', + 'ctags/keyword_class.cs.tags', + 'ctags/keyword_const.cs.tags', + 'ctags/keyword_delegate.cs.tags', + 'ctags/keyword_enum.cs.tags', + 'ctags/keyword_event.cs.tags', + 'ctags/keyword_explicit.cs.tags', + 'ctags/keyword_extern.cs.tags', + 'ctags/keyword_implicit.cs.tags', + 'ctags/keyword_interface.cs.tags', + 'ctags/keyword_namespace.cs.tags', + 'ctags/keyword_names.f90.tags', + 'ctags/keyword_out.cs.tags', + 'ctags/keyword_override.cs.tags', + 'ctags/keyword_params.cs.tags', + 'ctags/keyword_private.cs.tags', + 'ctags/keyword_protected.cs.tags', + 'ctags/keyword_public.cs.tags', + 'ctags/keyword_sealed.cs.tags', + 'ctags/keyword_static.cs.tags', + 'ctags/keyword_struct.cs.tags', + 'ctags/keyword_virtual.cs.tags', + 'ctags/keyword_volatile.cs.tags', + 'ctags/labels.sql.tags', + 'ctags/lanus.for.tags', + 'ctags/line_directives.c.tags', + 'ctags/local.c.tags', + 'ctags/macros.c.tags', + 'ctags/make-comment-in-rule.mak.tags', + 'ctags/make-gnumake-pattern-rules.mak.tags', + 'ctags/make-multi-target.mak.tags', + 'ctags/make-parentheses.mak.tags', + 'ctags/make-target-with-parentheses.mak.tags', + 'ctags/make-variable-on-cmdline.mak.tags', + 'ctags/masm.asm.tags', + 'ctags/matlab_backtracking.m.tags', + 'ctags/matlab_test.m.tags', + 'ctags/maze.erl.tags', + 'ctags/members.f90.tags', + 'ctags/misc_types.f90.tags', + 'ctags/misc_types.f.tags', + 'ctags/mode.php.tags', + 'ctags/moniker.x68.asm.tags', + 'ctags/namelist.f.tags', + 'ctags/namespace.cpp.tags', + 'ctags/namespaces2.php.tags', + 'ctags/namespaces.php.tags', + 'ctags/no_terminator.js.tags', + 'ctags/non-ascii-ident1.php.tags', + 'ctags/numlib.f90.tags', + 'ctags/objectivec_implementation.mm.tags', + 'ctags/objectivec_interface.mm.tags', + 'ctags/objectivec_property.mm.tags', + 'ctags/objectivec_protocol.mm.tags', + 'ctags/Package.pm.tags', + 'ctags/php5_5_class_kw.php.tags', + 'ctags/parenthesis-rvalue.js.tags', + 'ctags/preprocessor.f90.tags', + 'ctags/procedure_pointer_module.f90.tags', + 'ctags/procpoint.f90.tags', + 'ctags/property.cs.tags', + 'ctags/prototype.h.tags', + 'ctags/pure_elem.f95.tags', + 'ctags/py_constructor_arglist.py.tags', + 'ctags/py-skipped-string.py.tags', + 'ctags/python-anonymous-nestlevel_ctags-bug-356.py.tags', + 'ctags/python-comments.py.tags', + 'ctags/qualified_types.f90.tags', + 'ctags/random.sql.tags', + 'ctags/readlob.sql.tags', + 'ctags/readlong.sql.tags', + 'ctags/recursive.f95.tags', + 'ctags/refcurs.sql.tags', + 'ctags/regexp.js.tags', + 'ctags/return-hint.zep.tags', + 'ctags/return-types.go.tags', + 'ctags/ruby-block-call.rb.tags', + 'ctags/ruby-doc.rb.tags', + 'ctags/ruby-namespaced-class.rb.tags', + 'ctags/ruby-scope-after-anonymous-class.rb.tags', + 'ctags/ruby-sf-bug-364.rb.tags', + 'ctags/rules.t2t.tags', + 'ctags/sample.t2t.tags', + 'ctags/secondary_fcn_name.js.tags', + 'ctags/semicolon.f90.tags', + 'ctags/shebang.js.tags', + 'ctags/signature.cpp.tags', + 'ctags/simple.abc.tags', + 'ctags/simple.asciidoc.tags', + 'ctags/simple.bas.tags', + 'ctags/simple.conf.tags', + 'ctags/simple.d.tags', + 'ctags/simple.diff.tags', + 'ctags/simple.docbook.tags', + 'ctags/simple.hs.tags', + 'ctags/simple.hx.tags', + 'ctags/simple.html.tags', + 'ctags/simple.inp.tags', + 'ctags/simple.js.tags', + 'ctags/simple.json.tags', + 'ctags/simple.ksh.tags', + 'ctags/simple.lua.tags', + 'ctags/simple.mak.tags', + 'ctags/simple.md.tags', + 'ctags/simple.php.tags', + 'ctags/simple.pl.tags', + 'ctags/simple.ps1.tags', + 'ctags/simple.py.tags', + 'ctags/simple.rb.tags', + 'ctags/simple.rst.tags', + 'ctags/simple.sh.tags', + 'ctags/simple.tcl.tags', + 'ctags/simple.vala.tags', + 'ctags/simple.zep.tags', + 'ctags/size_t_wchar_t_alias.d.tags', + 'ctags/size_t_wchar_t_typedef.c.tags', + 'ctags/spurious_label_tags.c.tags', + 'ctags/sql_single_quote.sql.tags', + 'ctags/square_parens.f90.tags', + 'ctags/state_machine.v.tags', + 'ctags/static_array.c.tags', + 'ctags/stdcall.f.tags', + 'ctags/strings.php.tags', + 'ctags/strings.rb.tags', + 'ctags/structure.f.tags', + 'ctags/tabindent.py.tags', + 'ctags/test.erl.tags', + 'ctags/test.go.tags', + 'ctags/test.py.tags', + 'ctags/test.vhd.tags', + 'ctags/test_input.rs.tags', + 'ctags/test_input2.rs.tags', + 'ctags/titles.t2t.tags', + 'ctags/traffic_signal.v.tags', + 'ctags/traits.php.tags', + 'ctags/ui5.controller.js.tags', + 'ctags/union.f.tags', + 'ctags/value.f.tags', + 'ctags/var-and-return-type.cpp.tags', + 'ctags/whitespaces.php.tags' +]) + +runner = find_program('ctags/runner.sh') +foreach t : ctags_tests + test('@0@'.format(t), runner, + args: [join_paths(meson.build_root(), 'geany'), t], + env: ['top_srcdir='+meson.source_root(), 'top_builddir=' + meson.build_root()]) +endforeach + +process_order_sources = files([ + 'ctags/process_order.c.tags', + 'ctags/process_order_1.h', + 'ctags/process_order_2.h' +]) +test('ctags/processing-order', runner, + args: [join_paths(meson.build_root(), 'geany'), '--result', process_order_sources], + env: ['top_srcdir='+meson.source_root(), 'top_builddir='+meson.build_root()]) +test('utils', executable('test_utils', 'test_utils.c', dependencies: test_deps)) -------------- This E-Mail was brought to you by github_commit_mail.py (Source:
https://github.com/geany/infrastructure
).
1
0
0
0
← Newer
1
2
3
4
Older →
Jump to page:
1
2
3
4
Results per page:
10
25
50
100
200