mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Parse odin version date out of HEAD commit if available
This commit is contained in:
@@ -19,16 +19,27 @@ if "%VSCMD_ARG_TGT_ARCH%" neq "x64" (
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
where /Q git.exe || goto skip_git_hash
|
||||||
|
if not exist .git\ goto skip_git_hash
|
||||||
|
for /f "tokens=1,2" %%i IN ('git show "--pretty=%%cd %%h" "--date=format:%%Y-%%m-%%d" --no-patch --no-notes HEAD') do (
|
||||||
|
set CURR_DATE_TIME=%%i
|
||||||
|
set GIT_SHA=%%j
|
||||||
|
)
|
||||||
|
if %ERRORLEVEL% equ 0 (
|
||||||
|
goto have_git_hash_and_date
|
||||||
|
)
|
||||||
|
:skip_git_hash
|
||||||
pushd misc
|
pushd misc
|
||||||
cl /nologo get-date.c
|
cl /nologo get-date.c
|
||||||
popd
|
for /f %%i in ('get-date') do (
|
||||||
|
|
||||||
for /f %%i in ('misc\get-date') do (
|
|
||||||
set CURR_DATE_TIME=%%i
|
set CURR_DATE_TIME=%%i
|
||||||
|
rem Don't set GIT_SHA
|
||||||
)
|
)
|
||||||
|
popd
|
||||||
|
:have_git_hash_and_date
|
||||||
set curr_year=%CURR_DATE_TIME:~0,4%
|
set curr_year=%CURR_DATE_TIME:~0,4%
|
||||||
set curr_month=%CURR_DATE_TIME:~4,2%
|
set curr_month=%CURR_DATE_TIME:~5,2%
|
||||||
set curr_day=%CURR_DATE_TIME:~6,2%
|
set curr_day=%CURR_DATE_TIME:~8,2%
|
||||||
|
|
||||||
:: Make sure this is a decent name and not generic
|
:: Make sure this is a decent name and not generic
|
||||||
set exe_name=odin.exe
|
set exe_name=odin.exe
|
||||||
@@ -61,31 +72,14 @@ if %release_mode% equ 0 (
|
|||||||
set V4=0
|
set V4=0
|
||||||
set odin_version_full="%V1%.%V2%.%V3%.%V4%"
|
set odin_version_full="%V1%.%V2%.%V3%.%V4%"
|
||||||
set odin_version_raw="dev-%V1%-%V2%"
|
set odin_version_raw="dev-%V1%-%V2%"
|
||||||
|
|
||||||
set compiler_flags= -nologo -Oi -TP -fp:precise -Gm- -MP -FC -EHsc- -GR- -GF
|
set compiler_flags= -nologo -Oi -TP -fp:precise -Gm- -MP -FC -EHsc- -GR- -GF
|
||||||
rem Parse source code as utf-8 even on shift-jis and other codepages
|
rem Parse source code as utf-8 even on shift-jis and other codepages
|
||||||
rem See https://learn.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-170
|
rem See https://learn.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-170
|
||||||
set compiler_flags= %compiler_flags% /utf-8
|
set compiler_flags= %compiler_flags% /utf-8
|
||||||
set compiler_defines= -DODIN_VERSION_RAW=\"%odin_version_raw%\"
|
set compiler_defines= -DODIN_VERSION_RAW=\"%odin_version_raw%\" -DGIT_SHA=\"%GIT_SHA%\"
|
||||||
|
|
||||||
rem fileversion is defined as {Major,Minor,Build,Private: u16} so a bit limited
|
rem fileversion is defined as {Major,Minor,Build,Private: u16} so a bit limited
|
||||||
set rc_flags=-nologo ^
|
set rc_flags="-DGIT_SHA=%GIT_SHA% -DVP=dev-%V1%-%V2%:%GIT_SHA% nologo -DV1=%V1% -DV2=%V2% -DV3=%V3% -DV4=%V4% -DVF=%odin_version_full% -DNIGHTLY=%nightly%"
|
||||||
-DV1=%V1% -DV2=%V2% -DV3=%V3% -DV4=%V4% ^
|
|
||||||
-DVF=%odin_version_full% -DNIGHTLY=%nightly%
|
|
||||||
|
|
||||||
where /Q git.exe || goto skip_git_hash
|
|
||||||
if not exist .git\ goto skip_git_hash
|
|
||||||
for /f "tokens=1,2" %%i IN ('git show "--pretty=%%cd %%h" "--date=format:%%Y-%%m" --no-patch --no-notes HEAD') do (
|
|
||||||
set odin_version_raw=dev-%%i
|
|
||||||
set GIT_SHA=%%j
|
|
||||||
)
|
|
||||||
if %ERRORLEVEL% equ 0 (
|
|
||||||
set compiler_defines=%compiler_defines% -DGIT_SHA=\"%GIT_SHA%\"
|
|
||||||
set rc_flags=%rc_flags% -DGIT_SHA=%GIT_SHA% -DVP=%odin_version_raw%:%GIT_SHA%
|
|
||||||
) else (
|
|
||||||
set rc_flags=%rc_flags% -DVP=%odin_version_raw%
|
|
||||||
)
|
|
||||||
:skip_git_hash
|
|
||||||
|
|
||||||
if %nightly% equ 1 set compiler_defines=%compiler_defines% -DNIGHTLY
|
if %nightly% equ 1 set compiler_defines=%compiler_defines% -DNIGHTLY
|
||||||
|
|
||||||
@@ -153,4 +147,4 @@ if %release_mode% EQU 0 echo: & echo Debug compiler built. Note: run "build.bat
|
|||||||
|
|
||||||
del *.obj > NUL 2> NUL
|
del *.obj > NUL 2> NUL
|
||||||
|
|
||||||
:end_of_build
|
:end_of_build
|
||||||
+6
-2
@@ -6,7 +6,6 @@ set -eu
|
|||||||
: ${LDFLAGS=}
|
: ${LDFLAGS=}
|
||||||
: ${LLVM_CONFIG=}
|
: ${LLVM_CONFIG=}
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS -DODIN_VERSION_RAW=\"dev-$(date +"%Y-%m")\""
|
|
||||||
CXXFLAGS="$CXXFLAGS -std=c++14"
|
CXXFLAGS="$CXXFLAGS -std=c++14"
|
||||||
DISABLED_WARNINGS="-Wno-switch -Wno-macro-redefined -Wno-unused-value"
|
DISABLED_WARNINGS="-Wno-switch -Wno-macro-redefined -Wno-unused-value"
|
||||||
LDFLAGS="$LDFLAGS -pthread -lm"
|
LDFLAGS="$LDFLAGS -pthread -lm"
|
||||||
@@ -15,8 +14,12 @@ OS_NAME="$(uname -s)"
|
|||||||
|
|
||||||
if [ -d ".git" ] && [ -n "$(command -v git)" ]; then
|
if [ -d ".git" ] && [ -n "$(command -v git)" ]; then
|
||||||
GIT_SHA=$(git show --pretty='%h' --no-patch --no-notes HEAD)
|
GIT_SHA=$(git show --pretty='%h' --no-patch --no-notes HEAD)
|
||||||
|
GIT_DATE=$(git show "--pretty=%cd" "--date=format:%Y-%m" --no-patch --no-notes HEAD)
|
||||||
CPPFLAGS="$CPPFLAGS -DGIT_SHA=\"$GIT_SHA\""
|
CPPFLAGS="$CPPFLAGS -DGIT_SHA=\"$GIT_SHA\""
|
||||||
|
else
|
||||||
|
GIT_DATE=$(date +"%Y-%m")
|
||||||
fi
|
fi
|
||||||
|
CPPFLAGS="$CPPFLAGS -DODIN_VERSION_RAW=\"dev-$GIT_DATE\""
|
||||||
|
|
||||||
error() {
|
error() {
|
||||||
printf "ERROR: %s\n" "$1"
|
printf "ERROR: %s\n" "$1"
|
||||||
@@ -158,7 +161,8 @@ build_odin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
run_demo() {
|
run_demo() {
|
||||||
./odin run examples/demo -vet -strict-style -- Hellope World
|
#./odin run examples/demo -vet -strict-style -- Hellope World
|
||||||
|
./odin report
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
|
|||||||
+1
-1
@@ -9,5 +9,5 @@
|
|||||||
int main(int arg_count, char const **arg_ptr) {
|
int main(int arg_count, char const **arg_ptr) {
|
||||||
time_t t = time(NULL);
|
time_t t = time(NULL);
|
||||||
struct tm* now = localtime(&t);
|
struct tm* now = localtime(&t);
|
||||||
printf("%04d%02d%02d", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday);
|
printf("%04d-%02d-%02d", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday);
|
||||||
}
|
}
|
||||||
+7
-1
@@ -667,8 +667,14 @@ gb_internal void print_bug_report_help() {
|
|||||||
gb_printf("-nightly");
|
gb_printf("-nightly");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
String version = {};
|
||||||
|
|
||||||
#ifdef GIT_SHA
|
#ifdef GIT_SHA
|
||||||
gb_printf(":%s", GIT_SHA);
|
version.text = cast(u8 *)GIT_SHA;
|
||||||
|
version.len = gb_strlen(GIT_SHA);
|
||||||
|
if (version != "") {
|
||||||
|
gb_printf(":%.*s", LIT(version));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gb_printf("\n");
|
gb_printf("\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user