320
edits
Line 288: | Line 288: | ||
|} | |} | ||
==Dependencies== | |||
Below is a list of dependencies (packages) that need to be installed before compiling. | |||
{| class="wikitable" | |||
|- | |||
! Package !! Version (ref. only, as of 03-28-2020) !! Notes | |||
|- | |||
| automake || || Needed for download_and_compile.sh, maybe more | |||
|- | |||
| cmake || 3.13.4-1 || | |||
|- | |||
| build-essential || || Needed for download_and_compile.sh, maybe more | |||
|- | |||
| g++ || 4:8.3.0-1+rpi2 || | |||
|- | |||
| git || 1:2.20.1-2+deb10u1 || Needs a user account at www.github.com | |||
|- | |||
| make || 4.2.1-1.2 || | |||
|- | |||
| sed || 4.7-1 || | |||
|- | |||
| freeglut3-dev || 2.8.1-3 || | |||
|- | |||
| libboost-dev || 1.67.0.1+b1 || | |||
|- | |||
| libcurl4-openssl-dev || 7.64.0-4+deb10u1 || OSG plugins | |||
|- | |||
| libdbus-1-dev || 1.12.16-1 || | |||
|- | |||
| libdbus-1-3 || || | |||
|- | |||
| libevent-dev || 2.1.8-stable-4 || | |||
|- | |||
| libfreetype6-dev || 2.9.1-3+deb10u1 || | |||
|- | |||
| libglew-dev || 2.1.0-4 || | |||
|- | |||
| libjpeg62-dev || || OSG plugin | |||
|- | |||
| libnvtt-dev || 2.0.8-1+dfsg-8.1+b3 || | |||
|- | |||
| libopenal-dev || 1:1.19.1-1 || | |||
|- | |||
|libopenscenegraph-3.4-dev || 3.4.1+dfsg1-5 || | |||
|- | |||
| libqt5opengl5-dev || 5.11.3+dfsg1-1+rpi1+deb10u3 || | |||
|- | |||
| libqt5svg5-dev || 5.11.3-2 || | |||
|- | |||
| librsvg2 || || OSG plugin, if needed | |||
|- | |||
| librsvg2-dev || || OSG plugin, if needed | |||
|- | |||
| libssl-dev || 1.1.1d-0+deb10u3+rpt1 || Needed if building Cmake | |||
|- | |||
| libxi-dev || 2:1.7.9-1 || | |||
|- | |||
| libxmu-dev || 2:1.1.2-2+b3 || | |||
|- | |||
| pkg-config || 0.29-6 || | |||
|- | |||
| qml-module-qtquick2 || 5.11.3-4 || | |||
|- | |||
| qml-module-qtquick-window2 || 5.11.3-4 || | |||
|- | |||
| qt5-default || 5.11.3+dfsg1-1+rpi1+deb10u3 || | |||
|- | |||
| qtbase5-private-dev || 5.11.3+dfsg1-1+rpi1+deb10u3 || | |||
|- | |||
| qtdeclarative5-private-dev || 5.11.3-4 || | |||
|- | |||
| qttools5-dev || 5.11.3-4 || | |||
|- | |||
| zlib1g-dev || 1:1.2.11.dfsg-1 || OSG plugin | |||
|} | |||
The command <code>dpkg -s package_name</code> can be used, in the terminal to verify if a package is installed. Replace 'package_name' with the name of the dependency from the above list. | |||
Before installing any missing dependencies, update Raspbian per the above [[Howto:Build_and_run_FlightGear_on_Raspberry_Pi_4#Update_Raspbian|Update Raspbian]] instructions. The below terminal command can be used to install any missing dependencies: | |||
<syntaxhighlight lang="bash"> | |||
sudo apt-get install package_name | |||
</syntaxhighlight> | |||
====git==== | |||
{| class="wikitable" | |||
|- | |||
! '''<big>♦♦♦ Warning ♦♦♦</big>''' | |||
|- | |||
| Edward wrote: | |||
<blockquote> | |||
Please only run 'git clone' once ever! That is once per machine, new | |||
install, etc. Otherwise SourceForge will permanently blacklist your IP | |||
address. The strain on their infrastructure with our huge repositories is | |||
far too much. | |||
</blockquote> | |||
|} | |||
When using some <code>git</code> commands you might be prompted by <code>git config --global user.email "you@example.com"</code> and or <code>git config --global user.name "Your Name"</code>. In that case a user account is needed at [http://www.github.com www.github.com]. So, before starting the compiling process it would be advisable to first go to their web page and create a free user account. After acquiring the user account, use the below commands (one at a time) in order to satisfy the above <code>git</code> requirement. Replace 'you@example.com' with your <code>git</code> account email address and also replace 'Your Name' with the user name for this account. It might be best to choose a user name without a space in it. | |||
<syntaxhighlight lang="bash"> | |||
git config --global user.email "you@example.com" | |||
git config --global user.name "Your Name" | |||
</syntaxhighlight> | |||
Link to <code>git</code> [https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration configuration and customization] information page. | |||
Florent wrote: | |||
<blockquote> | |||
I'm not knowledgeable about details of the RaspBerry PI build; what I can | |||
say regarding your message is: when you clone a Git repository with no | |||
special option such as <code>--bare</code>, some branch is initially checked out (often, | |||
this is 'master'). This means that only this particular branch is clearly | |||
visible in the directory where the repository has been cloned. Other | |||
branches may be present in hidden/machine form inside the .git subdirectory | |||
after you do <code>git fetch foo</code>, where foo is the name of a <s>branch</s>. | |||
Run <code>git branch -r</code> to see what branches are available remotely, then <code>git | |||
fetch foo</code> to retrieve the <s>branch</s> you are interested in (supposedly called | |||
'foo' here). This only happens in the .git subdirectory, but then <code>git | |||
checkout foo</code> should cause this branch to appear in the filesystem, | |||
replacing whatever was previously checked out in your clone of the upstream | |||
repository. In the case of the download_and_compile.sh script, | |||
OpenSceneGraph-3.4 is the name of the OSG branch currently used by the | |||
script (until a newer version is deemed preferable). Note that as a safety | |||
measure, you can't check out a different branch when there is “unfinished | |||
work” (things modified but not committed) on the currently checked-out | |||
branch. | |||
Hope this helps. Regards | |||
I have to correct something from my first reply in this thread: | |||
The argument passed to <code>git fetch</code> is not branch name (according to | |||
the manual, it's a <refspec>). The way I use this command is by | |||
passing a remote name, e.g. <code>git fetch origin</code> or 'git fetch | |||
upstream'. A “remote” is some place where the repository is hosted | |||
that is known to your clone (.git/config). Thus, your clone can fetch | |||
branches and commits from remotes. A remote can offer many branches. | |||
You can display info about known remotes with <code>git remove -v</code> from | |||
within your clone, but I believe this info essentially comes from the | |||
.git/config file. | |||
</blockquote> | |||
Essential git commands: | |||
* git status | |||
* git checkout | |||
* git pull | |||
** Can be used to update the fgmeta folder when using the download_and_compile.sh script. Use this command from within the fgmeta folder. | |||
* git reset --hard | |||
* git log | |||
** REVISION example '522c742419e028daf35e79f9c6097ffa34c9f536' (this revision number was found in the FlightGear menu and at flightgear/dnc-managed/build/flightgear/src/Include/build.h. Florent wrote: <blockquote> This is a recent FG commit. You can find it with: cd flightgear/dnc-managed/flightgear && git log. Then you can type /522c742419e028daf35e79f9c6097ffa34c9f536 to look for this string in the output (the search string is interpreted as a regular expression) in less, n for next occurrence, N for previous, q to quit (I'm assuming less is your $GIT_PAGER). Or more directly: git show 522c742419e028daf35e79f9c6097ffa34c9f53 in the same dir. Regards </blockquote> | |||
* git diff | |||
Also see [[FlightGear Git]]. |
edits