]> Kevux Git Server - fll/commit
Feature: Fake settings specification updates and enable simple golang support.
authorKevin Day <Kevin@kevux.org>
Mon, 23 Sep 2024 01:53:35 +0000 (20:53 -0500)
committerKevin Day <Kevin@kevux.org>
Mon, 23 Sep 2024 02:09:09 +0000 (21:09 -0500)
commitff4f2effda74fad99d6b7715a0808ee6c19b4642
treecc1fb4b76a255b8cf303513d981a124aa9208861
parente41dc81d211f09f8042ea6cb0d7a674f6827afda
Feature: Fake settings specification updates and enable simple golang support.

The Featureless Make is intended to not be language specific since its inception.
I did not know how the languages were to work, so I mostly built this to guarantee C/C++ support.

I found that the `golang` supports some command line based compilation.
This adds support for `golang` in the most basic way.
This support is not well tested.
An `example_go` project is added.
I have only tested the basic build and I have not done anything advanced.

This relaxes some of the requirements.
The `bash` is changed to `shell` to encourage more types of scripts.
The `custom` is added and used as a fallback if `build_language_path` is not used.

I found that there needs to be some additional settings in the `settings` specification.
This updates the specification and adds:
  - build_compiler_arguments
  - build_compiler_arguments_shared
  - build_compiler_arguments_static
  - build_compiler_arguments_library
  - build_compiler_arguments_library_shared
  - build_compiler_arguments_library_static
  - build_compiler_arguments_object
  - build_compiler_arguments_object_shared
  - build_compiler_arguments_object_static
  - build_compiler_arguments_program
  - build_compiler_arguments_program_shared
  - build_compiler_arguments_program_static
  - build_language_path

This also fixes some mistakes in the language of the specification.
22 files changed:
level_3/fake/c/common.c
level_3/fake/c/common.h
level_3/fake/c/private-build-library.c
level_3/fake/c/private-build-load.c
level_3/fake/c/private-build-object.c
level_3/fake/c/private-build-program.c
level_3/fake/c/private-build.c
level_3/fake/c/private-clean.c
level_3/fake/c/private-common.c
level_3/fake/c/private-common.h
level_3/fake/c/private-make-operate.c
level_3/fake/c/private-skeleton.c
level_3/fake/data/projects/go/example_go/data/build/defines [new file with mode: 0644]
level_3/fake/data/projects/go/example_go/data/build/dependencies [new file with mode: 0644]
level_3/fake/data/projects/go/example_go/data/build/fakefile [new file with mode: 0644]
level_3/fake/data/projects/go/example_go/data/build/process_post.sh [new file with mode: 0755]
level_3/fake/data/projects/go/example_go/data/build/process_pre.sh [new file with mode: 0755]
level_3/fake/data/projects/go/example_go/data/build/settings [new file with mode: 0644]
level_3/fake/data/projects/go/example_go/documents/readme [new file with mode: 0644]
level_3/fake/data/projects/go/example_go/sources/golang/main.go [new file with mode: 0644]
level_3/fake/documents/settings.txt
level_3/fake/specifications/settings.txt