From d850bbd9d683fcf0ec0f622a1be4b43d1752e43e Mon Sep 17 00:00:00 2001 From: Philippe Baril Lecavalier Date: Sun, 27 Apr 2025 06:27:44 -0400 Subject: [PATCH 1/5] build-pdf: Prevent infinite loop in dblatex By default, dblatex goes on an infinite loop if it can't find a font. --- tools/tutorial-custom-cmd.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/tutorial-custom-cmd.py b/tools/tutorial-custom-cmd.py index 8b4b094..280d255 100755 --- a/tools/tutorial-custom-cmd.py +++ b/tools/tutorial-custom-cmd.py @@ -112,6 +112,7 @@ def dblatex(): '-P', 'paper.type=a4paper', '-P', 'doc.collab.show=1', '-P', 'latex.output.revhistory=0', + '-P', 'latex.engine.options="-halt-on-error"', ] cmd = [ From 60c382ebba1742ef499c4581b0c9b25b4d02ec15 Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Sun, 27 Apr 2025 16:49:26 +0200 Subject: [PATCH 2/5] Documentation: Clarify download locations Future releases will not be stored at download.gnome.org/sources/. Very old releases are not stored at github.com/libsigcplusplus/ libsigcplusplus/releases/. --- README.md | 2 +- docs/doc.md | 4 ++-- docs/docs/_config.yml | 1 - docs/download.md | 7 +++++-- 4 files changed, 8 insertions(+), 6 deletions(-) delete mode 100644 docs/docs/_config.yml diff --git a/README.md b/README.md index bb60b64..0b47b37 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Web site - https://libsigcplusplus.github.io/libsigcplusplus/ Download location - - https://download.gnome.org/sources/libsigc++/ + - https://download.gnome.org/sources/libsigc++/ (until 3.6.0) - https://github.com/libsigcplusplus/libsigcplusplus/releases/ Reference documentation diff --git a/docs/doc.md b/docs/doc.md index aaf3cc1..259022f 100644 --- a/docs/doc.md +++ b/docs/doc.md @@ -6,8 +6,8 @@ title: Documentation ## libsigc++-2.0 The documentation is not available online. You can download a tarball from -[GitHub releases](https://github.com/libsigcplusplus/libsigcplusplus/releases/) -or the [GNOME download site](https://download.gnome.org/sources/libsigc++/), +[GitHub releases](https://github.com/libsigcplusplus/libsigcplusplus/releases/) (since 2.10.1) +or the [GNOME download site](https://download.gnome.org/sources/libsigc++/) (until 2.12.1), extract it, and view the documentation at *untracked/docs/*. ## libsigc++-3.0 diff --git a/docs/docs/_config.yml b/docs/docs/_config.yml deleted file mode 100644 index 2f7efbe..0000000 --- a/docs/docs/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-minimal \ No newline at end of file diff --git a/docs/download.md b/docs/download.md index 2cc3d16..9a587a0 100644 --- a/docs/download.md +++ b/docs/download.md @@ -5,7 +5,10 @@ title: Download ## Source Packages -The source packages are available from the [GNOME download site](http://download.gnome.org/sources/libsigc++/). +The source packages are available from [GitHub releases](https://github.com/libsigcplusplus/libsigcplusplus/releases/) +(since 2.10.1 and 3.0.0) +and from the [GNOME download site](http://download.gnome.org/sources/libsigc++/) +(until 2.12.1 and 3.6.0). ## Binary Packages @@ -16,7 +19,7 @@ For instance, Ubuntu Linux, Debian Linux and Fedora Linux have official libsigc+ [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/) should be used to build software that depends on libsigc++. -libsigc++ is built and tested for a standards-compliant C++ compiler. Luckily, the recent versions of all major C++ compilers are now sufficiently standards-compliant. +libsigc++ is built and tested for a standards-compliant C++ compiler. libsigc++ version 2.5.1 and later require a C++11-compliant compiler. From 4c0f262a9d325bce04a0c7faac7b7e1704cb12bf Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Mon, 28 Apr 2025 07:45:35 +0200 Subject: [PATCH 3/5] Meson build: Better detection of MSVC-like compilers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Treat all compilers with MSVC-like argument syntax the same. Use cpp_compiler.get_define('_MSC_VER') instead of cpp_compiler.version() to check compiler version. Suggested by Tim-Philipp Müller and Chun-wei Fan. See https://gitlab.freedesktop.org/cairo/cairomm/-/merge_requests/30 --- meson.build | 30 ++++++++++++++---------------- sigc++/meson.build | 5 +++-- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/meson.build b/meson.build index 395a0e3..ea9310c 100644 --- a/meson.build +++ b/meson.build @@ -40,14 +40,12 @@ project_build_root = meson.current_build_dir() cpp_compiler = meson.get_compiler('cpp') cpp_compiler_id = cpp_compiler.get_id() -is_msvc = cpp_compiler_id == 'msvc' or cpp_compiler_id.endswith('-cl') -is_cl_impersonator = is_msvc and cpp_compiler_id != 'msvc' +is_msvc_style = cpp_compiler.get_argument_syntax() == 'msvc' python3 = find_program('python3', version: '>=3.7') -# MSVC: We currently do not support shared and static builds at the, -# same time, since we need different defines/cflags for proper -# linking. -if is_msvc +# MSVC: We currently do not support shared and static builds at the same time, +# since we need different defines/cflags for proper linking. +if is_msvc_style if get_option('default_library') == 'both' error('-Ddefault_library=both is currently not supported for Visual Studio') endif @@ -120,11 +118,11 @@ benchmark_dep = dependency('boost', modules: ['system', 'timer'], version: '>=1.20.0', required: do_benchmark) can_benchmark = benchmark_dep.found() -if is_msvc and not is_cl_impersonator +if is_msvc_style # We must have Visual Studio 2017 15.7 or later... - assert(cpp_compiler.version().split('.')[0].to_int() >= 19 and \ - cpp_compiler.version().split('.')[1].to_int() >= 15, - 'Visual Studio 2017 15.7 or later is required') + mscver = cpp_compiler.get_define('_MSC_VER') + assert(mscver == '' or mscver.version_compare('>=1914'), + 'Visual Studio 2017 15.7 or later or compatible is required') endif # Some dependencies are required only in maintainer mode and/or @@ -185,17 +183,17 @@ endif warning_flags = [] if cpp_warnings == 'min' if warning_level == 0 - warning_flags = is_msvc ? ['/W2'] : ['-Wall'] - endif + warning_flags = is_msvc_style ? ['/W2'] : ['-Wall'] + endif elif cpp_warnings == 'max' or cpp_warnings == 'fatal' if warning_level < 3 - warning_flags = is_msvc ? ['/W4'] : ['-pedantic', '-Wall', '-Wextra'] + warning_flags = is_msvc_style ? ['/W4'] : ['-pedantic', '-Wall', '-Wextra'] endif - if not is_msvc + if not is_msvc_style warning_flags += '-Wsuggest-override -Wshadow -Wzero-as-null-pointer-constant -Wformat-security'.split() endif if cpp_warnings == 'fatal' and not werror - warning_flags += is_msvc ? ['/WX'] : ['-Werror'] + warning_flags += is_msvc_style ? ['/WX'] : ['-Werror'] endif endif @@ -206,7 +204,7 @@ add_project_arguments(warning_flags, language: 'cpp') # that should not be overlooked stand out. static_cxxflag = '-DLIBSIGCXX_STATIC' msvc_static_cxxflag = is_msvc_static ? static_cxxflag : '' -if is_msvc +if is_msvc_style disable_warnings_list = [ '/EHsc', # avoid warnings caused by exception handling model used ] diff --git a/sigc++/meson.build b/sigc++/meson.build index 9df3793..9235f71 100644 --- a/sigc++/meson.build +++ b/sigc++/meson.build @@ -1,7 +1,8 @@ # sigc++ # Input: sigcxx_build_dep, sigcxx_pcname, sigcxx_libversion, sigcxx_api_version, -# darwin_versions, install_includedir, sig_rc, msvc_static_cxxflag +# darwin_versions, install_includedir, sig_rc, msvc_static_cxxflag, +# is_msvc_style # Output: source_h_files, sigcxx_own_dep # There are no built source files in libsigc++-3.0. @@ -75,7 +76,7 @@ extra_sigc_cppflags = [] extra_sigc_objects = [] # Make sure we are exporting the symbols from the DLL -if is_msvc +if is_msvc_style extra_sigc_cppflags += ['-DSIGC_BUILD'] endif From 3312c0920019d7779d884fc97c729484d2c227e7 Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Mon, 28 Apr 2025 08:00:50 +0200 Subject: [PATCH 4/5] docs/docs/reference/Doxyfile.in: Remove unsupported entries --- docs/docs/reference/Doxyfile.in | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/docs/reference/Doxyfile.in b/docs/docs/reference/Doxyfile.in index 1f1c4a5..f00ce53 100644 --- a/docs/docs/reference/Doxyfile.in +++ b/docs/docs/reference/Doxyfile.in @@ -141,8 +141,6 @@ REFERENCES_LINK_SOURCE = YES SOURCE_TOOLTIPS = YES USE_HTAGS = NO VERBATIM_HEADERS = NO -CLANG_ASSISTED_PARSING = NO -CLANG_OPTIONS = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- From 94f1b9f48d845323501e82a5c787fbe2beccb01c Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Mon, 28 Apr 2025 08:13:17 +0200 Subject: [PATCH 5/5] Meson build: Don't distribute libsigcplusplus.doap --- meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meson.build b/meson.build index ea9310c..5df0170 100644 --- a/meson.build +++ b/meson.build @@ -266,8 +266,10 @@ meson.add_dist_script( python3, dist_changelog, project_source_root, ) + # Don't distribute these files and directories. dont_distribute = [ + 'libsigcplusplus.doap', '.github', ] # Add build scripts to the distribution directory, and delete .gitignore