Commit Graph

325 Commits

Author SHA1 Message Date
Moritz Bunkus
5097f0da6c GUIs: require Qt v5.3.0 or newer & remove compatibility code for older versions 2016-12-17 12:41:24 +01:00
Moritz Bunkus
0271688719 build system: remove checks for etags/ebrowse 2016-12-16 14:15:39 +01:00
Moritz Bunkus
c827f9d0b6 build system: require more C++14 features
The source will start using the following features from the C++14
standard:

• the "std::make_unique()" Standard Library function
• digit separators
• binary literals
• generic lambdas

gcc's v4.9.x and clang's v3.4 are the oldest releases to support all of
them.
2016-12-13 22:37:14 +01:00
Moritz Bunkus
f3900953d4 build system: rename c++11.m4 to c++-features.m4
I'll add tests for features from later standard versions soon.
2016-12-13 22:16:28 +01:00
Moritz Bunkus
449e2bf82c GUI: mux: cache file identification results
The GUI will now cache file identification results on disc. When the
same file is identified a second time the cached results are used
instead leading to a huge speed gain, especially when scanning Blu-ray
playlists multiple times.

Both positive and negative results are cached.

Cache results are invalidated whenever one of the following conditions
is met:

• if the source file's modification time stamp differs from when the
  result was cached
• if the source file's size in bytes differs from when the result was
  cached
• if the current version of MKVToolNix GUI differs from the version used
  to write the cached result
2016-12-03 12:24:17 +01:00
Moritz Bunkus
d7afc32412 build system: look for libQt5PlatformSupport.a and link it if found
Newer versions of Qt (definitely 5.7.0 but not yet 5.5.1) contain part
of the platform-specific code not in e.g. libqwindows.a but in
libQt5PlatformSupport.a. That library doesn't seem to be mentioned in
the LDFLAGS gathered from pkg-config. But its functionality is actually
required for libqwindows.a.

Therefore look for the library manually and link it if it's found.

Required in at least the static mingw cross-compiled build.
2016-10-29 00:24:21 +02:00
Moritz Bunkus
6d85fbc046 build system: require libEBML v1.3.4, libMatroska v1.4.5 2016-07-13 18:39:12 +02:00
Moritz Bunkus
684f7c7c7b configure: enable C++11/14 during Qt detection
Starting with v5.7.0 Qt requires the compiler to be in C++11 mode.
2016-07-02 20:23:36 +02:00
Moritz Bunkus
8b6b876d2a configure: add switch for circumventing pkg-config for Qt detection
Normally configure uses pkg-config for detecting Qt and setting
QT_CFLAGS and QT_LIBS. With this option configure won't use pkg-config
and rely on the user having set both variables before running
configure. This enables using Qt on systems where no pkg-config files
are generated (e.g. Qt 5.6.0 on MacOS with frameworks enabled).

