Eclipse кроссплатформенный метод для получения git rev в version.h - PullRequest
0 голосов
/ 25 октября 2018

Я использую eclipse indigo (не могу обновиться до более новых версий, так как это индиго упаковано в среде поставщика).Я помещаю хэш git commit в файл version.h, используя шаг предварительной сборки, чтобы запустить (дерьмовый) пакетный файл (эй, я признаю, что был сценаристом-котенком, который копает вещи вместе, чтобы выполнить работу):

rem echo off
git rev-parse HEAD >> commithash
setlocal enabledelayedexpansion 
set "line=" 
for /f "delims=" %%a in (commithash) do set "line=!line!%%a" 
echo char * version=^"%line%^"; > ..\Application\version.h
del commithash

Результат таков: char * version = "e016e6df4f17e7fd982d9a2575d8410eadf3c4b2";

Теперь мне нужно взять этот же проект и скомпилировать его в Linux.Несмотря на то, что есть способы запустить один и тот же сценарий в Windows и Linux, я уверен, что сделал его намного хуже, чем нужно.Я уверен, что есть способ использовать make-файл (я использую управляемые make-файлы), чтобы сделать именно это, но я не могу найти, где взять документацию, объясняющую (всю) систему make затмения, чтобы я мог по-настоящему понять.Я попытался сделать это, добавив компоновщик, но это не работает, и снова я не могу найти, где взять документацию, которая объясняет (полностью) систему «компоновщика» затмения, чтобы я мог по-настоящему понять.Итак, мой трехэтапный вопрос:

1) Где я могу получить что-то, объясняющее, как работает система индиго-затмения, и как работает система компоновки (и я не хочу, чтобы документация по затмению, в которой говорилось, какая кнопкащелкнуть, чтобы открыть диалоговое окно конструктора и как ввести текст в поля и какую кнопку нажать, чтобы закрыть диалоговое окно).Я хочу понять, что происходит и как это работает.

2) Если ресурс в (1) не существует, как мне настроить компоновщик, который действительно работает (я пытался, искал, экспериментировал и тратил слишком много долларов клиента), чтобы сделать это?

3) Если ни один (1), ни (2) невозможны, как я могу создать make-файл (шаг?), Который будет выполнять эту кроссплатформенность?

Заранее большое понимание.Я мог бы даже отправить наличные, если требуется.

...