Mykola Orliuk
65331599ec
BoostTestTargets.cmake: support CMake 3.15
...
Signed-off-by: James Turner <zakalawe@mac.com>
2019-10-17 09:41:35 +01:00
James Turner
ca97b4371b
Use alternative name for internal expat_config.h
...
Avoid clashes when system has expat installed.
2019-10-05 17:19:09 +01:00
Scott Giese
23f378cd93
Support VS 2019 - courtesy of Lars Toenning
2019-09-17 12:51:05 -05:00
Julian Smith
f407785f10
Fixes for building on OpenBSD.
2019-08-22 17:35:13 +01:00
Florent Rougon
319b59500c
Convert obsolete uses of get_filename_component(<var> <FileName> PATH)
...
In the context of get_filename_component(), PATH is a legacy alias for
DIRECTORY. Replace it with DIRECTORY, which is recommended[1] for
CMake versions > 2.8.11.
[1] https://cmake.org/cmake/help/latest/command/get_filename_component.html
2019-04-25 19:19:19 +02:00
Erik Hofman
7981809f36
Split up SIMD support in ENABLE_SIMD which enables sse2 support for the compiler and ENABLE_SIMD_CODE which enables the hand crafted SIMD math functions which defaults to OFF now since compilers have catched up on generating optimized vectorized SIMD code.
2019-01-15 10:36:23 +01:00
James Turner
ff52b55a25
Mac: Set CMake OS-X deployment target correctly
...
Also raises the OS-X min version to 10.9 for libc++ compat
2018-10-01 22:28:56 +01:00
James Turner
8dd0833993
Fix setting OPENAL_DIR on Windows
...
We need to set this in all cases, since AeonWave is requested by
default, but may not be available.
2018-08-23 19:11:50 +01:00
Scott Giese
05e3c29ee4
Support Visual Studio 2017
2018-06-22 22:19:49 -05:00
Erik Hofman
03156a6d94
Better AeoNWave detection
2018-06-05 09:39:51 +02:00
Erik Hofman
08258ee4b3
Detect AeonWave and if it is installed use it, otherwise fall back to OpenAL. Also let get_available_devices() use C++ strings instead of const char*
2018-06-02 14:06:15 +02:00
Florent Rougon
99c1dd8124
Add compiler options for GCC and Clang when CMAKE_BUILD_TYPE is Debug
...
When CMAKE_BUILD_TYPE is Debug and we are compiling with GCC, add the
following options to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS:
-O0 -fno-omit-frame-pointer -fno-inline
Ditto for Clang, except that -fno-inline-functions is used instead of
-fno-inline.
cf. thread starting at
https://sourceforge.net/p/flightgear/mailman/message/36295412/
2018-04-18 08:25:10 +02:00
Thomas Geymayer
af5833cbc5
cppbind: Refactor to use C++11+ type_traits
2018-01-21 13:21:55 +01:00
Alessandro Menti
e7356223bb
CMakeLists.txt: explicitly enable the CMP0067 (C/C++ standard flags) policy
...
Explicitly enable the CMP0067 policy to have try_compile use the correct
C/C++ standard flags; otherwise, CMake will default to not honoring those,
causing the C/C++ checks to be compiled with no standard flags and SimGear
to be compiled with them. This causes errors if we try to detect a new
prototype which is only present in C++14 and above).
2018-01-03 11:54:04 +01:00
Florent Rougon
7547ad0391
Improve formatting of the HAVE_WORKING_STD_REGEX test
...
Indent the test code in a nicer way and shorten it, taking advantage of
this guarantee from the C++ standard:
If control reaches the end of main without encountering a return
statement, the effect is that of executing return 0.
-> no need for "#include <cstdlib>" nor for "return EXIT_SUCCESS".
2018-01-03 00:34:52 +01:00
Thomas Geymayer
52b8f60953
Add std::index_sequence for C++11
...
Will be required for nasal::Ghost
2018-01-02 08:00:49 +01:00
Florent Rougon
ab1e2d49ab
Add a CMake check for a working <regex> implementation
...
Define HAVE_WORKING_STD_REGEX if, and only if <regex> is usable.
Normally, <regex> should be available and working in any compliant C++11
implementation, however at least g++ 4.8[1] lies about its C++11
compliance: its <regex> is utterly unusable, see [2] and [3] for
details.
[1] Which appears to be (precisely 4.8.5) the version shipped in
CentOS 7, and used on FlightGear's current Jenkins installation.
[2] https://stackoverflow.com/a/12665408/4756009
[3] https://sourceforge.net/p/flightgear/mailman/message/36170781/
2017-12-29 13:46:42 +01:00
Florent Rougon
7a374c43dc
Fix CMake test for std::isnan()
...
It used the wrong header; std::isnan() is defined in <cmath>.
2017-10-23 19:29:07 +02:00
James Turner
b342245619
Fix lib64 mode on Ubuntu 17.04 / CMake 3.7
2017-09-28 15:11:09 +01:00
gallaert
e0e6a29150
CMake fails to detect OpenRTI include files.
2017-08-16 21:15:20 +01:00
Erik Hofman
1446f559cc
Add -fPIC to make FlightGear's shared library linking for fgtestlib happy
2017-03-26 10:17:10 +02:00
Peter Sadrozinski
61525c555e
Disable GDAL, and compiling new terrain engine by default
2017-02-26 09:46:29 -05:00
Peter Sadrozinski
dad30b0cc2
alternative terrain engine - SGMesh utilizing pagedLOD
2017-02-25 19:17:55 -05:00
Erik Hofman
edec5bbc01
There is still a segmenttion fault issue with the AVX code, disable it until this is sorted out
2017-01-26 14:46:36 +01:00
Erik Hofman
33feb9a416
Move SIMD flags to CMAKE_CXX_FLAGS_RELEASE and fix a typo in the process
2017-01-20 14:56:15 +01:00
Erik Hofman
fbc0986fd8
Do not rely on SSE3, this is just a slight drawback
2017-01-06 15:10:52 +01:00
Erik Hofman
892579456d
add SSE support for the C compiler (gcc and clang)
2016-12-18 09:40:38 +01:00
Erik Hofman
4dde1d365c
MSVC 2013+ for 64-bit automatically sets /arch:SSE2 and doesn't recognise te option
2016-12-17 10:50:19 +01:00
Erik Hofman
175eddd1fa
Add the proper SSE options to Clang too
2016-12-16 11:05:03 +01:00
Erik Hofman
203db3d095
Enable SSE and SSE2 by default
2016-12-16 10:49:44 +01:00
James Turner
5ecc1ab6f2
Simplify timing code.
...
Assumes we have timegm on Unix, and use _mkgmtime on Windows.
This means we never need to use ftime() / timeb.h
2016-11-17 21:23:56 +01:00
James Turner
3009aadaa6
Simplify Boost auto-detection on MSVC.
2016-11-14 23:05:10 +01:00
James Turner
ee02750e95
Enforce VS2013/2015 requirement on Windows.
2016-11-13 14:57:39 +00:00
James Turner
f55007394e
Make more includes target-specific.
2016-11-13 14:57:21 +00:00
James Turner
a09630bcca
Cmake export fixes.
...
Should hopefully fix importing in FlightGear
2016-11-02 13:59:43 +00:00
James Turner
b44c70b3f4
Simplify isnan detection with C++11 library.
2016-10-30 22:49:38 +00:00
James Turner
51e7d95bf2
Require CMake 3.0, enable C++11
...
Let’s see what this breaks.
2016-10-24 22:52:51 +02:00
James Turner
202571386b
Exported package fix.
...
https://sourceforge.net/p/flightgear/codetickets/1892/
2016-10-20 20:26:51 +01:00
Florent Rougon
11c6e5bf04
Require zlib 1.2.4 or compatible
...
Commit 8277857827
relies on zlib's
gzoffset() function (not just offset(): that was a typo in the commit
message, sorry). This function appeared in zlib 1.2.4 (which dates from
2010). Enforce this requirement with CMake.
2016-10-19 21:17:54 +02:00
James Turner
7b2507cb19
Config changes to warn on older tools.
...
Warn on to-be-deprecated versions of Cmake, Visual Studio and GCC
2016-09-28 17:20:51 -05:00
James Turner
2e19aaaff9
Remove multi-arch workaround in CMake
...
Since we now require 2.8.11, we can rely on this bug being fixed.
2016-09-27 20:43:03 -05:00
James Turner
6b82b78c7c
Warn when OSG is not in UTF-8 mode.
...
This will become an error in the near future.
2016-08-15 22:38:00 +01:00
James Turner
8201301064
Improve Windows linkage.
...
When using a patched OSG, avoid /FORCE:MULTIPLE work-around.
2016-08-15 22:38:00 +01:00
James Turner
a31d1342d5
Simplify Aeonwave/OpenAL logic in Cmake slightly
2016-08-06 14:40:14 +01:00
Erik Hofman
f092f000fa
AeonWave is off by default
2016-08-05 10:57:20 +02:00
Erik Hofman
f3c3b7ec1b
Split include dirs
2016-07-29 12:35:20 +02:00
Erik Hofman
efe9648afa
Activate AeonWave by setting USE_AEONWAVE to ON
2016-07-21 13:05:40 +02:00
Erik Hofman
d12cd4945e
Get soundmgr_aeonwave in a compilig state
2016-07-21 13:05:40 +02:00
Bertrand Coconnier
5ab595b401
The Shlwapi library is now needed for the Windows build (required in simgear/misc/sg_dir.cxx which calls to PathIsDirectoryEmpty)
2016-07-03 14:36:22 +02:00
James Turner
516d76d41b
VS215 tweaks, warning fixes
2016-06-09 20:38:01 +01:00