Commit Graph

354 Commits

Author SHA1 Message Date
George Koehler c655f89d84 Fix: Allow git worktree in version detection; drop svn, hg.
If $ROOT_DIR is a linked working tree from git-worktree(1), then
$ROOT_DIR/.git is a regular file instead of a directory.  Allow this
when deciding whether to use git to detect OpenTTD's version.

Drop checks for svn and hg in config.lib, because findversion.sh
hasn't used svn nor hg since 192770e6da.
2019-08-31 20:11:24 +01:00
Michael Lutz 2675762ae9 Add: [Win32] GDI engine for font glyph rendering as a replacement for including FreeType.
Building with FreeType is still possible and will take precedence over the GDI renderer, but
the project files don't include FreeType anymore by default. Combining GDI rendering with ICU
text layout is untested.
2019-05-14 11:21:36 +01:00
Henry Wilson 31260e6625 Cleanup: Stop OSX compilation complaining about C++11 extensions 2019-03-24 16:10:04 +01:00
Patric Stout e3c639a09f Remove: ENABLE_NETWORK switch
This switch has been a pain for years. Often disabling broke
compilation, as no developer compiles OpenTTD without, neither do
any of our official binaries.

Additionaly, it has grown so hugely in our codebase, that it
clearly shows that the current solution was a poor one. 350+
instances of "#ifdef ENABLE_NETWORK" were in the code, of which
only ~30 in the networking code itself. The rest were all around
the code to do the right thing, from GUI to NewGRF.

A more proper solution would be to stub all the functions, and
make sure the rest of the code can simply assume network is
available. This was also partially done, and most variables were
correct if networking was disabled. Despite that, often the #ifdefs
were still used.

With the recent removal of DOS, there is also no platform anymore
which we support where networking isn't working out-of-the-box.

All in all, it is time to remove the ENABLE_NETWORK switch. No
replacement is planned, but if you feel we really need this option,
we welcome any Pull Request which implements this in a way that
doesn't crawl through the code like this diff shows we used to.
2019-03-20 19:24:55 +01:00
Patric Stout 72c5f2b3ee Remove: DOS support
In 10 years there was no active development on DOS. Although it
turned out to still work, the FPS was very bad. There is little
interest in the current community to look into this.

Further more, we like to switch to c++11 functions for threads,
which are not implemented by DJGPP, the only current compiler
for DOS.

Additionally, DOS is the only platform which does not support
networking. It is the reason we have tons of #ifdefs to support
disabling networking.

By removing DOS support, we can both use c++11 functions for threads,
and remove all the code related to disabling network. Sadly, this
means we have to see DOS go.

Of course, if you feel up for the task, simply revert this commit,
and implement stub c++11 functions for threads and stub functions
for networking. We are more than happy to accept such Pull Request.
2019-03-19 23:22:51 +01:00
Patric Stout 36105841b9 Codechange: ICU_SORT is in reality ICU_I18N (according to their CMake files)
By naming it in a different way, things get a bit confusing.
Especially if we are switching to CMake, which autodetects these
things, we need to use the name the authors of ICU gave it; not
our interpertation of that name.
2019-03-11 10:16:00 +01:00
Patric Stout 52d7e7d45e Codechange: ICU_LAYOUT is in reality ICU_LX (according to their CMake files)
By naming it in a different way, things get a bit confusing.
Especially if we are switching to CMake, which autodetects these
things, we need to use the name the authors of ICU gave it; not
our interpertation of that name.
2019-03-11 10:16:00 +01:00
Patric Stout 7adae09897 Codechange: liblzma is called liblzma, how ever strange that might be
It is the only library we use that calls itself with 'lib' in the
name. This might be confusing, but with the arrival of cmake a lot
of these things are automated. And detection will find 'liblzma',
not 'lzma', like with 'lzo', 'zlib', ..
2019-03-11 10:16:00 +01:00
Patric Stout aa350528df Remove: libtimidity support (NOT timidity support)
libtimidity was introduced with the support for PSP. PSP has been
dropped almost a year ago, but this music driver was not. This
corrects that oversight.

