User:Callahanp/fg-from-scratch

From FlightGear wiki
< User:Callahanp
Revision as of 16:55, 22 February 2020 by Callahanp (talk | contribs) (Improvements Contemplated section)
Jump to navigation Jump to search

fg-from-scratch is a windows batch script capable of producing a working release version of flightgear and terragear executables.

Improvements Contemplated

This is my personal un-official list. It is not a commitment to do the work necessary to accomplish all of it. I can commit to doing the first item.

  • Visual Studio Debug Build
  • Separate Build and Install Directories for Release and Debug Targets
  • Updated Readme.md
    • add links to vcpkg, Visual Studio and CMake documentation
    • add current state of the script
    • add a bit of history.. who developed it, why, how it grew over time...
  • Document the internal operations of the fg-from-scratch build script
  • Document any limitations or adaptations imposed by upstream libraries
  • fg-from-scratch Issues List
  • Try a remote linux build with Visual Studio
  • Investigate use of Visual Studio Code instead of the full Visual Studio

Discussion

Discussion of this topic can take place in the following thread on the flightgear-devel mailing list, on the talk page or elsewhere as needed.

Cmake and Visual Studio

vcxpkg

ninja

Tasks:

  • Find out if ninja is currently used in fg-from-scratch.cmd
  • if it is include it in research.
  • If not, discuss advantages/disadvantages with the wider flightgear development community.

Per target build and install directories

A technique I've observed in use is to provide separate build and install directories for each target build: release, rel-with-debug, debug.

Task:

  • Investigate vcpkg-git, scratch-build and scratch-install to determine where per-target build or install directories are and are not used.

Notes

CMakeLists.txt in OpenSceneGraph, Simgear, FlightGear, SimGear

This note is not meant to imply that changes in the named projects Cmake files are or will be needed.

The CMakeLists.txt used by the OpenSceneGraph, Simgear, FlightGear and TerraGear projects are used in automatic build processes and in the case of OSG are separately managed projects. They should be considered out of the scope of changes to fg-from-scratch. Anyone working on fg-from-scratch will have to make do with their current state, adjust to any changes in them, and advocate separately for any proposed changes to them.

Package CMake Compatibility with Built-In CMake Targets

The log of a fg-from-scratch.cmd run includes the following text:

The package openssl is compatible with built-in CMake targets:

   find_package(OpenSSL REQUIRED)
   target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)

Does this imply that there are other packages which do not satisfy this criteria? If so, which ones are not? What is the impact of a package not being compatible with built in CMake targets?