Commit Graph

280 Commits

Author SHA1 Message Date
Moritz Bunkus
f07203fb42 configure: add -stdc++ flag during check for nlohmann-jsoncpp
See #1858.
2017-01-24 22:44:58 +01:00
Moritz Bunkus
05919681f6 configure: find DocBook man page stylesheets on openSUSE 2017-01-22 22:00:23 +01:00
Moritz Bunkus
e52f878720 build system: look for & use system-wide version of nlohmann json-cpp
If one is found, it will be used. Otherwise the included version in
lib/nlohmann-json will be used.

Implements #1858.
2017-01-20 23:07:34 +01:00
Moritz Bunkus
d7b691b6f5 all: remove --check-for-updates command line option & dependency on CURL 2016-12-30 15:01:30 +01:00
Moritz Bunkus
cfe6e85eb6 build system: don't use -fipa-icf optimization on i686 mingw target
The result are segfaulting executables.
2016-12-22 18:20:25 +01:00
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