gradle / gradle/gradle-native

Support customization and extension of the tool chain model

Open
#91 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
94
Forks
7
PR merge metrics
No merged PRs in 30d

Description

Hi

On Windows, there are 2 additional use cases where Gradle could provide an definition/integration/customisation/extension in the toolchain model. Below a simple graph depicting the toolchain for the Oracle Pro*Cpp precompiler (proc.exe) and the Windows Message Compiler(mc.exe), along the already provided tools from Gradle: the assembler(as.exe) and the Windows Resource Compiler(rc.exe).

The Oracle Pro*Cpp precompiler translates a .pc source code with embedded sql into a pure .cpp code which then should go to the C Preprocessor or the C++ compiler.

The Window Message Compiler takes a .mc file and translates it into a .h file, a .rc file and a .bin file. The .h should be included in the C/Cpp tool, while the .rc file should be processed by the rc tool and the .bin used as input for the linker.
```
.pc --> proc.exe --> .c(pp) --> cpp.exe --> .c --> gcc.exe --> .o --> ld.exe -->.exe/.lib/.dll/.pdb/.def/.ilk
^ ^
.mc --> mc.exe --> .h ----------| |
--> .rc --------------------------> rc.exe --> .res -----|
--> .bin ------------------------------------------------|
|
.as --> as.exe --> .o -------|
|
.rc --> rc.exe --> .res -----|



Windows Message Compiler : https://msdn.microsoft.com/en-us/library/windows/desktop/aa385638(v=vs.85).aspx
Windows Resource Compiler: https://msdn.microsoft.com/fr-fr/library/windows/desktop/aa381055(v=vs.85).aspx
Oracle Pro*C precompiler: https://docs.oracle.com/cd/B10501_01/appdev.920/a97269/pc_01int.htm#4197
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing Gradle's toolchain model and its existing assembler and Windows Resource Compiler support, then compare them with the requested proc.exe and mc.exe workflows described in the issue. Done means the model has a defined, usable way to customize or extend these tool chains and represent their generated outputs.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.