4d36082398
(everything described here lives in the namespace flightgear::addons) New classes: Author, Maintainer, and Contact. Author and Maintainer derive from Contact. For each contact, the following can be defined in addon-metadata.xml: name, email, and url. See [1] for details about the syntax and usage policy. Nasal bindings have been updated accordingly, there are three new ghosts: addons.Contact, addons.Author and addons.Maintainer. The enum class UrlType has two new members: author and maintainer. The Addon::getUrls() method has a new signature: std::multimap<UrlType, QualifiedUrl> getUrls() const; because non-empty 'url' fields for authors and maintainers contribute to the result, and there can be an arbitrary number of authors and an arbitrary number of maintainers defined for a given add-on---therefore, std::map can't be used anymore. Finally, QualifiedUrl has a new field (detail) which stores the author name (resp. maintainer name) when the QualifiedUrl type is UrlType::author (resp. UrlType::maintainer). Currently, this 'detail' field is not used for other URL types, but this could be changed if desired. [1] https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Docs/README.add-ons
138 lines
4.1 KiB
CMake
138 lines
4.1 KiB
CMake
|
|
set(sources
|
|
Main/options.cxx
|
|
Main/fg_commands.cxx
|
|
Main/fg_props.cxx
|
|
Main/globals.cxx
|
|
Main/locale.cxx
|
|
Main/util.cxx
|
|
Main/positioninit.cxx
|
|
Add-ons/Addon.cxx
|
|
Add-ons/AddonManager.cxx
|
|
Add-ons/AddonVersion.cxx
|
|
Add-ons/contacts.cxx
|
|
Add-ons/exceptions.cxx
|
|
Aircraft/controls.cxx
|
|
Aircraft/FlightHistory.cxx
|
|
Aircraft/flightrecorder.cxx
|
|
Aircraft/replay.cxx
|
|
Autopilot/route_mgr.cxx
|
|
Airports/airport.cxx
|
|
Airports/airport.hxx
|
|
Airports/apt_loader.cxx
|
|
Airports/airportdynamicsmanager.cxx
|
|
Airports/airportdynamicsmanager.hxx
|
|
Airports/dynamicloader.cxx
|
|
Airports/dynamics.cxx
|
|
Airports/xmlloader.cxx
|
|
Airports/runwaybase.cxx
|
|
Airports/pavement.cxx
|
|
Airports/parking.cxx
|
|
Airports/groundnetwork.cxx
|
|
Airports/gnnode.cxx
|
|
Airports/runways.cxx
|
|
Airports/runwayprefs.cxx
|
|
Airports/runwayprefloader.cxx
|
|
ATC/CommStation.cxx
|
|
# ATC/GroundController.cxx
|
|
# ATC/atc_mgr.cxx
|
|
Environment/atmosphere.cxx
|
|
Environment/environment.cxx
|
|
Environment/environment_mgr.cxx
|
|
Environment/environment_ctrl.cxx
|
|
Environment/presets.cxx
|
|
Environment/gravity.cxx
|
|
Environment/ridge_lift.cxx
|
|
Environment/magvarmanager.cxx
|
|
Navaids/airways.cxx
|
|
Navaids/fixlist.cxx
|
|
Navaids/markerbeacon.cxx
|
|
Navaids/NavDataCache.cxx
|
|
Navaids/navdb.cxx
|
|
Navaids/navlist.cxx
|
|
Navaids/navrecord.cxx
|
|
Navaids/poidb.cxx
|
|
Navaids/procedure.cxx
|
|
Navaids/positioned.cxx
|
|
Navaids/PositionedOctree.cxx
|
|
Navaids/routePath.cxx
|
|
Navaids/route.cxx
|
|
Navaids/waypoint.cxx
|
|
Navaids/FlightPlan.cxx
|
|
Navaids/LevelDXML.cxx
|
|
Network/HTTPClient.cxx
|
|
Time/TimeManager.cxx
|
|
Time/bodysolver.cxx
|
|
Scripting/NasalSys.cxx
|
|
Scripting/NasalAddons.cxx
|
|
Scripting/NasalCondition.cxx
|
|
Scripting/NasalAircraft.cxx
|
|
Scripting/NasalString.cxx
|
|
Scripting/NasalPositioned.cxx
|
|
Scripting/NasalPositioned_cppbind.cxx
|
|
Scripting/nasal-props.cxx
|
|
Scripting/NasalSGPath.cxx
|
|
Scripting/NasalHTTP.cxx
|
|
Viewer/view.cxx
|
|
Viewer/viewmgr.cxx
|
|
)
|
|
|
|
foreach(s ${sources})
|
|
set_property(DIRECTORY APPEND PROPERTY fgtestlib_sources "${CMAKE_SOURCE_DIR}/src/${s}")
|
|
endforeach()
|
|
|
|
set_property(DIRECTORY APPEND PROPERTY fgtestlib_sources "${CMAKE_SOURCE_DIR}/3rdparty/cjson/cJSON.c")
|
|
|
|
get_property(fgtestlib_sources DIRECTORY PROPERTY fgtestlib_sources)
|
|
|
|
add_library(fgtestlib SHARED ${fgtestlib_sources}
|
|
unitTestHelpers.cxx
|
|
testStubs.cxx
|
|
fake_sgSky.cxx
|
|
fake_sgPrecipitation.cxx
|
|
fake_sound.cxx)
|
|
|
|
set_target_properties (fgtestlib
|
|
PROPERTIES
|
|
COMPILE_DEFINITIONS "FG_TESTLIB"
|
|
)
|
|
|
|
if(FG_HAVE_GPERFTOOLS)
|
|
target_include_directories(fgtestlib PRIVATE ${GooglePerfTools_INCLUDE_DIR})
|
|
target_link_libraries(fgtestlib ${GooglePerfTools_LIBRARIES})
|
|
endif()
|
|
target_link_libraries(fgtestlib SimGearCore ${PLATFORM_LIBS} ${SQLITE3_LIBRARY})
|
|
|
|
add_executable(fgtest fgTestDriver.cxx)
|
|
target_link_libraries(fgtest fgtestlib)
|
|
|
|
macro(flightgear_test name sources)
|
|
add_executable(${name} ${sources})
|
|
target_include_directories(${name} PRIVATE ${CMAKE_SOURCE_DIR}/tests)
|
|
target_link_libraries(${name} fgtestlib)
|
|
add_test(${name} ${EXECUTABLE_OUTPUT_PATH}/${name})
|
|
endmacro()
|
|
|
|
flightgear_test(test_navs test_navaids2.cxx)
|
|
flightgear_test(test_flightplan test_flightplan.cxx)
|
|
|
|
add_executable(test_ls_matrix test_ls_matrix.cxx ${CMAKE_SOURCE_DIR}/src/FDM/LaRCsim/ls_matrix.c)
|
|
target_link_libraries(test_ls_matrix SimGearCore)
|
|
add_test(test_ls_matrix ${EXECUTABLE_OUTPUT_PATH}/test_ls_matrix)
|
|
|
|
add_executable(testAeroElement testAeroElement.cxx ${CMAKE_SOURCE_DIR}/src/FDM/AIWake/AeroElement.cxx)
|
|
target_link_libraries(testAeroElement SimGearCore)
|
|
add_test(testAeroElement ${EXECUTABLE_OUTPUT_PATH}/testAeroElement)
|
|
|
|
add_executable(testAeroMesh testAeroMesh.cxx
|
|
${CMAKE_SOURCE_DIR}/src/FDM/AIWake/AeroElement.cxx
|
|
${CMAKE_SOURCE_DIR}/src/FDM/AIWake/AircraftMesh.cxx
|
|
${CMAKE_SOURCE_DIR}/src/FDM/AIWake/WakeMesh.cxx
|
|
${CMAKE_SOURCE_DIR}/src/FDM/AIWake/AIWakeGroup.cxx
|
|
${CMAKE_SOURCE_DIR}/src/FDM/LaRCsim/ls_matrix.c
|
|
)
|
|
set_target_properties (testAeroMesh PROPERTIES COMPILE_DEFINITIONS "FG_TESTLIB")
|
|
target_include_directories(testAeroMesh PRIVATE ${CMAKE_SOURCE_DIR}/tests
|
|
${CMAKE_SOURCE_DIR}/src/FDM/JSBSim)
|
|
target_link_libraries(testAeroMesh SimGearCore JSBSim)
|
|
add_test(testAeroMesh ${EXECUTABLE_OUTPUT_PATH}/testAeroMesh)
|