See https://github.com/Homebrew/homebrew/pull/50234
2016-03-20 10:01:14 +01:00
Moritz Bunkus
5c6cf41028 build system: find DocBook styleheets on Fedora
Fixes #1607.
2016-02-22 10:50:24 +01:00
Moritz Bunkus
d867a79d97 build system: use {EBML,MATROSKA}_{CFLAGS,LIBS} from pkg-config if not internal 2015-11-21 11:56:27 +01:00
Moritz Bunkus
d0193dc354 build system: only use -O2 with 32bit mingw cross compilers >= 5.1.0
MXE has recently reverted to 4.9.x, and that line still produces fine
binaries with -O3.
2015-11-17 22:16:22 +01:00
Moritz Bunkus
bc596fa06c configure: don't check for libintl if --without-gettext is used
Fixes #1501.
2015-11-08 20:40:48 +01:00
Moritz Bunkus
3a8acead8d build system: only use -O2 with 32bit mingw cross compilers
Recent versions of the MXE mingw cross compilers produce stack-smashing
binaries with -O3 for some of the tools.
2015-10-22 11:36:42 +02:00
Moritz Bunkus
004585c79f build system: require libEBML 1.3.3, libMatroska 1.4.4 2015-10-20 16:13:14 +02:00
Moritz Bunkus
20e26c840b build system: remove option --without-mkvtoolnix-gui 2015-08-15 20:33:46 +02:00
Moritz Bunkus
64465ce72b all: remove support for wxWidgets; remove mmg 2015-08-15 20:33:46 +02:00
Moritz Bunkus
c14a01aed6 build system: Qt: only look for platform plugin for static Qt 2015-08-15 14:06:11 +02:00
Moritz Bunkus
943ee96fc9 build system: Qt: don't assume GNU sed
\(…\) seems to be a GNU extension to sed, and MacOS uses BSD sed which
doesn't support it.
2015-08-15 14:06:07 +02:00
Moritz Bunkus
94eb9af366 build system: enable gcc's stack protection
Implements #1370.
2015-08-11 15:02:58 +02:00
Moritz Bunkus
8683e553f3 build system: update Boost configure macros from www.gnu.org
Those new versions seem to improve support for more basic shells like
dash.
2015-08-09 21:04:04 +02:00
Moritz Bunkus
f8e00b68be build system: add configure option for disabling libmagic 2015-07-21 16:42:07 +02:00
Moritz Bunkus
0c06672722 build system: fix Qt platform plugin directory detection
-L can occur multiple times in $QT_LIBS; replace all occurrences.
2015-07-21 10:58:50 +02:00
Moritz Bunkus
9042b3ebf8 GUI: show progress in Windows on task bar button
Implements #1335.
2015-07-04 18:21:26 +02:00
Moritz Bunkus
a7c84f4104 build system: check for the Qt5Network module 2015-06-22 22:02:42 +02:00
Moritz Bunkus
fef12cc386 build system: test for -std=gnu++14/-std=gnu++11 as well
For clang using gnu++14/11 results in a dummy type being defined for
__float128. That, in turn, allows compilation with unmodified libstdc++
and clang.
2015-06-06 11:18:00 +02:00
Moritz Bunkus
479f5d3670 build system: build Qt translation files on MingW 2015-06-03 20:06:34 +02:00
Moritz Bunkus
3b8458f38d build system: compile without maybe-uninitialized warnings for gcc
See e.g.
http://stackoverflow.com/questions/21755206/how-to-get-around-gcc-void-b-4-may-be-used-uninitialized-in-this-funct
2015-05-23 19:45:35 +02:00
Moritz Bunkus
0ea55b2956 configure: don't abort if moc/uic/rcc is not found 2015-05-10 10:43:32 +02:00
Moritz Bunkus
2a57cb4cb0 configure: remove duplicate pkg-config module 2015-05-09 21:46:15 +02:00
Moritz Bunkus
14ff0d12d1 configure: fix Qt test for certain versions 2015-05-09 18:44:03 +02:00
Moritz Bunkus
be6d290129 configure: enable Qt-based GUIs by default 2015-05-09 17:01:25 +02:00
Moritz Bunkus
0046805360 build system: require at least Qt 5.2.0 2015-05-09 16:24:07 +02:00
Moritz Bunkus
f76088d561 configure: don't require Qt5PlatforumSupport to be available 2015-05-09 10:20:57 +02:00
Moritz Bunkus
5ca23b0cdb Qt UIs: only link static platform plugins if building against static Qt 2015-05-01 08:50:48 +02:00
Moritz Bunkus
cbdef0301a configure: try to detect zlib simply via -lz if no pkg-config module installed for it
This can happen e.g. on Mac OS.
2015-04-29 21:50:47 +02:00
Moritz Bunkus
86ee6ce6a9 build system: auto-detect curl-config/wx-config with host prefix 2015-04-28 23:38:20 +02:00
Moritz Bunkus
3d4ebe7d07 build system: prefer curl-config over pkg-config for cflags/libs
On Mac OS »pkg-config --libs libcurl« doesn't output all the required
libraries for some reason (e.g. no »-lssl«). »curl-config --libs« does,
though. So prefer that if it's present and fall back to using pkg-config
otherwise.
2015-04-28 22:31:38 +02:00
Moritz Bunkus
afb6472d6d build system: use correct order for linker flags for internal libEBML/libMatroska
Should fix #1177.
2015-04-28 13:55:10 +02:00
Moritz Bunkus
d3d68641fd version info: remove build time stamp 2015-04-22 12:56:10 +02:00
Moritz Bunkus
093a894fb2 build system: add switches for linking against a static Qt 2015-04-19 19:55:20 +02:00
Moritz Bunkus
728fb0a307 GUI, mkvinfo GUI: link against Cocoa platform plugin on Mac OS 2015-04-19 19:53:12 +02:00
Dominik 'Rathann' Mierzejewski
b4ca4862b4 make system utf8cpp check more robust
Check if utf8to32() and utf32to8() methods are available.
2015-04-02 23:05:01 +02:00
Dominik 'Rathann' Mierzejewski
fcd92036b4 build system: use system version of UTF8-CPP if present 2015-03-31 01:35:23 +02:00
Moritz Bunkus
30a18e07ba rounding: use std::llround() instead of boost::math::llround()
See #1150.
2015-03-28 16:31:09 +01:00
Moritz Bunkus
c2a74a8ebe build system: don't build tools by default but provide configure option 2015-03-25 20:21:59 +01:00
Moritz Bunkus
2fcc79b00c build system: check for and turn off some new warnings from clang++ 3.6
These warnings include -Winconsistent-missing-override and
-Wpotentially-evaluated-expression which are both triggered by code out
of my control (Qt and wxWidgets).
2015-03-25 17:51:30 +01:00
Moritz Bunkus
f3be86478f build system: fix setting USE_CLANG when cache files are used 2015-03-25 17:25:25 +01:00
Moritz Bunkus
baeb11a4a0 math common: remove irnd() in favor of Boost's roundll() 2015-03-25 17:18:20 +01:00
Moritz Bunkus
a2456c1bb6 build system: don't test for -std=c++1y
This won't do what I think it does with clang 3.3: it doesn't seem to
turn on the C++11 features.
2015-03-25 12:20:32 +01:00
Moritz Bunkus
8f7a5b73b1 refactoring: test, fallback impl. for std::make_unique and use it 2015-03-24 21:43:48 +01:00
Moritz Bunkus
4f116a93b5 build system: test for -std=c++14 2015-03-24 17:04:35 +01:00
Moritz Bunkus
e41c70f1e3 refactoring: prefer alias declarations to typedefs 2015-03-24 16:31:52 +01:00
Anthony Violo
b5fd9b0fc0 Remove pthread option, because is not necessary to generate static application 2015-02-23 16:37:17 +01:00
Florent Thiéry
b00eeac099 rename STATIC_LIBS by LINK_STATICALLY because it was misleading 2015-02-19 13:36:40 +01:00
Florent Thiéry
a77e1e3677 fix --enable-static opt_features description 2015-02-19 13:34:44 +01:00
Florent Thiéry
113ffc5447 fix --enable-static flag description 2015-02-19 13:33:06 +01:00
Anthony Violo
1e6b546cd1 Added option to compile static binaries 2015-02-18 11:44:45 +01:00
Moritz Bunkus
b41bd6fd9d configure: be more explicit about which optimizations are enabled 2015-02-12 13:34:38 +01:00
Moritz Bunkus
f7eb73a546 build system: check for checked-out copies of libEBML/libMatroska 2014-12-21 11:19:06 +01:00
Moritz Bunkus
b47ae1ee4b build system: use libEBML/libMatroska via pkg-config 2014-12-21 10:50:26 +01:00
Moritz Bunkus
0c8a8392cf build system: require libMatroska v1.4.2
See #1096.
2014-12-19 14:03:11 +01:00
Moritz Bunkus
6f86568a27 build system: require libEBML 1.3.1
Together with 563be4d and 8415af3 the changes in libEBML 1.3.1 address
the problems in #1089. Therefore: fixes #1089.
2014-12-19 00:32:00 +01:00
Moritz Bunkus
61e9e36592 build sys: use system version of pugixml if present
Fixes #1090.
2014-12-05 12:35:39 +01:00
Moritz Bunkus
4a610ce9c1 Build system: Qt: link against and load platform plugin on Windows 2014-09-07 21:30:50 +02:00
Moritz Bunkus
bd0f5bc0df build system: require Boost's date/time library 2014-05-26 08:49:15 +02:00
Moritz Bunkus
640788f675 build system: build man page translations regardless of level of completion 2014-05-24 20:49:37 +02:00
Moritz Bunkus
108e5dbe71 Merge branch 'master' into mkvtoolnix-gui 2014-02-07 22:30:44 +01:00
Moritz Bunkus
d3cf4f5756 fix compilation on Solaris: ioctl requires more headers 2014-02-05 07:53:34 +01:00
Moritz Bunkus
c2747fca07 fixup! configure: adjust tests for Qt5 2014-01-16 12:14:07 +01:00
Moritz Bunkus
181bde8bcb configure: adjust tests for Qt5 2014-01-16 12:09:30 +01:00
Moritz Bunkus
cd13fb900f build system: use correct processor architecture for 64bit Windows builds 2014-01-02 21:23:13 +01:00
Moritz Bunkus
2670e2e168 build system: use gtest system installation if present 2013-12-25 13:00:28 +01:00
Moritz Bunkus
cf06b42c66 build system: fix wxWidgets detection for wx 2.9x and mingw i686-pc-mingw32 2013-11-02 15:40:27 +01:00
Moritz Bunkus
fddc0b7231 build system: add C++11 flag to wxWidgets test 2013-10-26 18:52:13 +02:00
Moritz Bunkus
5b887990ca build system: use -std=c++11 instead of -std=c++0x if the compiler supports it 2013-10-26 18:50:15 +02:00
Moritz Bunkus
da654e7ea7 build system: add -Wlogical-op warning flag for gcc 4.8.x 2013-10-26 12:52:22 +02:00
Moritz Bunkus
5de88ec536 build system: move compiler warning flag checks to their own file 2013-10-26 12:52:22 +02:00
Moritz Bunkus
aaca20b740 configure: look for Boost libs in multiarch directories 2013-10-17 23:13:05 +02:00
Moritz Bunkus
a03ab1e3e4 Update libMatroska to 82a7b7c (pre 1.4.1) and require 1.4.1 2013-07-02 22:33:50 +02:00
Moritz Bunkus
38b11bbce0 common: use stdlib's type traits instead of Boost's 2013-05-04 15:22:23 +02:00
Moritz Bunkus
4f309cc9ca build system: only add clang-specific flags for clang 2013-05-02 11:37:31 +02:00
Moritz Bunkus
8af42f2a85 build system: avoid certain warnings with clang & libstdc++ 2013-04-13 19:38:06 +02:00
Moritz Bunkus
94b2632a1f build system: avoid certain warnings with Qt and clang 2013-04-04 09:21:23 +02:00
Moritz Bunkus
a156d0d5be mkvmerge: set I/O priority class to 'idle' for lower/lowest --priorities on Linux
Implements #863.
2013-03-31 15:17:08 +02:00
Moritz Bunkus
2daf658edc All: remove support for BZ2 and LZO compression 2013-03-03 21:04:19 +01:00
Moritz Bunkus
0978c28c55 configure: output more information about enabled/disabled features 2013-01-15 20:47:09 +01:00
Moritz Bunkus
b57b7f8f71 configure: test for Boost's "variant" library 2012-12-22 20:02:32 +01:00
Moritz Bunkus
51413838a9 Improve Docbook DTD detection on Arch Linux 2012-09-29 08:59:16 +02:00
Moritz Bunkus
6fae39971c Require libmatroska 1.4.0 2012-09-26 16:45:40 +02:00
Moritz Bunkus
db7855993f Test for existence of files in lib/lib{ebml,matroska} if internal libs are used 2012-09-21 11:52:37 +02:00
Moritz Bunkus
b3fe8bc99e Require libebml 1.3.0 or newer 2012-09-04 09:44:30 +02:00
Moritz Bunkus
a947a859ce Don't build with full optimization with clang
Due to bug 11962 in llvm/clang.
2012-09-02 13:25:57 +02:00
Moritz Bunkus
cd770a8808 Test and use '-Qunused-arguments' with clang
Otherwise clang will complain about all the -I directives it doesn't
use.
2012-08-19 23:31:38 +02:00
Moritz Bunkus
405fde3565 Explicitly link against Boost's system lib during the filesystem lib test 2012-08-18 21:01:17 +02:00
Moritz Bunkus
9550b1c747 Replace boost::bind/boost::function with std::bind/std::function 2012-08-08 20:37:09 +02:00
Moritz Bunkus
abcc50f2b4 Fix linking if configure --cache-file is used twice 2012-04-24 19:55:43 +02:00
Moritz Bunkus
6f3e230bf5 Prevent WXWIDGETS_* var leaking to build-config if detection fails 2012-04-15 10:47:37 +02:00
Moritz Bunkus
d9a643afd8 Fix Qt detection for cross-compilation builds 2012-04-15 10:42:05 +02:00
Moritz Bunkus
75cd192440 Rename mmg-qt to mkvtoolnix-gui 2012-04-10 23:22:29 +02:00
Moritz Bunkus
d1024a97eb Check for Qt's rcc; Bump minimum Qt version to 4.7.0 2012-04-10 17:33:09 +02:00
Moritz Bunkus
bb155cc1dd Implement/fix build system for mmg-qt 2012-04-09 17:48:38 +02:00
Moritz Bunkus
5edff6bf0e Explicitly request to link against richtext library
In wxWidgets 2.9.x the "richtext" library is not part of the default
library set anymore.
2012-04-07 13:37:33 +02:00
Moritz Bunkus
af67218b72 Check all required Boost libraries 2012-04-06 18:01:52 +02:00
Moritz Bunkus
84b114fd5c Check for C++11 feature std::tuple 2012-03-31 19:28:21 +02:00
Moritz Bunkus
69442d2d24 Remove element_{mapping,parser,writer} and all occurrences of expat 2012-03-29 21:04:42 +02:00
Moritz Bunkus
48cc8862c5 Generate BROWSE file for Emacs 2012-03-26 20:19:14 +02:00
Moritz Bunkus
bbfb20cda7 Don't look for boost::property_tree anymore 2012-03-17 14:19:38 +01:00
Moritz Bunkus
69fa4eb808 Require C++11 feature "initializer lists" 2012-03-17 10:15:46 +01:00
Moritz Bunkus
62bdf273e5 nRequire C++11 feature 'nullptr' 2012-03-07 20:42:33 +01:00
Moritz Bunkus
b9ad48d72b Require Boost's rational library 2012-02-26 21:44:22 +01:00
Moritz Bunkus
aa577bdb4d Add configure option --without-gettext 2011-12-28 15:28:04 +01:00
Moritz Bunkus
1a8c3e8d1e Add configure option --without-curl 2011-12-28 15:17:01 +01:00
Moritz Bunkus
6848b06781 Remove posix_fadvise() code 2011-12-27 16:13:04 +01:00
KonaBlend
19a62aa4b0 darwin11: support minimal boost tree
Add build support for a minimal boost tree which contains only
filesystem, regex and system dynamic libraries plus all headers.

