Edward d'Auvergne
3d13c16973
TestSuite: CMake fix for variables missing from the parent scope.
...
The test suite CMake target variables have been shifted back into
test_suite/CMakeLists.txt. These are now correctly constructed and placed into
the parent scope where the test_suite target now resides.
2019-09-25 10:38:19 +02:00
Edward d'Auvergne
f6efeb3f34
Test Suite: Workaround for aberrant MS Windows CMake behaviour.
...
The add_custom_target() CMake function for the test_suite target has been
shifted from test_suite/CMakeLists.txt to the top level CMakeLists.txt file.
The variable setting CMake code required for this has also been shifted. This
allows for the same build command 'cmake --build . --target test_suite' to work
on all operating systems.
2019-09-17 21:50:52 +02:00
Julian Smith
f3d1135320
Various fixes for building on OpenBSD.
2019-09-04 10:55:43 +01:00
James Turner
309aaa794f
Flite always compiled now.
2019-06-03 16:51:08 +01:00
James Turner
84c5ea976b
Try to make UDev detection quieter
2019-05-28 09:14:49 -07:00
James Turner
396d9e4c3b
Soften the HID dependency, so we can build
...
without HID if the necessary 3rdparty libs are not found.
2019-05-28 17:09:58 +01:00
James Turner
7738f33306
Adjust FindDBus to use imported targets
...
This is necessary on macOS where DBus is typically installed using
Homebrew, and hence we need additional linker flags to find the
library. Using the PkgConfig::DBUS imported target handles all this
transparently, but then we need to define an imported target for
Windows to work.
2019-05-27 11:37:35 +01:00
James Turner
59ec70dfea
Default Swift to ON, adjust checks
...
Default Swift to on, and disable it if we fail to find DBus or
libEvent.
2019-05-24 11:57:01 +01:00
Lars Toenning
5a662d97fd
Fix broken libevent/dbus cmake module
2019-05-17 10:19:38 +02:00
James Turner
9d71d09072
Enable HID-input on Windows
2019-04-27 18:54:13 +01:00
Florent Rougon
b2d6acdd4d
CMake changes related to FGDATA_SRC_DIR and TRANSLATIONS_SRC_DIR
...
- When FGDATA_SRC_DIR isn't explicitly set by the user, set it to
${PROJECT_SOURCE_DIR}/../fgdata if this is a directory.
- When TRANSLATIONS_SRC_DIR isn't explicitly set by the user, look for
translations in ${FGDATA_SRC_DIR}/Translations instead of
${PROJECT_SOURCE_DIR}/../fgdata/Translations (i.e., honor the setting
of FGDATA_SRC_DIR for the sake of translation lookup).
This fixes the problem explained in [1] and [2].
[1] https://sourceforge.net/p/flightgear/mailman/message/36645499/
[2] b2274fbbed
/
2019-04-25 19:11:01 +02:00
Florent Rougon
b405bd47d0
Use the system CppUnit only when -DSYSTEM_CPPUNIT=ON is passed to CMake
...
According to the discussion around [1], using the system CppUnit library
is rarely useful but likely to cause problems (due to possible
incompatibilities between versions); that is, unless people doing so
really know what they are doing. For this reason, this commit changes
the CMake config logic as follows: the system CppUnit library is now
only used when explicitly asked for with -DSYSTEM_CPPUNIT=ON on the
CMake command line.
[1] https://sourceforge.net/p/flightgear/mailman/message/36636483/
2019-04-11 22:14:53 +02:00
Lars Toenning
85acefab95
Swift: initial support
2019-04-11 11:36:22 +01:00
Fernando García Liñán
e042364dd0
Compositor framework initial commit.
2019-02-04 18:03:38 +01:00
Erik Hofman
073e8927b9
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:37:37 +01:00
James Turner
aa6c4c758a
Mac: set CMake deployment target the right way
...
Necessary for building with the Mojavae 10.14 SDK. This also meant
bumping the min version to OS-X 10.9
2018-10-01 22:28:08 +01:00
James Turner
c537bbcfe7
Translations: detect missing lrelease explicitly.
...
This gives a clearer message and behaviour when Qt is installed but
the translation tools have been omitted.
2018-09-01 14:59:24 +01:00
James Turner
eaa2ed5cbb
Launcher translations enabled
...
Translations are build into the executable at compile time, providing
FGData is available during the build.
2018-08-27 13:20:23 +01:00
James Turner
3f5a0a47ad
Improved build.h generation (each build)
...
Use a custom_target to recursively invoke Cmake at build time; this
ensures the build ID and Git revision are always up to date.
2018-08-19 16:06:16 +01:00
James Turner
d534a5ba36
Move build-ID variables to their own header
...
This is to reduce rebuilding by changing version.h needlessly, since
only a few places use the build ID info.
2018-08-12 11:18:50 -07:00
Edward d'Auvergne
ba5b472705
TestSuite: Elimination of the now unused ENABLE_TESTS CMake variable.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
583461a812
TestSuite: Removal of the no longer used tests/ directory and code.
...
All tests have been migrated into the CppUnit infrastructure and the dummy
structures and FG_TESTLIB are no longer used.
2018-07-26 15:52:06 +02:00
James Turner
12dac05d38
Launcher: experimenting with SVG icons
2018-07-02 23:15:01 +01:00
James Turner
82f23e556e
Improve MSVC project generation
...
- set startup project to fgfs
- guess a value for PATH based on the build config
2018-06-16 13:03:23 +01:00
James Turner
9c4e4d411c
Defualt STGMerge to OFF for now
...
(Unbreak Windows)
2018-06-14 16:46:55 +01:00
Stuart Buchanan
42c3a366a3
Add ENABLE_STGMERGE option to build stgmerge tool
2018-06-12 20:16:35 +01:00
Erik Hofman
2edf1443d3
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:36 +02:00
James Turner
ee48fddd5e
Compute scrollbar extent using alternate props
...
This computation is close enough, and removes the need for private
headers.
2018-05-08 22:16:53 +01:00
James Turner
102fe04e91
Import PLIB JS code into FlightGear
...
- will permit bug-fixing which cannot occur for
official PLIB.
2018-05-03 00:02:09 +01:00
James Turner
50518862fe
Fix UDev detection for HID-input
2018-05-01 12:36:20 +01:00
James Turner
cf5e2b39f1
Handle CMake policy 0071 correctly
2018-05-01 12:35:55 +01:00
Florent Rougon
207703a931
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:27:10 +02:00
James Turner
921f29fbfe
HID-Input disambiguation tweaks
2018-04-09 22:03:49 +01:00
Edward d'Auvergne
98debee29c
TestSuite: Addition of the ENABLE_AUTOTESTING CMake option.
...
This allows for finer control of the test suite execution. The default of ON
will cause the test-suite to be executed after compiling the test_suite target.
2018-03-23 17:26:05 +01:00
Edward d'Auvergne
3c73600237
TestSuite: Addition of the SYSTEM_CPPUNIT option for distributors.
...
This is to allow for selecting between a system installed version of CppUnit or
the version bundled with flightgear.
2018-03-23 17:26:05 +01:00
Edward d'Auvergne
c9122ff84b
TestSuite: Converted the old tests/test-mktime.cxx program into a unit test.
...
This required many time related include files, functions, and variables to be
tested for via CMake, and converted to macros via #cmakedefine, so that they
would be automatically set for the test-mktime.cxx file.
2018-03-23 17:26:04 +01:00
Edward d'Auvergne
8b438cb97e
TestSuite: Initial support for a FlightGear test suite based on CppUnit.
...
This includes the basic CMake infrastructure for building and executing the test
suite. Four test categories have been added - unit, system/functional, GUI, and
simgear unit tests. The test suite is run by typing 'make test_suite'.
All of the fgfs sources are included in the new run_test_suite executable,
excluding the bootstrap routine and its main() function. The test suite
currently consists of a single dummy unit test for the NasalSys subsystem, and a
single demonstration simgear/props unit test.
2018-03-23 17:26:04 +01:00
James Turner
e920dc7509
Event input layer based on HID-Api
...
Thus runs in parallel to the existing implementation on Linux and Mac,
but can (soon) replace the Mac code and will run on Windows eventually.
2017-12-18 17:15:55 +00:00
James Turner
329f8f77ab
Fix broken private header detection
2017-11-09 15:34:44 +02:00
James Turner
7824571ec2
One more tweak for QtQuick header detection.
2017-10-04 12:07:12 +01:00
James Turner
e6402f505a
Help debugging missing QtQuick headers.
2017-10-04 11:12:36 +01:00
James Turner
0331180e4f
Fix for UCrt runtime packaging, from Erik
2017-10-02 12:30:56 +01:00
James Turner
948435a465
Fix Ubuntu lib64 handling / Cmake 3.7
2017-09-28 15:12:06 +01:00
James Turner
c47325183c
Simplify Qt version checks by requiring 5.4
2017-09-26 16:52:48 +01:00
James Turner
3a8d3506d6
Replace launcher aircraft list with QtQuick version
...
Improves various flow / layout / usability issues, since delegates
in ListView can do full event interaction.
2017-09-26 16:52:48 +01:00
Ganael Laplanche
e26df90ea4
FreeBSD: fix build when libudev is found
2017-07-06 23:02:52 +02:00
Alessandro Menti
f1ffe97991
Add CMake Linux install directives for the icons and the .desktop file
2017-05-24 22:47:01 +02:00
James Turner
3732930269
QML-driven settings UI.
2017-04-10 14:38:57 +01:00
James Turner
09fe744de0
Test helper CMake macro.
...
Also build the test code first, so tests can reside in source tree as
well as the test tree.
Finally, build local Sqlite with -fpic to give consistent linkage when
using either built-in or system sqlite.
2017-03-26 12:15:29 +01:00
James Turner
9e122eaf81
Partial testing framework.
...
Compile a useful subset of FG as a shared library, and add two basic
uses of this to exercise some Flightplan / RoutePath / navaid
functions.
The test framework can/will be expanded incrementally from here, this
is just a starting point.
2017-03-25 15:35:26 +00:00
James Turner
3653508412
Build- and run-time concept of developer mode.
...
Make a single Cmake value to expose the build type to code, and use
this to default a run-time ‘developer-mode’ property, which can be
over-ridden from the command line.
Use this to drive the different warning levels. Policies subject to
review, especially whether nightly builds should default to
developer mode or not.
2017-02-27 23:37:59 +00:00
Bertrand Coconnier
b7ec790426
Flags are carried over from SimGear, no need to specify them again.
2017-02-26 16:40:59 +01:00
Peter Sadrozinski
ec4b9f8542
Alternative terrain engine based on pagedLOD
...
- remove TileMgr from sub systems - add to btg terrain engine
2017-02-26 10:17:15 -05:00
James Turner
17fe0460a9
Previews displayed in the launcher.
2017-02-25 21:47:58 +00:00
Bertrand Coconnier
227087b3a8
Automatic detection of the ENABLE_SIMD setting for SG:
...
* Scrapped the previous code
* Instead use the symbol value imported from SG via the "CONFIG" mode of CMake find_package()
2017-02-07 00:04:56 +01:00
Bertrand Coconnier
93a8ab99ff
Fix to manage the case where SimGear include files are obtained via CMAKE_PREFIX_PATH
2017-02-05 10:27:30 +01:00
Bertrand Coconnier
044715ba05
CMake commands TRY_COMPILE and TRY_RUN are ignoring the instructions from INCLUDE_DIRECTORIES so the include directory has to specified ad hoc.
2017-02-04 22:53:22 +01:00
Bertrand Coconnier
80b8a298e1
Fix for when SimGear headers are not installed system wide (as is the case for Jenkins)
2017-02-04 21:53:18 +01:00
Bertrand Coconnier
4ab0b71fa8
The flag ENABLE_SIMD is now automatically carried over from SimGear. Mixed configurations between FG & SG could crash FG so this should not be allowed.
2017-02-04 20:21:19 +01:00
James Turner
80e45f6d9b
Different solution for FGQCanvas install
...
Move the install line back inside the subdir, but pull in the extra
config file so the install-bindir is defined.
2017-02-04 08:25:41 +01:00
Erik Hofman
e31d6b083e
Pick a default build type if none is specified
2017-01-26 14:48:35 +01:00
James Turner
15dbe1069d
Bump the minimum Qt version for Remote-canvas.
...
QByteArrayList needs 5.4, not 5.3
Also flip the default to off of building the remote-canvas, to avoid
people getting caught out.
2017-01-24 10:34:56 +00:00
Erik Hofman
40b6ca14e8
Move SIMD flags to CMAKE_CXX_FLAGS_RELEASE and fix a typo in the process
2017-01-20 14:56:50 +01:00
Erik Hofman
2408a3a28a
Do not rely on SSE3, this is just a slight drawback
2017-01-06 15:10:34 +01:00
James Turner
4a3ee6a74a
Relax base-package and SimGear version checks.
...
As discussed on the devel list, only require the major+minor versions
of FG+SG+data to match by default. If we encounter a situation on
a release branch where stronger checks are needed, it’s easy to
restore.
2017-01-05 11:09:41 +00:00
Florent Rougon
ea827f5677
Revert commits e1b65590
, 0b1c3568
and 72886289
...
Commit e1b65590cb
was:
Add the top-level options.xml and Translations directory moved out of
FGData
Commit 0b1c356837
was:
Make the FG installation prefix available to C++ code via config.h
Commit 7288628919
was:
Load --help output and translated strings from
$FG_INSTALL_PREFIX/share/flightgear
For the reasons of these revertings, see the thread at
<https://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/CAHtsj_eFdxLoXXoNq%3D3OKNRmyR6-FowFL97TASdQJx8N05Lmig%40mail.gmail.com/#msg35580548 >,
including <https://sourceforge.net/p/flightgear/mailman/message/35584363/ >,
<https://sourceforge.net/p/flightgear/mailman/message/35584803/ > and
<https://sourceforge.net/p/flightgear/mailman/message/35585421/ > (appearing
out-of-thread according to the SF mailing list archive...).
2017-01-05 06:53:53 +01:00
Florent Rougon
e1b65590cb
Add the top-level options.xml and Translations directory moved out of FGData
...
Copy them to ${CMAKE_INSTALL_PREFIX}/share/flightgear at installation time.
2016-12-29 11:33:19 +01:00
James Turner
106b62caa5
Make FGQCanvas a bit more optional.
2016-12-19 17:54:37 +00:00
Erik Hofman
7fe40ddb61
add SSE support for the C compiler (gcc and clang)
2016-12-18 09:40:46 +01:00
Erik Hofman
94ed70607b
MSVC 2013+ for 64-bit automatically sets /arch:SSE2 and doesn't recognise te option
2016-12-17 10:51:01 +01:00
Erik Hofman
c9b01b1d69
Enable SSE and SSE2 by default
2016-12-16 10:50:24 +01:00
Durk Talsma
b0d707c3f4
Merge branch 'next' of ssh://git.code.sf.net/p/flightgear/flightgear into next
2016-11-20 12:54:56 +01:00
Durk Talsma
f7424271a7
Some prepratory work for FGTraffic 2020: Added utils/traffic, a sample C++ source/header file, and the necessary changes in the CMakefile system to allow automatic compilation.
2016-11-20 12:52:21 +01:00
James Turner
5d7b65477f
Simplify MSVC detection to match SimGear.
2016-11-15 00:07:32 +01:00
James Turner
e2f7585d9c
Use a Cmake imported target for SimGear
2016-10-30 22:15:54 +00:00
James Turner
8e451a05f1
Use Cmake 3.0, and enable C++11 support.
2016-10-24 22:53:55 +02:00
James Turner
c4f584dadf
Rewrite Mac Event-Input code
2016-09-28 21:16:24 -05:00
James Turner
656326e48f
Kill off legacy Debian multiarch support
...
We require Cmake 2.8.11 now
2016-09-27 17:18:58 -05:00
James Turner
8f3a98d004
Optionally use fixed osgDB build for linking
...
This allows us to drop the /FORCE:MULTIPLE work-around.
2016-08-16 12:59:52 +01:00
Erik Hofman
34d8f64f4d
AeonWave is off by default
2016-08-05 10:58:05 +02:00
Erik Hofman
9ec4d7749f
Add support for AeonWave
2016-08-04 18:43:10 +02:00
Bertrand Coconnier
0a3756ea01
Added the dependency to Shlwapi for the Windows build (needed by SimGear).
2016-07-03 15:38:14 +02:00
James Turner
a0b7abf7ff
Remove FGAdmin
2016-06-15 22:31:47 +01:00
James Turner
ff222b108e
VS2015 tweaks
2016-06-09 16:19:34 +01:00
James Turner
e7c7c5b226
Fix dependency on ‘version’ file
2016-06-09 11:04:32 +01:00
James Turner
0da1fc574d
VS2015 compatability fixes.
2016-06-01 22:58:03 +01:00
James Turner
3c5340d98d
Merge /u/edauvergne/flightgear/ branch fdm_restoration into next
...
http://sourceforge.net/p/flightgear/flightgear/merge-requests/24/
2015-12-10 22:35:07 +00:00
James Turner
5bf59d58c4
On Mac, force the macon-min-version value
...
- Workaround for CMAKE_OSX_DEPLOYMENT_TARGET not behaving as it’s
supposed to reliably.
2015-12-08 20:47:02 +00:00
Edward d'Auvergne
acea7c422b
Reactivated the UIUC, LaRCsim, and special purpose FDMs.
...
As the FlightGear distribution ships aircraft based on these FDMs with each
release, the shipped FlightGear executables should therefore be able to handle
these aircraft. For example the unique ornithopter can only be flown with the
UIUC FDM, hence it is available for download but will be non-functional for most
users.
This partly reverts commit e819a4aaa4
from Nov 1,
2011 which deactivated the compilation of these in the CMakeLists.txt file.
Signed-off-by: Edward d'Auvergne <edward@nmr-relax.com>
2015-12-05 14:56:42 +01:00
James Turner
2314ccfe13
Developer-warnings
...
- make some existing warnings developer-mode only
- add a warning about legacy aircraft path usage
2015-11-13 22:13:44 +00:00
James Turner
3e64e276d7
Remove OldGNUInstallDirs helper
...
- we require CMake 2.8.11 now
2015-11-13 22:13:44 +00:00
James Turner
980a98b176
Silence more Clang (Xcode 7) warnings
2015-09-27 20:40:34 -05:00
James Turner
53b41d0284
Drop explicit SDK setting on Mac
2015-09-20 19:44:35 -05:00
James Turner
54de0e9206
RPATH handling for Mac.
2015-06-08 10:37:26 +01:00
James Turner
c98f8e4ac1
Explicit Mac SDK for the moment.
2015-04-11 21:58:55 +01:00
Rebecca N. Palmer
14405fe2e3
Fix compile with CMake 3.2.1, by Kevin Seroux
...
Explicitly link X11, as this no longer comes with OpenGL
2015-04-03 19:15:52 +01:00
James Turner
06a260822c
Make 3.2.1 fix: make thread check platform specific.
2015-03-17 23:33:57 +00:00
James Turner
fe25c42408
Make flag Mac specific.
2015-03-17 23:27:25 +00:00
James Turner
a6b5ab7c74
Fix for Cmake 3.2.1 Mac SDK handling
2015-03-17 22:33:54 +00:00
Clément de l'Hamaide
ba386b314e
Increase required CMake version
...
Qt5 require CMake 2.8.11 or later http://doc.qt.io/qt-5/cmake-manual.html
2015-03-14 18:09:19 +01:00