timidity (via extmidi) still works fine. This purely removes the
libtimidity support, which was only really available for PSP.
2019-03-05 22:03:00 +01:00
Patric Stout f58db44ff2 Remove: BeOS support (deprecated by Haiku)
In 10 years there is no commit to change how BeOS works, and we
have no active maintainer for it. It is unlikely it works in its
current state (but not impossible).

With the arrival of SDL2 (and removal of SDL), BeOS is no longer
support. SDL2 suggests to use Haiku instead of BeOS.
2019-03-05 22:03:00 +01:00
Patric Stout 7784d77713 Remove: MorphOS / AmigaOS support
In 10 years there is no commit to change how MorphOS works, and we
have no active maintainer for it. It is unlikely it works in its
current state (but not impossible).

With the arrival of SDL2 (and removal of SDL), MorphOS is no longer
support. There is an SDL2 port for MorphOS, but it is not maintained
by upstream SDL2, and nobody can currently test it out.

If anyone wants to re-add MorphOS, please do (revert this patch,
fix the problems, and create a Pull Request). If you need any help
doing so, let us know! It is not that we don't like MorphOS, it is
that we don't have anyone fixing the problems :(
2019-03-05 22:03:00 +01:00
Charles Pigott 4ac81b3ebb Fix #7308: SDL linker flags were not added on MinGW 2019-03-03 18:04:36 +00:00
Charles Pigott d9b4ada7e9 Fix 95ccddd6: SDL static library flags was not updated to use pkg-config format 2019-03-03 18:04:36 +00:00
Charles Pigott 1a663d9efc Fix: Wrong variable was used in zlib detection 2019-03-03 18:04:36 +00:00
Charles Pigott 6535abb88b Codechange: Don't explicitly link with -lstdc++, causes linking issues with freetype on MinGW 2019-01-17 21:55:15 +00:00
glx ee84f98f1e Fix: deps calculation call could fail due to command line length 2019-01-16 19:27:06 +00:00
glx 5a09337c20 Fix: make reconfigure warning 2019-01-16 19:27:06 +00:00
Charles Pigott 4fbfe34e36 Codechange: Always compile with C++11 2019-01-05 17:39:11 +01:00
Charles Pigott 175829b8b5 Fix #6880: [OSX] Clang version detection 2019-01-05 17:39:11 +01:00
Charles Pigott 0e7af55ef7 Fix: [OSX] Check all search paths for iconv.h 2019-01-05 17:39:11 +01:00
Michael Lutz 32ce1ce347 Add: [OSX] Text layout using the native CoreText API.
By default, the native API will be used instead of ICU, but if ICU is
forced in using configure, it will take precedence.
2018-12-08 20:13:27 +01:00
Charles Pigott 0c619b7c4b Add: Fluidsynth music driver support (jmak) 2018-11-01 18:06:38 +01:00
glx d418d30947 Fix: dmusic detection 2018-07-24 21:39:21 +02:00
Jonathan G Rennison 8fc1517515 Codechange: detect native Apple clang correctly in config.lib #6773
Fixes: 00c1603256
2018-07-22 15:15:54 +01:00
Charles Pigott a3d1950b65 Codechange: Ensure that -lfreetype is always last when linking statically
Fixes weird bug with MinGW
2018-07-19 20:24:17 +02:00
glx 10d8b83038 Fix: library detection on MSYS2 file system 2018-06-17 21:56:46 +02:00
Michael Lutz cd966f3810 Add: [Win32] Uniscribe configure options for MinGW targets. 2018-06-06 21:37:09 +02:00
Owen Rudge 7bd2fa3516 Feature: Add XAudio2 driver 2018-05-17 15:06:37 +01:00
Patric Stout 0165fe1283
Codechange: remove endian_check in favour of __BYTE_ORDER macro (Rubidium) (#6762) 2018-04-29 19:01:28 +02:00
Patric Stout aef69443e7 Remove: WinCE support 2018-04-29 15:32:16 +02:00
Patric Stout 85adde7485 Remove: PSP support 2018-04-29 15:32:16 +02:00
Charles Pigott 00c1603256 Fix e614357: Ask the compiler who it is, instead of using symlinks (#6727)
This fixes #6723
2018-04-15 23:07:17 +02:00
Patric Stout aaf7e98c77
Fix 6ac0790: don't show the location to / failure of 'realpath' every time (#6719) 2018-04-14 22:05:39 +02:00
Patric Stout ae5628e903
Change: [Build] prioritize cc-build over build (based on patch by woutershep2) (#6716)
This closes #6414
2018-04-14 20:12:05 +02:00
Patric Stout f06061aa3b
Change: [Build] use flags set by env at the end, not at the start (based on patch by adf88) (#6715)
This closes #6433
2018-04-14 20:11:49 +02:00
Victor Sergienko 6ac079020b Fix e614357: MingW/MacOS/MacPorts don't have realpath, use reallink in those cases (#6710) 2018-04-12 23:46:09 +02:00
Charles Pigott e47f646cb3 Fix e61435774b: Some systems don't have realpath (#6705) 2018-04-11 22:50:23 +02:00
Charles Pigott e61435774b Fix: Resolve symlinks when working out which compiler is being used 2018-04-11 18:24:19 +02:00
Charles Pigott 4b1a42c703 Codechange: Remove outdated assumption about FreeBSD's C compiler 2018-04-11 18:24:19 +02:00
adf88 2aa806842f (svn r27902) -Feature [FS#6614]: Preserve PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR environment variables in config.cache file (just like other variabes CFLAGS, LDFLAGS etc.) so they can be resused when OpenTTD re-configures itself 2017-08-27 16:07:24 +00:00
michi_cc 8ad28478a3 (svn r27727) -Fix(-or-not) [FS#6295]: [OSX] Out-of-the-box compilation on newer OSX versions (dunn). 2017-01-08 17:00:18 +00:00
frosch 4342798ff5 (svn r27709) -Fix-ish: Silence some warnings. (adf88) 2016-12-25 13:26:15 +00:00
frosch 41e5e7626e (svn r27703) -Change [FS#6532]: [gcc] Wnarrowing and Wfree-nonheap-object do no longer trigger in gcc 4.9.2, so reenable them. 2016-12-22 12:59:46 +00:00
frosch ac6793dace (svn r27654) -Change: Enable C++11 for clang 3.3 (LordAro) 2016-09-05 19:11:01 +00:00
frosch b2fb19cc19 (svn r27623) -Fix (r27616) [FS#6492]: Missed two version checks, and messed one up. 2016-07-24 09:13:51 +00:00
frosch 1f4489c266 (svn r27616) -Codechange [FS#6487]: [Build] Change the GCC version detection so that it works with two-digit and truncated versions. 2016-07-17 11:10:21 +00:00
rubidium e956422f48 (svn r27606) -Change/fix: GCC6 defaults to C++14, but our configure limits it to C++0x just because we want to use features from C++0x (which are also in C++14), so use the C++ standard that's the GCC6 default 2016-06-27 17:54:05 +00:00
smatz 4bd149d05a (svn r27595) -Fix: prevent GCC 6 over-optimization 2016-05-31 19:33:33 +00:00
rubidium 9ea3e42768 (svn r27557) -Fix: bashism that caused different CFLAGS with bash vs dash 2016-05-11 18:38:44 +00:00
planetmaker e78ce08287 (svn r27472) -Change [FS#6401] (r20219): On Haiku use the appropriate system variable to obtain the include dir (aarroyoc) 2015-12-15 20:43:39 +00:00