- merge latest autoconf macros for boost from autoconf archive
- patch { filesystem, regex, system } macros to detect .dylib suffixes

- platform: Mac OS X 10.7.2
- boost versions: 1.47.0, 1.48.0
- compiler: gcc-4.6.2
2011-12-04 07:41:44 -05:00
Moritz Bunkus
639498ab76 Remove the ability to build "libmtxcommon" as a DLL
This feature has literally not been tested by me in years.
2011-11-05 22:19:41 +01:00
Moritz Bunkus
9c049e834e Don't test for the initialization list C++11 feature 2011-10-30 20:35:23 +01:00
Moritz Bunkus
f9da63dd49 Build system: remove included copy of Boost's property tree library 2011-10-23 21:01:12 +02:00
Moritz Bunkus
6ab332d36d Build system: require at least Boost 1.46.0 2011-10-23 20:46:31 +02:00
Moritz Bunkus
e13f02d8b6 Build system: define HAVE_CURL_EASY_H it curl is found via pkg-config
Fix regression introduced in eb846ed8 when curl detection was changed
from AC_CHECK_HEADER() to pkg-config.
2011-10-23 20:23:10 +02:00
Moritz Bunkus
dd099f0c99 Fix linking of static libmagic with mingw 2011-10-23 18:08:16 +02:00
Moritz Bunkus
b0e96e3b5d Test for support for required C++11 features 2011-10-23 14:03:37 +02:00
Moritz Bunkus
b1d40af895 Library detection: notify properly if libmagic is not found 2011-10-23 13:46:28 +02:00
Moritz Bunkus
72b547b836 Detection: link iconv for libintl
Sometimes required for mingw32 cross-builds
2011-10-23 00:10:50 +02:00
Moritz Bunkus
eb846ed82e Build system: use pkg-config's own macros for library detection where possible 2011-10-23 00:07:36 +02:00
Moritz Bunkus
3a6fefcfaa Quote AC_LANG_PROGRAM properly 2011-10-21 21:09:19 +02:00
Moritz Bunkus
b26ee8840a Depend on libEBML 1.2.2 and libMatroska 1.3.0 2011-09-24 11:50:34 +02:00
Moritz Bunkus
d768c1d570 Accept external versions of libEBML & libMatroska again 2011-09-10 12:18:33 +02:00
Moritz Bunkus
342765d5b6 Removed included version of boost::exception
It's bundled in 1.36.0, and 1.36.0 is required already
2011-08-08 21:51:02 +02:00
Moritz Bunkus
027e4679fe Don't check for certain Boost headers
mkvtoolnix has a general version number check for Boost. Don't check
for those headers that should had been introduced by that version
already.
2011-08-08 16:16:53 +02:00
Moritz Bunkus
57e5c2dc08 File renaming 2011-08-08 16:06:07 +02:00
Moritz Bunkus
068ebf0df2 Honor --with-boost when checking for Boost headers 2011-08-08 16:02:02 +02:00
Moritz Bunkus
10ccb35711 configure check for boost::algorithm::string 2011-08-07 22:26:20 +02:00
Moritz Bunkus
da161a432b CSS & build rules for the developer documentation 2011-08-03 22:32:47 +02:00
Moritz Bunkus
d95db41b74 Allow compilation with wxWidgets 2.9.x again 2011-07-08 12:11:56 +02:00
Moritz Bunkus
8c0bb29b35 Don't compile with wxWidgets >= 2.9.0 due to known incompatibilities 2011-05-27 22:48:56 +02:00
Moritz Bunkus
db360a0b50 Fix building on Windows
libmtxcommon must only be compiled as a DLL if libEBML and libMatroska
are compiled as DLLs as well.
2011-04-20 21:20:53 +02:00
Moritz Bunkus
e0c040c2a1 Always use the internal versions of libEBML and libMatroska 2011-04-20 09:20:13 +02:00
Moritz Bunkus
597e307cc1 Fixed compilation with Boost's filesystem library v3; also require Boost 1.36.0 or newer 2011-02-15 16:55:39 +01:00
Moritz Bunkus
70235732c1 A test for Boost filesystem v2 vs v3 2011-02-15 16:54:15 +01:00
Moritz Bunkus
868edce381 Put lib/lib{ebml,matroska} first in include/library paths during compilation if internal libs are to be used 2011-02-06 12:54:56 +01:00
Moritz Bunkus
43367e447a Move libmatroska DLL test in correct if branch 2011-01-31 12:51:15 +01:00
Moritz Bunkus
da0e382cf7 Only use the internal versions of libebml & libmatroska if the system libs are too old 2011-01-31 11:52:07 +01:00
Moritz Bunkus
8395244ea7 Fix compilation on Mac OS X 2011-01-24 18:00:53 +01:00
Moritz Bunkus
da1ff39b7e Build system: TIOCGWINSZ ioctl detection was broken 2011-01-20 14:47:32 +01:00
Moritz Bunkus
a3faf25306 Wrong configure variable names for Boost 2010-12-26 00:37:43 +01:00
Moritz Bunkus
259d2dbb95 Use curl-config for the CFLAGS and LIBS 2010-12-25 23:23:22 +01:00
Moritz Bunkus
7fd70c2851 Include Boost's Exception library from 1.45.0
Boost's property tree lib won't work without a current exception lib.
2010-12-25 23:23:22 +01:00
Moritz Bunkus
ebb2e119cc configure check for libcurl 2010-12-23 16:04:01 +01:00
Moritz Bunkus
55d2f4bc47 Include the Boost property tree library 2010-12-22 23:46:16 +01:00