--- /dev/null
+# This file is a template, and might need editing before it works on your project.
+# use the official gcc image, based on debian
+# can use verions as well, like gcc:5.2
+# see https://hub.docker.com/_/gcc/
+image: ubuntu:devel
+
+stages:
+ - build
+
+variables:
+ DEPENDENCIES: g++
+ gettext
+ git
+ yelp-tools
+ gtk-doc-tools
+ make
+ autoconf
+ python3-pygments
+ python3-setuptools
+ libglib2.0-dev
+ mm-common
+ libxml-libxml-perl
+
+ GIT_SUBMODULE_STRATEGY: normal
+
+before_script:
+ - export DEBIAN_FRONTEND=noninteractive
+ - apt update && apt -y upgrade && apt -y install $DEPENDENCIES
+ - git clone --branch 3.0.0 https://github.com/libsigcplusplus/libsigcplusplus libsigc
+ - cd libsigc
+ - ./autogen.sh --prefix=/usr
+ - make
+ - make install && cd ..
+
+library_build:
+ stage: build
+ script:
+ - ./autogen.sh --prefix=/usr
+ - make
+ - make install
+
+2.65.3: (unstable):
+Distro packagers should probably not package this yet.
+
+Tests:
+* glibmm_buildfilename: Add some tests
+ (Kjell Ahlstedt) Issue #71 (Kalev Lember)
+
+Build:
+* Meson build: Install generate_extra_defs.h
+ (Kjell Ahlstedt) Issue #70 (Jan Alexander Steffens)
+
+
2.65.2: (unstable):
Distro packagers should probably not package this yet.
## Building from a release tarball
Extract the tarball and go to the extracted directory:
- $ tar xf glibmm-@GLIBMM_VERSION@.tar.gz
+ $ tar xf glibmm-@GLIBMM_VERSION@.tar.xz
$ cd glibmm-@GLIBMM_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
- $ meson configure -Dmaintainer-mode=yes
+ $ meson configure -Dmaintainer-mode=true
-Then, reguardless of how the tarball was made:
+Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
-Then, reguardless of how the tarball was made:
+Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
## You should have received a copy of the GNU Lesser General Public License
## along with this library. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([glibmm], [2.65.2],
+AC_INIT([glibmm], [2.65.3],
[https://gitlab.gnome.org/GNOME/glibmm/issues],
[glibmm], [http://www.gtkmm.org/])
AC_PREREQ([2.59])
# This file is part of glibmm.
project('glibmm', 'cpp',
- version: '2.65.2',
+ version: '2.65.3',
license: 'LGPLv2.1+',
default_options: [
'cpp_std=c++17'
' libdir: @0@'.format(install_prefix / install_libdir),
' glibmmconfigdir: @0@'.format(install_prefix / install_glibmmconfigdir),
' giommconfigdir: @0@'.format(install_prefix / install_giommconfigdir),
- ' m4dir: @0@'.format(install_prefix / install_m4dir),
+ ' gmmprocdir: @0@'.format(install_prefix / install_procdir),
' pkgconfigdir: @0@'.format(install_prefix / install_pkgconfigdir),
' datadir: @0@'.format(install_prefix / install_datadir),
' docdir: @0@'.format(install_prefix / install_docdir),
#include <glibmm.h>
#include <iostream>
#include <string.h>
+#include <vector>
// Use this line if you want debug output:
// std::ostream& ostr = std::cout;
path = Glib::build_filename(dir_1, dir_2, dir_1, dir_3, dir_2, dir_3, dir_1, dir_2, file_2);
ostr << "Path 5: " << path << std::endl;
+ path = Glib::build_filename(dir_2, file_2);
+ ostr << "Path 6: " << path << std::endl;
+
+ path = Glib::build_filename(dir_2, file_3);
+ ostr << "Path 7: " << path << std::endl;
+
+ path = Glib::build_filename(dir_3, file_3);
+ ostr << "Path 8: " << path << std::endl;
+
+ path = Glib::build_filename(dir_1);
+ ostr << "Path 9: " << path << std::endl;
+
+ path = Glib::build_filename(nullptr);
+ ostr << "Path 10: " << path << std::endl;
+
+ std::vector<std::string> pathv;
+ pathv.push_back("vdir1");
+ path = Glib::build_filename(pathv);
+ ostr << "Path v1: " << path << std::endl;
+
+ pathv.push_back("vdir2");
+ path = Glib::build_filename(pathv);
+ ostr << "Path v2: " << path << std::endl;
+
return EXIT_SUCCESS;
}
# tools/extra_defs_gen
-# Input: is_msvc, glibmm_build_dep, giomm_build_dep, glibmm_api_version,
-# glibmm_libversion
+# Input: glibmm_build_dep, giomm_build_dep, glibmm_api_version,
+# glibmm_libversion, glibmm_pcname
# Output: -
glibmm_generate_extra_defs_library = library(
install: true,
)
+install_headers('generate_extra_defs.h', subdir: glibmm_pcname / 'glibmm_generate_extra_defs')
+
executable('generate_defs_glib', 'generate_defs_glib.cc',
dependencies: glibmm_build_dep,
link_with: glibmm_generate_extra_defs_library,
# tools
# Input: perl, m4, install_prefix, install_libdir, glibmm_pcname
-# Output: m4_files, install_m4dir, pm_files, install_pmdir, gmmproc,
-# generate_wrap_init_pl
+# Output: install_procdir, m4_files, pm_files, gmmproc, generate_wrap_init_pl
subdir('extra_defs_gen')
m4_files += 'm4' / file
endforeach
m4_files = files(m4_files)
-install_m4dir = install_procdir / 'm4'
-install_data(m4_files, install_dir: install_m4dir)
+install_data(m4_files, install_dir: install_procdir / 'm4')
# Install pm files for reuse by other *mm projects, when building from git.
pm_basefiles = [
pm_files += 'pm' / file
endforeach
pm_files = files(pm_files)
-install_pmdir = install_procdir / 'pm'
-install_data(pm_files, install_dir: install_pmdir)
+install_data(pm_files, install_dir: install_procdir / 'pm')