From 89591fe4ed480cb1da1ea162951d53e53b7bc039 Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Mon, 8 Nov 2010 22:57:56 +0000 Subject: [PATCH 01/21] Improving the Win32 installer. --- package/Win-NSIS/fg-install-header.bmp | Bin 0 -> 332134 bytes package/Win-NSIS/flightgear-nightly.nsi | 21 ++++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 package/Win-NSIS/fg-install-header.bmp diff --git a/package/Win-NSIS/fg-install-header.bmp b/package/Win-NSIS/fg-install-header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..42c2cbf26e5e23cca692288c091d4ab0c220e190 GIT binary patch literal 332134 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 literal 0 HcmV?d00001 diff --git a/package/Win-NSIS/flightgear-nightly.nsi b/package/Win-NSIS/flightgear-nightly.nsi index 08155b3d7..77a5f9753 100644 --- a/package/Win-NSIS/flightgear-nightly.nsi +++ b/package/Win-NSIS/flightgear-nightly.nsi @@ -27,18 +27,29 @@ AutoCloseWindow true !define ThirdPartyBinDir "3rdParty\bin" +!define MUI_ICON "flightgear\projects\VC90\flightgear.ico" +!define MUI_UNICON "flightgear\projects\VC90\flightgear.ico" + !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_RIGHT -;!define MUI_HEADERIMAGE_BITMAP "logo.bmp" ; optional -!define MUI_ABORTWARNING +!define MUI_HEADERIMAGE_BITMAP "flightgear\package\Win-NSIS\fg-install-header.bmp" ; optional + + + ;!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" ;!define MUI_UNWELCOMEFINISHPAGE_BITMAP "welcome.bmp" !insertmacro MUI_PAGE_WELCOME -;!insertmacro MUI_PAGE_LICENSE "License.txt" +; include GPL license page +!insertmacro MUI_PAGE_LICENSE "flightgear\Copying" !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES +!define MUI_FINISHPAGE_RUN $INSTDIR\fgrun.exe +!define MUI_FINISHPAGE_RUN_TEXT "Run FlightGear now" +!insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES @@ -83,9 +94,9 @@ Section "" ;No components page, name is not important File ${OSGPluginsDir}\osgdb_txf.dll + Exec '"$INSTDIR\fgrun.exe" --silent --fg-exe="$INSTDIR\fgfs.exe" --ts-exe="$INSTDIR\terrasync.exe" ' - - CreateShortCut "$SMPROGRAMS\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" + CreateShortCut "$SMPROGRAMS\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" WriteUninstaller "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "DisplayName" "FlightGear Nightly" From 0821eb549bf4704d16c71d2763082810682782ce Mon Sep 17 00:00:00 2001 From: unknown <James@.(none)> Date: Tue, 9 Nov 2010 18:57:47 +0000 Subject: [PATCH 02/21] Including missing OSG plugins, use LZMA compression --- package/Win-NSIS/flightgear-nightly.nsi | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/package/Win-NSIS/flightgear-nightly.nsi b/package/Win-NSIS/flightgear-nightly.nsi index 77a5f9753..55e5c151f 100644 --- a/package/Win-NSIS/flightgear-nightly.nsi +++ b/package/Win-NSIS/flightgear-nightly.nsi @@ -11,6 +11,10 @@ Name "FlightGear Nightly" OutFile fgfs_win32_nightly.exe +; use LZMA for best compression +SetCompressor /FINAL /SOLID lzma +SetCompressorDictSize 64 + InstallDir $PROGRAMFILES\FlightGear-nightly ; Request admin privileges for Windows Vista @@ -88,6 +92,9 @@ Section "" ;No components page, name is not important SetOutPath $INSTDIR\osgPlugins-${OSGVersion} File ${OSGPluginsDir}\osgdb_ac.dll + File ${OSGPluginsDir}\osgdb_osg.dll + File ${OSGPluginsDir}\osgdb_3ds.dll + File ${OSGPluginsDir}\osgdb_mdl.dll File ${OSGPluginsDir}\osgdb_jpeg.dll File ${OSGPluginsDir}\osgdb_rgb.dll File ${OSGPluginsDir}\osgdb_png.dll @@ -96,7 +103,8 @@ Section "" ;No components page, name is not important Exec '"$INSTDIR\fgrun.exe" --silent --fg-exe="$INSTDIR\fgfs.exe" --ts-exe="$INSTDIR\terrasync.exe" ' - CreateShortCut "$SMPROGRAMS\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" + CreateDirectory "$SMPROGRAMS\FlightGear" + CreateShortCut "$SMPROGRAMS\FlightGear\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" WriteUninstaller "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "DisplayName" "FlightGear Nightly" @@ -116,7 +124,9 @@ Section "Uninstall" SetShellVarContext all - Delete "$SMPROGRAMS\FlightGear-nightly.lnk" + Delete "$SMPROGRAMS\FlightGear\FlightGear-nightly.lnk" + ; only delete the FlightGear group if it's empty + RMDir "$SMPROGRAMS\FlightGear" RMDir /r "$INSTDIR" From d6dfecc927af06a45a8ede440853b7e9dfee6188 Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Tue, 9 Nov 2010 19:09:05 +0000 Subject: [PATCH 03/21] Include some missed osg plugins, thanks Fred. --- package/mac/build-mac-nightly-dmg.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index 04fb5568f..e3517ef12 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -3,7 +3,7 @@ require 'ERB' $osgLibs = ['osgFX', 'osgParticle', 'osg', 'osgGA', 'osgText', 'osgUtil', 'osgSim', 'osgViewer', 'osgDB'] -$osgPlugins = ['ac', 'osg', 'freetype', 'qt', 'imageio', 'rgb', 'txf'] +$osgPlugins = ['ac', 'osg', 'freetype', 'qt', 'imageio', 'rgb', 'txf', 'mdl', '3ds'] def runOsgVersion(option) env = "export DYLD_LIBRARY_PATH=#{Dir.pwd}/dist/lib" From e782471c15576d33c3cd488e808e35ba6fb61b85 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier <fredfgfs01@free.fr> Date: Tue, 9 Nov 2010 22:13:26 +0100 Subject: [PATCH 04/21] Fix a typo --- docs-mini/README.MSVC | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-mini/README.MSVC b/docs-mini/README.MSVC index 6d523315c..4e3e835b6 100644 --- a/docs-mini/README.MSVC +++ b/docs-mini/README.MSVC @@ -93,8 +93,8 @@ Typical setup should decompose into the following steps : It is also possible to compile a Debug version. This is only useful when hacking the code because a Debug version is way slower than the Release one. -The 64bit build is only available to people having the Professional edition of Visual Studio 2008. In that case, 14. above should be : - 14. Add <any_directory_on_any_drive>/install/msvc90-64/OpenSceneGraph/bin and <any_directory_on_any_drive>/3rdParty.x64/bin to your PATH environment variable +The 64bit build is only available to people having the Professional edition of Visual Studio 2008. In that case, 15. above should be : + 15. Add <any_directory_on_any_drive>/install/msvc90-64/OpenSceneGraph/bin and <any_directory_on_any_drive>/3rdParty.x64/bin to your PATH environment variable When the manual build works, it is possible to start it from the command line. This is useful when setting up a build server or automating the process of retrieving the code and building From 9242f3a083ac53486053cb41fe36f08c3370e02b Mon Sep 17 00:00:00 2001 From: Torsten Dreyer <Torsten@t3r.de> Date: Wed, 10 Nov 2010 22:19:25 +0100 Subject: [PATCH 05/21] Make startup.nas obsolete This is an ugly hack for automatic runway selection on startup based on metar data. It's main intention is to make startup.nas obsolete and to guarantee the same runway selection logic as used for AI traffic. Calling presets-commit from startup.nas during the initialization sequence caused occasional trouble and sometimes, the AI traffic operated on the opposite runway. --- src/Main/fg_init.cxx | 2 +- src/Main/main.cxx | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 65be585e4..e9592c14e 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -820,7 +820,7 @@ static void fgApplyStartOffset(const SGGeod& aStartPos, double aHeading, double } // Set current_options lon/lat given an airport id and heading (degrees) -static bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ) { +bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ) { if ( id.empty() ) return false; diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 0113c1b18..9372f9cc9 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -46,7 +46,7 @@ #include <simgear/structure/event_mgr.hxx> #include <simgear/props/AtomicChangeListener.hxx> #include <simgear/props/props.hxx> -#include <simgear/timing/sg_time.hxx> +//#include <simgear/timing/sg_time.hxx> #include <simgear/math/sg_random.h> #include <simgear/io/raw_socket.hxx> @@ -469,8 +469,29 @@ static void fgIdleFunction ( void ) { "Subsystem initialization failed ..." ); exit(-1); } - fgSplashProgress("setting up time & renderer"); + // Torsten Dreyer: + // ugly hack for automatic runway selection on startup based on + // metar data. Makes startup.nas obsolete and guarantees the same + // runway selection as for AI traffic. However, this code belongs to + // somewhere(?) else - if I only new where... + if( true == fgGetBool( "/environment/metar/valid" ) ) { + // the realwx_ctrl fetches metar in the foreground on init, + // If it was able to fetch a metar or one was given on the commandline, + // the valid flag is set here, otherwise it is false + double hdg = fgGetDouble( "/environment/metar/base-wind-dir-deg", 9999.0 ); + string apt = fgGetString( "/sim/startup/options/airport" ); + string rwy = fgGetString( "/sim/startup/options/runway" ); + double strthdg = fgGetDouble( "/sim/startup/options/heading-deg", 9999.0 ); + bool onground = fgGetBool( "/sim/presets/onground", false ); + // don't check for wind-speed < 1kt, this belongs to the runway-selection code + // the other logic is taken from former startup.nas + if( hdg < 360.0 && apt.length() > 0 && strthdg > 360.0 && rwy.length() == 0 && onground ) { + extern bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ); + fgSetPosFromAirportIDandHdg( apt, hdg ); + } + } + fgSplashProgress("setting up time & renderer"); } else if ( idle_state == 8 ) { idle_state = 1000; From 0917a5e062b531963f9f3d16bb0f95f769d34f61 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer <Torsten@t3r.de> Date: Wed, 10 Nov 2010 23:28:07 +0100 Subject: [PATCH 06/21] Bugfix: no automatic runway selection with --parkpos= --- src/Main/main.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 9372f9cc9..8dbd12642 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -483,10 +483,11 @@ static void fgIdleFunction ( void ) { string apt = fgGetString( "/sim/startup/options/airport" ); string rwy = fgGetString( "/sim/startup/options/runway" ); double strthdg = fgGetDouble( "/sim/startup/options/heading-deg", 9999.0 ); + string parkpos = fgGetString( "/sim/presets/parkpos" ); bool onground = fgGetBool( "/sim/presets/onground", false ); // don't check for wind-speed < 1kt, this belongs to the runway-selection code // the other logic is taken from former startup.nas - if( hdg < 360.0 && apt.length() > 0 && strthdg > 360.0 && rwy.length() == 0 && onground ) { + if( hdg < 360.0 && apt.length() > 0 && strthdg > 360.0 && rwy.length() == 0 && onground && parkpos.length() == 0 ) { extern bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ); fgSetPosFromAirportIDandHdg( apt, hdg ); } From 0a5e86f4e61a80ff19b78de011852a7b60250b7a Mon Sep 17 00:00:00 2001 From: Christian Schmitt <chris@ilovelinux.de> Date: Thu, 11 Nov 2010 00:55:42 +0100 Subject: [PATCH 07/21] remove old .cvsignore files --- .cvsignore | 24 ------------------- man/.cvsignore | 8 ------- projects/VC90/.cvsignore | 5 ---- projects/VC90/FlightGear/.cvsignore | 3 --- projects/VC90/GPSsmooth/.cvsignore | 3 --- projects/VC90/MIDGsmooth/.cvsignore | 3 --- projects/VC90/UGsmooth/.cvsignore | 3 --- projects/VC90/fgadmin/.cvsignore | 3 --- projects/VC90/fgjs/.cvsignore | 3 --- projects/VC90/fgviewer/.cvsignore | 3 --- projects/VC90/metar/.cvsignore | 3 --- projects/VC90/terrasync/.cvsignore | 3 --- projects/VC90/xmlgrep/.cvsignore | 3 --- projects/VC90/yasim/.cvsignore | 3 --- scripts/.cvsignore | 2 -- scripts/debug/.cvsignore | 5 ---- scripts/example/.cvsignore | 2 -- scripts/java/.cvsignore | 2 -- scripts/java/FGClient/.cvsignore | 2 -- scripts/java/FGClient/docs/.cvsignore | 2 -- scripts/java/FGClient/docs/javadoc/.cvsignore | 2 -- scripts/java/FGClient/src/.cvsignore | 2 -- scripts/perl/.cvsignore | 2 -- scripts/perl/dafif/.cvsignore | 2 -- scripts/perl/examples/.cvsignore | 2 -- scripts/perl/scenery/.cvsignore | 2 -- scripts/python/.cvsignore | 2 -- src/.cvsignore | 2 -- src/AIModel/.cvsignore | 3 --- src/ATC/.cvsignore | 3 --- src/ATCDCL/.cvsignore | 2 -- src/Aircraft/.cvsignore | 3 --- src/Airports/.cvsignore | 6 ----- src/Autopilot/.cvsignore | 3 --- src/Cockpit/.cvsignore | 3 --- src/Cockpit/built_in/.cvsignore | 3 --- src/Environment/.cvsignore | 3 --- src/FDM/.cvsignore | 5 ---- src/FDM/ExternalNet/.cvsignore | 3 --- src/FDM/ExternalPipe/.cvsignore | 3 --- src/FDM/JSBSim/.cvsignore | 5 ---- src/FDM/JSBSim/initialization/.cvsignore | 3 --- src/FDM/JSBSim/input_output/.cvsignore | 3 --- src/FDM/JSBSim/math/.cvsignore | 3 --- src/FDM/JSBSim/models/.cvsignore | 3 --- src/FDM/JSBSim/models/atmosphere/.cvsignore | 3 --- .../JSBSim/models/flight_control/.cvsignore | 3 --- src/FDM/JSBSim/models/propulsion/.cvsignore | 3 --- src/FDM/LaRCsim/.cvsignore | 3 --- src/FDM/SP/.cvsignore | 3 --- src/FDM/UIUCModel/.cvsignore | 3 --- src/FDM/YASim/.cvsignore | 5 ---- src/GUI/.cvsignore | 4 ---- src/Include/.cvsignore | 9 ------- src/Input/.cvsignore | 5 ---- src/Instrumentation/.cvsignore | 3 --- src/Instrumentation/HUD/.cvsignore | 3 --- src/Instrumentation/KLN89/.cvsignore | 3 --- src/Main/.cvsignore | 7 ------ src/Model/.cvsignore | 3 --- src/MultiPlayer/.cvsignore | 3 --- src/Navaids/.cvsignore | 4 ---- src/Network/.cvsignore | 3 --- src/Scenery/.cvsignore | 3 --- src/Scripting/.cvsignore | 3 --- src/Sound/.cvsignore | 3 --- src/Systems/.cvsignore | 3 --- src/Time/.cvsignore | 3 --- src/Traffic/.cvsignore | 3 --- tests/.cvsignore | 11 --------- utils/.cvsignore | 2 -- utils/GPSsmooth/.cvsignore | 6 ----- utils/Modeller/.cvsignore | 7 ------ utils/TerraSync/.cvsignore | 4 ---- utils/fgadmin/.cvsignore | 8 ------- utils/fgadmin/src/.cvsignore | 6 ----- utils/fgviewer/.cvsignore | 4 ---- utils/gui/.cvsignore | 4 ---- utils/js_server/.cvsignore | 4 ---- utils/xmlgrep/.cvsignore | 4 ---- 80 files changed, 306 deletions(-) delete mode 100644 .cvsignore delete mode 100644 man/.cvsignore delete mode 100644 projects/VC90/.cvsignore delete mode 100644 projects/VC90/FlightGear/.cvsignore delete mode 100644 projects/VC90/GPSsmooth/.cvsignore delete mode 100644 projects/VC90/MIDGsmooth/.cvsignore delete mode 100644 projects/VC90/UGsmooth/.cvsignore delete mode 100644 projects/VC90/fgadmin/.cvsignore delete mode 100644 projects/VC90/fgjs/.cvsignore delete mode 100644 projects/VC90/fgviewer/.cvsignore delete mode 100644 projects/VC90/metar/.cvsignore delete mode 100644 projects/VC90/terrasync/.cvsignore delete mode 100644 projects/VC90/xmlgrep/.cvsignore delete mode 100644 projects/VC90/yasim/.cvsignore delete mode 100644 scripts/.cvsignore delete mode 100644 scripts/debug/.cvsignore delete mode 100644 scripts/example/.cvsignore delete mode 100644 scripts/java/.cvsignore delete mode 100644 scripts/java/FGClient/.cvsignore delete mode 100644 scripts/java/FGClient/docs/.cvsignore delete mode 100644 scripts/java/FGClient/docs/javadoc/.cvsignore delete mode 100644 scripts/java/FGClient/src/.cvsignore delete mode 100644 scripts/perl/.cvsignore delete mode 100644 scripts/perl/dafif/.cvsignore delete mode 100644 scripts/perl/examples/.cvsignore delete mode 100644 scripts/perl/scenery/.cvsignore delete mode 100644 scripts/python/.cvsignore delete mode 100644 src/.cvsignore delete mode 100644 src/AIModel/.cvsignore delete mode 100644 src/ATC/.cvsignore delete mode 100644 src/ATCDCL/.cvsignore delete mode 100644 src/Aircraft/.cvsignore delete mode 100644 src/Airports/.cvsignore delete mode 100644 src/Autopilot/.cvsignore delete mode 100644 src/Cockpit/.cvsignore delete mode 100644 src/Cockpit/built_in/.cvsignore delete mode 100644 src/Environment/.cvsignore delete mode 100644 src/FDM/.cvsignore delete mode 100644 src/FDM/ExternalNet/.cvsignore delete mode 100644 src/FDM/ExternalPipe/.cvsignore delete mode 100644 src/FDM/JSBSim/.cvsignore delete mode 100644 src/FDM/JSBSim/initialization/.cvsignore delete mode 100644 src/FDM/JSBSim/input_output/.cvsignore delete mode 100644 src/FDM/JSBSim/math/.cvsignore delete mode 100644 src/FDM/JSBSim/models/.cvsignore delete mode 100644 src/FDM/JSBSim/models/atmosphere/.cvsignore delete mode 100644 src/FDM/JSBSim/models/flight_control/.cvsignore delete mode 100644 src/FDM/JSBSim/models/propulsion/.cvsignore delete mode 100644 src/FDM/LaRCsim/.cvsignore delete mode 100644 src/FDM/SP/.cvsignore delete mode 100644 src/FDM/UIUCModel/.cvsignore delete mode 100644 src/FDM/YASim/.cvsignore delete mode 100644 src/GUI/.cvsignore delete mode 100644 src/Include/.cvsignore delete mode 100644 src/Input/.cvsignore delete mode 100644 src/Instrumentation/.cvsignore delete mode 100644 src/Instrumentation/HUD/.cvsignore delete mode 100644 src/Instrumentation/KLN89/.cvsignore delete mode 100644 src/Main/.cvsignore delete mode 100644 src/Model/.cvsignore delete mode 100644 src/MultiPlayer/.cvsignore delete mode 100644 src/Navaids/.cvsignore delete mode 100644 src/Network/.cvsignore delete mode 100644 src/Scenery/.cvsignore delete mode 100644 src/Scripting/.cvsignore delete mode 100644 src/Sound/.cvsignore delete mode 100644 src/Systems/.cvsignore delete mode 100644 src/Time/.cvsignore delete mode 100644 src/Traffic/.cvsignore delete mode 100644 tests/.cvsignore delete mode 100644 utils/.cvsignore delete mode 100644 utils/GPSsmooth/.cvsignore delete mode 100644 utils/Modeller/.cvsignore delete mode 100644 utils/TerraSync/.cvsignore delete mode 100644 utils/fgadmin/.cvsignore delete mode 100644 utils/fgadmin/src/.cvsignore delete mode 100644 utils/fgviewer/.cvsignore delete mode 100644 utils/gui/.cvsignore delete mode 100644 utils/js_server/.cvsignore delete mode 100644 utils/xmlgrep/.cvsignore diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 9cc99648f..000000000 --- a/.cvsignore +++ /dev/null @@ -1,24 +0,0 @@ -Makefile -Makefile.in -TODO -TODO.gui -aclocal.m4 -autom4te.cache -confdefs.h -config.cache -config.log -config.status -configure -confstatKYCAXU -do-config.sh -gmon.out -www -.cdtproject -.project -config.guess -config.sub -depcomp -INSTALL -install-sh -missing -mkinstalldirs diff --git a/man/.cvsignore b/man/.cvsignore deleted file mode 100644 index 3432b1931..000000000 --- a/man/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -Makefile -Makefile.in -est-epsilon.1 -fgfs.1 -fgjs.1 -gl-info.1 -js_demo.1 -pstest.1 diff --git a/projects/VC90/.cvsignore b/projects/VC90/.cvsignore deleted file mode 100644 index 56ad71b90..000000000 --- a/projects/VC90/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -FlightGear.ncb -FlightGear.suo -Win32 -x64 -publish \ No newline at end of file diff --git a/projects/VC90/FlightGear/.cvsignore b/projects/VC90/FlightGear/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/FlightGear/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/GPSsmooth/.cvsignore b/projects/VC90/GPSsmooth/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/GPSsmooth/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/MIDGsmooth/.cvsignore b/projects/VC90/MIDGsmooth/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/MIDGsmooth/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/UGsmooth/.cvsignore b/projects/VC90/UGsmooth/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/UGsmooth/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/fgadmin/.cvsignore b/projects/VC90/fgadmin/.cvsignore deleted file mode 100644 index faf5c5a36..000000000 --- a/projects/VC90/fgadmin/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -Win32 -x64 \ No newline at end of file diff --git a/projects/VC90/fgjs/.cvsignore b/projects/VC90/fgjs/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/fgjs/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/fgviewer/.cvsignore b/projects/VC90/fgviewer/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/fgviewer/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/metar/.cvsignore b/projects/VC90/metar/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/metar/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/terrasync/.cvsignore b/projects/VC90/terrasync/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/terrasync/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/xmlgrep/.cvsignore b/projects/VC90/xmlgrep/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/xmlgrep/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/yasim/.cvsignore b/projects/VC90/yasim/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/yasim/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/scripts/.cvsignore b/scripts/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/debug/.cvsignore b/scripts/debug/.cvsignore deleted file mode 100644 index ea97d080c..000000000 --- a/scripts/debug/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -Makefile -Makefile.in -core* -fgfs.supp -.gdbinit diff --git a/scripts/example/.cvsignore b/scripts/example/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/example/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/.cvsignore b/scripts/java/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/.cvsignore b/scripts/java/FGClient/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/docs/.cvsignore b/scripts/java/FGClient/docs/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/docs/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/docs/javadoc/.cvsignore b/scripts/java/FGClient/docs/javadoc/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/docs/javadoc/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/src/.cvsignore b/scripts/java/FGClient/src/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/src/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/.cvsignore b/scripts/perl/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/dafif/.cvsignore b/scripts/perl/dafif/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/dafif/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/examples/.cvsignore b/scripts/perl/examples/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/examples/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/scenery/.cvsignore b/scripts/perl/scenery/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/scenery/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/python/.cvsignore b/scripts/python/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/python/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/.cvsignore b/src/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/src/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/AIModel/.cvsignore b/src/AIModel/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/AIModel/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/ATC/.cvsignore b/src/ATC/.cvsignore deleted file mode 100644 index 4620540ae..000000000 --- a/src/ATC/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile.in -Makefile \ No newline at end of file diff --git a/src/ATCDCL/.cvsignore b/src/ATCDCL/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/src/ATCDCL/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/Aircraft/.cvsignore b/src/Aircraft/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Aircraft/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Airports/.cvsignore b/src/Airports/.cvsignore deleted file mode 100644 index e43cffa22..000000000 --- a/src/Airports/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -Makefile -Makefile.in -calc_loc -genrunways -gensimple diff --git a/src/Autopilot/.cvsignore b/src/Autopilot/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Autopilot/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Cockpit/.cvsignore b/src/Cockpit/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Cockpit/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Cockpit/built_in/.cvsignore b/src/Cockpit/built_in/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Cockpit/built_in/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Environment/.cvsignore b/src/Environment/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Environment/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/.cvsignore b/src/FDM/.cvsignore deleted file mode 100644 index b7054359f..000000000 --- a/src/FDM/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -engine -pstest diff --git a/src/FDM/ExternalNet/.cvsignore b/src/FDM/ExternalNet/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/ExternalNet/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/ExternalPipe/.cvsignore b/src/FDM/ExternalPipe/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/ExternalPipe/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/.cvsignore b/src/FDM/JSBSim/.cvsignore deleted file mode 100644 index 22ca305bc..000000000 --- a/src/FDM/JSBSim/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -config.h -testJSBsim \ No newline at end of file diff --git a/src/FDM/JSBSim/initialization/.cvsignore b/src/FDM/JSBSim/initialization/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/initialization/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/input_output/.cvsignore b/src/FDM/JSBSim/input_output/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/input_output/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/math/.cvsignore b/src/FDM/JSBSim/math/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/math/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/.cvsignore b/src/FDM/JSBSim/models/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/atmosphere/.cvsignore b/src/FDM/JSBSim/models/atmosphere/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/atmosphere/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/flight_control/.cvsignore b/src/FDM/JSBSim/models/flight_control/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/flight_control/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/propulsion/.cvsignore b/src/FDM/JSBSim/models/propulsion/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/propulsion/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/LaRCsim/.cvsignore b/src/FDM/LaRCsim/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/LaRCsim/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/SP/.cvsignore b/src/FDM/SP/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/SP/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/UIUCModel/.cvsignore b/src/FDM/UIUCModel/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/UIUCModel/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/YASim/.cvsignore b/src/FDM/YASim/.cvsignore deleted file mode 100644 index 77eabd7e5..000000000 --- a/src/FDM/YASim/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -proptest -yasim diff --git a/src/GUI/.cvsignore b/src/GUI/.cvsignore deleted file mode 100644 index bc52d6aa9..000000000 --- a/src/GUI/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -layout-test diff --git a/src/Include/.cvsignore b/src/Include/.cvsignore deleted file mode 100644 index f67623aed..000000000 --- a/src/Include/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -.deps -Makefile -Makefile.in -config.h -config.h.in -stamp-h -stamp-h.in -stamp-h1 -version.h diff --git a/src/Input/.cvsignore b/src/Input/.cvsignore deleted file mode 100644 index 4bada08cf..000000000 --- a/src/Input/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -fgjs -js_demo \ No newline at end of file diff --git a/src/Instrumentation/.cvsignore b/src/Instrumentation/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Instrumentation/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Instrumentation/HUD/.cvsignore b/src/Instrumentation/HUD/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Instrumentation/HUD/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Instrumentation/KLN89/.cvsignore b/src/Instrumentation/KLN89/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Instrumentation/KLN89/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Main/.cvsignore b/src/Main/.cvsignore deleted file mode 100644 index 184773b7b..000000000 --- a/src/Main/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -.deps -Makefile -Makefile.in -fgfs -metar -runfgfs -runfgfs.bat diff --git a/src/Model/.cvsignore b/src/Model/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Model/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/MultiPlayer/.cvsignore b/src/MultiPlayer/.cvsignore deleted file mode 100644 index 4620540ae..000000000 --- a/src/MultiPlayer/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile.in -Makefile \ No newline at end of file diff --git a/src/Navaids/.cvsignore b/src/Navaids/.cvsignore deleted file mode 100644 index bff55b074..000000000 --- a/src/Navaids/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -testnavs diff --git a/src/Network/.cvsignore b/src/Network/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Network/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Scenery/.cvsignore b/src/Scenery/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Scenery/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Scripting/.cvsignore b/src/Scripting/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Scripting/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Sound/.cvsignore b/src/Sound/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Sound/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Systems/.cvsignore b/src/Systems/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Systems/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Time/.cvsignore b/src/Time/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Time/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Traffic/.cvsignore b/src/Traffic/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Traffic/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/tests/.cvsignore b/tests/.cvsignore deleted file mode 100644 index dd179f754..000000000 --- a/tests/.cvsignore +++ /dev/null @@ -1,11 +0,0 @@ -.deps -Makefile -Makefile.in -est-epsilon -al-info -gl-info -test-env-map -test-gethostname -test-mktime -test-text -test-up diff --git a/utils/.cvsignore b/utils/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/utils/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/utils/GPSsmooth/.cvsignore b/utils/GPSsmooth/.cvsignore deleted file mode 100644 index 39d505c2d..000000000 --- a/utils/GPSsmooth/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.deps -GPSsmooth -MIDGsmooth -UGsmooth diff --git a/utils/Modeller/.cvsignore b/utils/Modeller/.cvsignore deleted file mode 100644 index 2e2ddde8d..000000000 --- a/utils/Modeller/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -.deps -3dconvert -Makefile -Makefile.in -animassist -threedconvert -normalmap diff --git a/utils/TerraSync/.cvsignore b/utils/TerraSync/.cvsignore deleted file mode 100644 index 739737bd9..000000000 --- a/utils/TerraSync/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -terrasync diff --git a/utils/fgadmin/.cvsignore b/utils/fgadmin/.cvsignore deleted file mode 100644 index d0a8de4d1..000000000 --- a/utils/fgadmin/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -Makefile -Makefile.in -aclocal.m4 -autom4te.cache -build -configure -config.log -config.status diff --git a/utils/fgadmin/src/.cvsignore b/utils/fgadmin/src/.cvsignore deleted file mode 100644 index 37145536e..000000000 --- a/utils/fgadmin/src/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -Makefile -Makefile.in -config.h.in -fgadmin -stamp-h1 diff --git a/utils/fgviewer/.cvsignore b/utils/fgviewer/.cvsignore deleted file mode 100644 index d14287d53..000000000 --- a/utils/fgviewer/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -fgviewer diff --git a/utils/gui/.cvsignore b/utils/gui/.cvsignore deleted file mode 100644 index b390a2f04..000000000 --- a/utils/gui/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -genfonts -Makefile.in -Makefile -.deps diff --git a/utils/js_server/.cvsignore b/utils/js_server/.cvsignore deleted file mode 100644 index 39c9a08ff..000000000 --- a/utils/js_server/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -js_server diff --git a/utils/xmlgrep/.cvsignore b/utils/xmlgrep/.cvsignore deleted file mode 100644 index 608791a0c..000000000 --- a/utils/xmlgrep/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -xmlgrep From e5348b67a50d456f315897471818ab758d6931e2 Mon Sep 17 00:00:00 2001 From: ThorstenB <brehmt@gmail.com> Date: Sat, 13 Nov 2010 16:29:34 +0100 Subject: [PATCH 08/21] New property identifying missing MP planes Provide "model-installed" property at MP planes for pilot list. Avoid direct directory access in Nasal (aircraft installed check). --- src/AIModel/AIBase.cxx | 7 ++++++- src/AIModel/AIBase.hxx | 1 + src/AIModel/AIMultiplayer.cxx | 7 ++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/AIModel/AIBase.cxx b/src/AIModel/AIBase.cxx index 514c6abb0..c206691a8 100644 --- a/src/AIModel/AIBase.cxx +++ b/src/AIModel/AIBase.cxx @@ -60,6 +60,7 @@ FGAIBase::FGAIBase(object_type ot) : model_removed( fgGetNode("/ai/models/model-removed", true) ), manager( NULL ), fp( NULL ), + _installed(false), _impact_lat(0), _impact_lon(0), _impact_elev(0), @@ -198,7 +199,7 @@ bool FGAIBase::init(bool search_in_AI_path) { string f; if(search_in_AI_path) { - // setup a modified Options strucutre, with only the $fg-root/AI defined; + // setup a modified Options structure, with only the $fg-root/AI defined; // we'll check that first, then give the normal search logic a chance. // this ensures that models in AI/ are preferred to normal models, where // both exist. @@ -217,6 +218,8 @@ bool FGAIBase::init(bool search_in_AI_path) { if(f.empty()) f = fgGetString("/sim/multiplay/default-model", default_model); + else + _installed = true; model = load3DModel(f, props); @@ -229,6 +232,8 @@ bool FGAIBase::init(bool search_in_AI_path) { } else if (!model_path.empty()) { SG_LOG(SG_INPUT, SG_WARN, "AIBase: Could not load model " << model_path); + // not properly installed... + _installed = false; } setDie(false); diff --git a/src/AIModel/AIBase.hxx b/src/AIModel/AIBase.hxx index 80a93c206..2f8362331 100644 --- a/src/AIModel/AIBase.hxx +++ b/src/AIModel/AIBase.hxx @@ -193,6 +193,7 @@ protected: bool invisible; bool no_roll; bool serviceable; + bool _installed; int _subID; double life; diff --git a/src/AIModel/AIMultiplayer.cxx b/src/AIModel/AIMultiplayer.cxx index b2fe6b841..476ddf205 100644 --- a/src/AIModel/AIMultiplayer.cxx +++ b/src/AIModel/AIMultiplayer.cxx @@ -63,7 +63,12 @@ bool FGAIMultiplayer::init(bool search_in_AI_path) { isTanker = true; // cout << "isTanker " << isTanker << " " << mCallSign <<endl; } - return FGAIBase::init(search_in_AI_path); + + // load model + bool result = FGAIBase::init(search_in_AI_path); + // propagate installation state (used by MP pilot list) + props->setBoolValue("model-installed", _installed); + return result; } void FGAIMultiplayer::bind() { From a6458c2ed64757b1f416b0035df142d29359239e Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sat, 13 Nov 2010 10:40:29 -0800 Subject: [PATCH 09/21] Autoconf changes for more flexible versioning. --- configure.ac | 32 ++++++++++++++++++++++++++++++-- src/Include/version.h.in | 3 +++ version | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 version diff --git a/configure.ac b/configure.ac index 8285ffce2..c109ffd8e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,11 @@ dnl Process this file with autogen.sh to produce a working configure dnl script. -AC_INIT +AC_INIT(FlightGear, m4_esyscmd([cat ./version]), [http://www.flightgear.org/]) + +dnl Ensure touching the version causes autoconf to re-run +AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version']) + AC_CONFIG_SRCDIR([src/Airports/simple.cxx]) dnl Require at least automake 2.52 @@ -10,7 +14,31 @@ AC_PREREQ(2.52) dnl Initialize the automake stuff dnl set the $host variable based on local machine/os AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE(FlightGear, 2.0.0) +AM_INIT_AUTOMAKE([dist-bzip2]) + +# variables for version.h +AC_DEFINE([HAVE_VERSION_H], 1, [Set if version.h is generated]) + +# are we running under Hudson? (defines BUILD_ID, BUILD_NUMBER in the environment) +if test "x$BUILD_ID" != "x" ; then + AC_SUBST([HUDSON_BUILD_ID], $BUILD_ID) + AC_SUBST([HUDSON_BUILD_NUMBER], $BUILD_NUMBER) +else + AC_SUBST([HUDSON_BUILD_ID], [none]) + AC_SUBST([HUDSON_BUILD_NUMBER], [none]) +fi + +AC_CHECK_PROG([HAVE_GIT], git, 1) +if test "x$HAVE_GIT" != "x" ; then + # git might be installed, but we might be building from a tarball + if git rev-parse ; then + AC_SUBST([REVISION], `git rev-parse HEAD`) + else + AC_SUBST([REVISION], [none]) + fi +else + AC_SUBST([REVISION], [none]) +fi dnl Checks for programs. AC_PROG_MAKE_SET diff --git a/src/Include/version.h.in b/src/Include/version.h.in index 3f43698fd..f8524a3c6 100644 --- a/src/Include/version.h.in +++ b/src/Include/version.h.in @@ -28,5 +28,8 @@ #define FLIGHTGEAR_VERSION "@VERSION@" +#define HUDSON_BUILD_NUMBER "@HUDSON_BUILD_NUMBER@" +#define HUDSON_BUILD_ID "@HUDSON_BUILD_ID@" +#define REVISION "@REVISION@" #endif // _FLIGHTGEAR_VERSION_H diff --git a/version b/version new file mode 100644 index 000000000..ccbccc3dc --- /dev/null +++ b/version @@ -0,0 +1 @@ +2.2.0 From 1dbe8335799ace31ff49ad51edc6e36571c475f0 Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sat, 13 Nov 2010 18:58:55 +0000 Subject: [PATCH 10/21] Use updated version.h if available. Add single fallback header if version.h is missing. --- src/Include/no_version.h | 16 ++++++++++++++++ src/Include/version.h.in | 2 +- src/Instrumentation/mk_viii.cxx | 6 +++++- src/Main/options.cxx | 16 +++++++++++++--- 4 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 src/Include/no_version.h diff --git a/src/Include/no_version.h b/src/Include/no_version.h new file mode 100644 index 000000000..4e33838b8 --- /dev/null +++ b/src/Include/no_version.h @@ -0,0 +1,16 @@ +#ifndef FG_NO_VERSION_H +#define FG_NO_VERSION_H + +// version.h is generated by the build system for official builds of +// FlightGear. To avoid complicating the life of regular developers, +// especially on Windows, we set HAVE_VERSION_H if version.h is generated. +// If that define is not set, we include this file instead, which provides +// placeholder values instead. + +#define FLIGHTGEAR_VERSION "development " __DATE__ + +#define HUDSON_BUILD_NUMBER 0 +#define HUDSON_BUILD_ID "none" +#define REVISION "unknown" + +#endif \ No newline at end of file diff --git a/src/Include/version.h.in b/src/Include/version.h.in index f8524a3c6..4d1f692ef 100644 --- a/src/Include/version.h.in +++ b/src/Include/version.h.in @@ -28,7 +28,7 @@ #define FLIGHTGEAR_VERSION "@VERSION@" -#define HUDSON_BUILD_NUMBER "@HUDSON_BUILD_NUMBER@" +#define HUDSON_BUILD_NUMBER @HUDSON_BUILD_NUMBER@ #define HUDSON_BUILD_ID "@HUDSON_BUILD_ID@" #define REVISION "@REVISION@" diff --git a/src/Instrumentation/mk_viii.cxx b/src/Instrumentation/mk_viii.cxx index d69cc96ad..223ab6136 100755 --- a/src/Instrumentation/mk_viii.cxx +++ b/src/Instrumentation/mk_viii.cxx @@ -76,9 +76,13 @@ using std::string; #include <Airports/runways.hxx> #include <Airports/simple.hxx> -#ifndef _MSC_VER + +#ifdef HAVE_VERSION_H # include <Include/version.h> +#else +# include <Include/no_version.h> #endif + #include <Main/fg_props.hxx> #include <Main/globals.hxx> #include "instrument_mgr.hxx" diff --git a/src/Main/options.cxx b/src/Main/options.cxx index 4eebeead5..cf8317a79 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -64,8 +64,10 @@ using std::cout; using std::cerr; using std::endl; -#ifndef VERSION -#define VERSION "CVS "__DATE__ +#ifdef HAVE_VERSION_H +# include <Include/version.h> +#else +# include <Include/no_version.h> #endif #define NEW_DEFAULT_MODEL_HZ 120 @@ -233,6 +235,12 @@ fgSetDefaults () fgSetString("/sim/multiplay/txhost", "0"); fgSetInt("/sim/multiplay/rxport", 0); fgSetInt("/sim/multiplay/txport", 0); + + fgSetString("/sim/version/flightgear", FLIGHTGEAR_VERSION); + //fgSetString("/sim/version/simgear", FLIGHTGEAR_VERSION); + fgSetString("/sim/version/revision", REVISION); + fgSetInt("/sim/version/build-number", HUDSON_BUILD_NUMBER); + fgSetString("/sim/version/build-id", HUDSON_BUILD_ID); } static bool @@ -1208,7 +1216,9 @@ fgOptParking( const char *arg ) static int fgOptVersion( const char *arg ) { - cerr << "FlightGear version: " << VERSION << endl; + cerr << "FlightGear version: " << FLIGHTGEAR_VERSION << endl; + cerr << "Revision: " << REVISION << endl; + cerr << "Build-Id: " << HUDSON_BUILD_ID << endl; cerr << "FG_ROOT=" << globals->get_fg_root() << endl; cerr << "FG_HOME=" << fgGetString("/sim/fg-home") << endl; cerr << "FG_SCENERY="; From b3c6f94b89f265cabcd0ae35cd66286fdcf0184e Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sat, 13 Nov 2010 11:18:19 -0800 Subject: [PATCH 11/21] What sucks? Autoconf sucks. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c109ffd8e..1320db791 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl Process this file with autogen.sh to produce a working configure dnl script. -AC_INIT(FlightGear, m4_esyscmd([cat ./version]), [http://www.flightgear.org/]) +AC_INIT(FlightGear, m4_esyscmd([cat version]), [http://www.flightgear.org]) dnl Ensure touching the version causes autoconf to re-run AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version']) From ff97931250a8a43ddb4634868ddfa7c6db9762fb Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sat, 13 Nov 2010 12:29:38 -0800 Subject: [PATCH 12/21] Another attempt at placating the shell. Everything sucks. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1320db791..82d017f2d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl Process this file with autogen.sh to produce a working configure dnl script. -AC_INIT(FlightGear, m4_esyscmd([cat version]), [http://www.flightgear.org]) +AC_INIT(FlightGear, m4_esyscmd([cat ./version | tr -d '\n']), [http://www.flightgear.org]) dnl Ensure touching the version causes autoconf to re-run AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version']) From 30407911d51a65c2b2446f3e74a6e2f0f30e5703 Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sat, 13 Nov 2010 12:51:43 -0800 Subject: [PATCH 13/21] Ensure non-Hudson BUILD_NUMBER is actually an int, not a string --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 82d017f2d..cd12966c0 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ if test "x$BUILD_ID" != "x" ; then AC_SUBST([HUDSON_BUILD_NUMBER], $BUILD_NUMBER) else AC_SUBST([HUDSON_BUILD_ID], [none]) - AC_SUBST([HUDSON_BUILD_NUMBER], [none]) + AC_SUBST([HUDSON_BUILD_NUMBER], 0) fi AC_CHECK_PROG([HAVE_GIT], git, 1) From 3d54541cad957167d2e339ff3493bbb92324c3a5 Mon Sep 17 00:00:00 2001 From: Mathias Froehlich <Mathias.Froehlich@web.de> Date: Sun, 14 Nov 2010 11:07:46 +0100 Subject: [PATCH 14/21] Make out of source builds again work. --- src/Main/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Main/Makefile.am b/src/Main/Makefile.am index 60df638c1..cf7a4e3f1 100644 --- a/src/Main/Makefile.am +++ b/src/Main/Makefile.am @@ -135,4 +135,4 @@ metar_LDADD = \ -lz $(base_LIBS) -INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src +INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_builddir)/src From 79ece1c22c762bca44bdde85b106deebb59fa0f0 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier <fredfgfs01@free.fr> Date: Sun, 14 Nov 2010 13:28:17 +0100 Subject: [PATCH 15/21] MSVC: compile with version.h if environment variable HAVE_VERSION_H is set to 1 --- projects/VC90/FlightGear/FlightGear.vcproj | 8 ++++---- src/Main/options.cxx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/VC90/FlightGear/FlightGear.vcproj b/projects/VC90/FlightGear/FlightGear.vcproj index 662dc168e..d2e5e9291 100644 --- a/projects/VC90/FlightGear/FlightGear.vcproj +++ b/projects/VC90/FlightGear/FlightGear.vcproj @@ -48,7 +48,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -137,7 +137,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -225,7 +225,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" @@ -313,7 +313,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" diff --git a/src/Main/options.cxx b/src/Main/options.cxx index cf8317a79..06b2b7f89 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -64,7 +64,7 @@ using std::cout; using std::cerr; using std::endl; -#ifdef HAVE_VERSION_H +#if defined( HAVE_VERSION_H ) && HAVE_VERSION_H # include <Include/version.h> #else # include <Include/no_version.h> From f97295f00401910316ecf9c4570a03fcc4232970 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer <Torsten@t3r.de> Date: Sun, 14 Nov 2010 13:53:45 +0100 Subject: [PATCH 16/21] fix inconsitent property name fuel[-_]pump --- src/Aircraft/controls.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Aircraft/controls.cxx b/src/Aircraft/controls.cxx index 5eeadc1a1..a37150c44 100644 --- a/src/Aircraft/controls.cxx +++ b/src/Aircraft/controls.cxx @@ -877,7 +877,7 @@ void FGControls::unbind () "/controls/engines/engine[%d]/starter", index); fgUntie(name); snprintf(name, MAX_NAME_LEN, - "/controls/engines/engine[%d]/fuel_pump", index); + "/controls/engines/engine[%d]/fuel-pump", index); fgUntie(name); snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/fire-switch", index); From 3209a4db097f3f45836cc1297dcd93964df562b4 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier <fredfgfs01@free.fr> Date: Sun, 14 Nov 2010 15:33:08 +0100 Subject: [PATCH 17/21] MSVC: ensure that HAVE_VERSION_H always has a value --- projects/VC90/FlightGear/FlightGear.vcproj | 8 ++++---- src/Instrumentation/mk_viii.cxx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/VC90/FlightGear/FlightGear.vcproj b/projects/VC90/FlightGear/FlightGear.vcproj index d2e5e9291..80577f579 100644 --- a/projects/VC90/FlightGear/FlightGear.vcproj +++ b/projects/VC90/FlightGear/FlightGear.vcproj @@ -48,7 +48,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -137,7 +137,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -225,7 +225,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" @@ -313,7 +313,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" diff --git a/src/Instrumentation/mk_viii.cxx b/src/Instrumentation/mk_viii.cxx index 223ab6136..11846db5e 100755 --- a/src/Instrumentation/mk_viii.cxx +++ b/src/Instrumentation/mk_viii.cxx @@ -77,7 +77,7 @@ using std::string; #include <Airports/runways.hxx> #include <Airports/simple.hxx> -#ifdef HAVE_VERSION_H +#if defined( HAVE_VERSION_H ) && HAVE_VERSION_H # include <Include/version.h> #else # include <Include/no_version.h> From d0706915317043ed7b5c3f3118371def5675b52b Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sun, 14 Nov 2010 17:49:55 +0000 Subject: [PATCH 18/21] Use version file to populate bundle plist. --- package/mac/build-mac-nightly-dmg.rb | 2 ++ package/mac/nightly.plist.in | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index e3517ef12..cd839acaa 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -15,6 +15,8 @@ osgVersion = runOsgVersion('version-number') $osgSoVersion=runOsgVersion('so-number') $openThreadsSoVersion=runOsgVersion('openthreads-soversion-number') +VERSION = File.read("#{srcDir}/version").strip + puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}" $alutSourcePath='/Library/Frameworks/ALUT.framework' diff --git a/package/mac/nightly.plist.in b/package/mac/nightly.plist.in index f8b2c562a..0565abe93 100644 --- a/package/mac/nightly.plist.in +++ b/package/mac/nightly.plist.in @@ -15,7 +15,7 @@ <key>CFBundleIdentifier</key> <string>org.flightgear.FlightGear</string> <key>CFBundleVersion</key> - <string>2.0</string> + <string><%= VERSION %></string> <key>CFBundleShortVersionString</key> <string>unstable nightly build</string> <key>LSMinimumSystemVersion</key> From e9d406323808a958f691e991142727c42ed61ee1 Mon Sep 17 00:00:00 2001 From: James Turner <zakalawe@mac.com> Date: Sun, 14 Nov 2010 18:14:23 +0000 Subject: [PATCH 19/21] Fix ordering in DMG buuilding. --- package/mac/build-mac-nightly-dmg.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index cd839acaa..43667a44c 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -15,8 +15,6 @@ osgVersion = runOsgVersion('version-number') $osgSoVersion=runOsgVersion('so-number') $openThreadsSoVersion=runOsgVersion('openthreads-soversion-number') -VERSION = File.read("#{srcDir}/version").strip - puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}" $alutSourcePath='/Library/Frameworks/ALUT.framework' @@ -55,6 +53,8 @@ resourcesDir=contents+"/Resources" osgPluginsDir=contents+"/PlugIns/osgPlugins-#{osgVersion}" volName="\"FlightGear Nightly Build\"" +VERSION = File.read("#{srcDir}/version").strip + puts "Creating directory structure" `mkdir -p #{macosDir}` `mkdir -p #{frameworksDir}` From 91f2c853a6fad91f5b6df0a02e72442144a091aa Mon Sep 17 00:00:00 2001 From: unknown <James@.(none)> Date: Sun, 14 Nov 2010 18:16:01 +0000 Subject: [PATCH 20/21] Use version file in NSIS script --- package/Win-NSIS/flightgear-nightly.nsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package/Win-NSIS/flightgear-nightly.nsi b/package/Win-NSIS/flightgear-nightly.nsi index 55e5c151f..78e421f11 100644 --- a/package/Win-NSIS/flightgear-nightly.nsi +++ b/package/Win-NSIS/flightgear-nightly.nsi @@ -5,11 +5,12 @@ !define /file OSGSoNumber $%TEMP%\osg-so-number.txt !define /file OSGVersion $%TEMP%\osg-version.txt +!define /file FGVersion flightgear\version !echo "osg-so is ${OSGSoNumber}" Name "FlightGear Nightly" -OutFile fgfs_win32_nightly.exe +OutFile fgfs_win32_nightly_${FGVersion}.exe ; use LZMA for best compression SetCompressor /FINAL /SOLID lzma @@ -105,10 +106,12 @@ Section "" ;No components page, name is not important CreateDirectory "$SMPROGRAMS\FlightGear" CreateShortCut "$SMPROGRAMS\FlightGear\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" + + WriteUninstaller "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "DisplayName" "FlightGear Nightly" - WriteRegStr HKLM ${UninstallKey} "DisplayVersion" "2.1" + WriteRegStr HKLM ${UninstallKey} "DisplayVersion" "${FGVersion}" WriteRegStr HKLM ${UninstallKey} "UninstallString" "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "UninstallPath" "$INSTDIR\FlightGear_Uninstall.exe" WriteRegDWORD HKLM ${UninstallKey} "NoModify" 1 From 1d8913b53ed2a4d72db463bc32ebffba38ae5f3d Mon Sep 17 00:00:00 2001 From: ThorstenB <brehmt@gmail.com> Date: Sun, 14 Nov 2010 21:06:19 +0100 Subject: [PATCH 21/21] Fixed path resolution (search --fg-aircraft dirs) Do not abort early when resource doesn't match /sim/aircraft-dir. --- src/Main/globals.cxx | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Main/globals.cxx b/src/Main/globals.cxx index 29b791fe5..aa34a9660 100644 --- a/src/Main/globals.cxx +++ b/src/Main/globals.cxx @@ -56,7 +56,7 @@ #include "fg_props.hxx" #include "fg_io.hxx" -class AircraftResourceProvider : public simgear::ResourceProvider +class AircraftResourceProvider : public simgear::ResourceProvider { public: AircraftResourceProvider() : @@ -74,28 +74,27 @@ public: // test against the aircraft-dir property const char* aircraftDir = fgGetString("/sim/aircraft-dir"); string_list aircraftDirPieces(sgPathBranchSplit(aircraftDir)); - if (aircraftDirPieces.empty() || (aircraftDirPieces.back() != pieces[1])) { - return SGPath(); // current aircraft-dir does not match resource aircraft - } - - SGPath r(aircraftDir); - for (unsigned int i=2; i<pieces.size(); ++i) { - r.append(pieces[i]); - } - - if (r.exists()) { - SG_LOG(SG_IO, SG_INFO, "found path:" << aResource << " via /sim/aircraft-dir: " << r.str()); - return r; + if (!aircraftDirPieces.empty() && (aircraftDirPieces.back() == pieces[1])) { + // current aircraft-dir matches resource aircraft + SGPath r(aircraftDir); + for (unsigned int i=2; i<pieces.size(); ++i) { + r.append(pieces[i]); + } + + if (r.exists()) { + SG_LOG(SG_IO, SG_INFO, "found path:" << aResource << " via /sim/aircraft-dir: " << r.str()); + return r; + } } - // try each aircaft dir in turn + // try each aircraft dir in turn std::string res(aResource, 9); // resource path with 'Aircraft/' removed const string_list& dirs(globals->get_aircraft_paths()); string_list::const_iterator it = dirs.begin(); for (; it != dirs.end(); ++it) { SGPath p(*it, res); if (p.exists()) { - SG_LOG(SG_IO, SG_INFO, "found path:" << aResource << " in aircraft dir: " << r.str()); + SG_LOG(SG_IO, SG_INFO, "found path:" << aResource << " in aircraft dir: " << *it); return p; } } // of aircraft path iteration