[Chapel Merge] Add 3 distinct mason modes and `mason modules` com

Branch: refs/heads/main
Revision: b3fddf6
Author: bmcdonald3
Link: Add 3 distinct mason modes and `mason modules` command by bmcdonald3 · Pull Request #20297 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #20297 from bmcdonald3/mason-modes

Add 3 distinct mason modes and mason modules command

[ reviewed by @arezaii - thank you! ]

This PR adds a conception of 3 distinct mason "modes":
(1) a mason "application" - intended to run as a standalone
program, has a main function, fully featured
(2) a mason "library" - intended to be used in other
user code, does not have a main function, can't be
run standalone
(3) a mason "light" project - just creates a toml file
that can track dependencies and generate the flags
to use those dependencies in any chpl command

Also, a new command mason modules is added that will
return a string of the include flags that would be added
onto a chpl command to use the dependencies specified
in a Mason.toml file that enables a little bit more
flexibility into building programs that use mason deps.

Docs are not included in this PR as there isn't a natural
fit for this in the existing mason docs, but the docs will
be undergoing an overhaul in the near future and will be
added then (see https://github.com/Cray/chapel-private/issues/3599).

Closes: https://github.com/Cray/chapel-private/issues/3365

Modified Files:
A tools/mason/MasonModules.chpl

M test/library/packages/UnitTest/Launcher_Test.chpl
M test/mason/build/noDeps.chpl
M test/mason/chplVersion/mason-chpl-version-new.good
M test/mason/init/masonInteractive.good
M test/mason/mason-example-with-opts/mason-example.chpl
M test/mason/mason-example/mason-example.chpl
M test/mason/mason-help-tests/masonHelpTests.good
M test/mason/mason-test/mason-test.chpl
M test/mason/masonInit/masonInitModifyToml.good
M test/mason/masonInit/masonInitTest2.good
M test/mason/masonInit/masonInitTest3.good
M test/mason/masonInit/masonInitTest4.good
M test/mason/masonNewModule.good
M test/mason/masonNewTest.chpl
M test/mason/masonNewTest.good
M test/mason/masonTestSome/mason-test-noShow.chpl
M test/mason/masonTestSome/mason-test-show.chpl
M test/mason/masonTestSome/mason-test-some.chpl
M test/mason/masonTestSubString/mason-test-sub-string.chpl
M test/mason/new/masonInteractive.good
M test/mason/publish/badDry.good
M test/mason/publish/badRegTest.good
M test/mason/publish/publish.good
M test/mason/publish/publishGitCheck.good
M test/mason/run/mason-run.chpl
M test/mason/subdir-commands/mason-run.chpl
M tools/mason/MasonBuild.chpl
M tools/mason/MasonExample.chpl
M tools/mason/MasonHelp.chpl
M tools/mason/MasonInit.chpl
M tools/mason/MasonNew.chpl
M tools/mason/MasonRun.chpl
M tools/mason/MasonTest.chpl
M tools/mason/MasonUpdate.chpl
M tools/mason/MasonUtils.chpl
M tools/mason/mason.chpl

Compare: https://github.com/chapel-lang/chapel/compare/a401ebfd0ce9...b3fddf6d0936