]> Kevux Git Server - fll/commit
Feature: Fake settings specification updates and enable simple golang support.
authorKevin Day <Kevin@kevux.org>
Mon, 23 Sep 2024 02:08:03 +0000 (21:08 -0500)
committerKevin Day <Kevin@kevux.org>
Mon, 23 Sep 2024 02:08:03 +0000 (21:08 -0500)
commitbd14ce4aea13be91597fefab2c472d95739f119b
treec7edf1c39046855230fb8279502ec661fb0f6e8b
parentfadb352cb4613722ac3d32a24e7c0d681c274a1f
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.
32 files changed:
build/stand_alone/fake.settings
level_3/fake/c/main/build.c
level_3/fake/c/main/build/enumeration.h
level_3/fake/c/main/build/library.c
level_3/fake/c/main/build/load.c
level_3/fake/c/main/build/object.c
level_3/fake/c/main/build/print/warning.c
level_3/fake/c/main/build/print/warning.h
level_3/fake/c/main/build/program.c
level_3/fake/c/main/build/string.c
level_3/fake/c/main/build/string.h
level_3/fake/c/main/clean.c
level_3/fake/c/main/common/string.c
level_3/fake/c/main/common/string.h
level_3/fake/c/main/common/type.c
level_3/fake/c/main/common/type.h
level_3/fake/c/main/fake.h
level_3/fake/c/main/make/operate.c
level_3/fake/c/main/print/debug.c [new file with mode: 0644]
level_3/fake/c/main/print/debug.h [new file with mode: 0644]
level_3/fake/c/main/skeleton.c
level_3/fake/data/build/settings
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