Przeglądaj źródła

Make in-code version info a module

Streetwalrus Einstein 10 lat temu
rodzic
commit
88b38e8bc4
8 zmienionych plików z 41 dodań i 42 usunięć
  1. 0 2
      .gitignore
  2. 4 5
      rules.mk
  3. 2 2
      src/rules.mk
  4. 1 0
      version/.gitignore
  5. 9 0
      version/rules.mk
  6. 21 0
      version/version.bash
  7. 4 0
      version/version.h
  8. 0 33
      versionning.bash

+ 0 - 2
.gitignore

@@ -6,8 +6,6 @@ bin
 art/sprites.c
 art/sprites.h
 art/*.cspr
-src/version.c
-src/version.h
 
 .ycm_extra_conf.pyc
 

+ 4 - 5
rules.mk

@@ -4,14 +4,11 @@ all: $(EXE)
 
 include $(wildcard */rules.mk)
 
-versionning:
-	@bash versionning.bash
-
-%.o: %.c | versionning
+%.o: %.c
 	@echo "CC: $@"
 	@$(CC) $(CFLAGS) -c $< -o $@
 
-%.o: %.cpp | art/sprites.h versionning
+%.o: %.cpp | art/sprites.h
 	@echo "CPP: $@"
 	@$(CPP) $(CPPFLAGS) -c $< -o $@
 
@@ -40,3 +37,5 @@ format:
 run: all
 	@echo "Sending $(EXE) to calculator"
 	@tilp -ns $(EXE) > /dev/null
+
+.FORCE:

+ 2 - 2
src/rules.mk

@@ -2,6 +2,6 @@ src_LOCAL_PATH := $(call whereami)
 
 include $(wildcard $(src_LOCAL_PATH)/*/rules.mk)
 
-SRCS_C += $(wildcard $(src_LOCAL_PATH)/*/*.c) $(src_LOCAL_PATH)/version.c
+SRCS_C += $(wildcard $(src_LOCAL_PATH)/*/*.c)
 SRCS_CPP += $(wildcard $(src_LOCAL_PATH)/*/*.cpp)
-INCLUDE += $(shell find $(src_LOCAL_PATH) -mindepth 1 -maxdepth 1 -type d) $(src_LOCAL_PATH)
+INCLUDE += $(shell find $(src_LOCAL_PATH) -mindepth 1 -maxdepth 1 -type d)

+ 1 - 0
version/.gitignore

@@ -0,0 +1 @@
+version.c

+ 9 - 0
version/rules.mk

@@ -0,0 +1,9 @@
+version_LOCAL_PATH := $(call whereami)
+
+SRCS_C += $(version_LOCAL_PATH)/version.c
+INCLUDE += $(version_LOCAL_PATH)
+
+CLEAN_SPEC += $(version_LOCAL_PATH)/version.c
+
+$(version_LOCAL_PATH)/version.c: .FORCE
+	@./$(version_LOCAL_PATH)/version.bash

+ 21 - 0
version/version.bash

@@ -0,0 +1,21 @@
+#!/bin/bash
+
+COMMIT_NUMBER=$(git describe --always)
+BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
+VERSION="$BRANCH_NAME-$COMMIT_NUMBER"
+
+DIRNAME=$(dirname "$0")
+
+source=$(cat <<EOF
+#include "version.h"
+
+const char git_version[] = "$VERSION";
+EOF
+)
+
+diff $DIRNAME/version.c <(echo "$source") > /dev/null 2>&1
+if [[ $? -ne 0 ]]
+  then
+  echo "Updating version source"
+  echo "$source" > $DIRNAME/version.c
+fi

+ 4 - 0
version/version.h

@@ -0,0 +1,4 @@
+#ifndef INCLUDE_VERSION_H
+#define INCLUDE_VERSION_H
+extern const char git_version[];
+#endif

+ 0 - 33
versionning.bash

@@ -1,33 +0,0 @@
-#!/bin/bash
-
-COMMIT_NUMBER=$(git describe --always)
-BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
-VERSION="$BRANCH_NAME-$COMMIT_NUMBER"
-
-source=$(cat <<EOF
-#include "version.h"
-
-const char git_version[] = "$VERSION";
-EOF
-)
-
-include=$(cat <<EOF
-#ifndef INCLUDE_VERSION_H
-#define INCLUDE_VERSION_H
-extern const char git_version[];
-#endif
-EOF
-)
-
-diff src/version.c <(echo "$source") > /dev/null 2>&1
-if [[ $? -ne 0 ]]
-  then
-  echo "Updating version source"
-  echo "$source" > src/version.c
-fi
-diff src/version.h <(echo "$include") > /dev/null 2>&1
-if [[ $? -ne 0 ]]
-  then
-  echo "Updating version include"
-  echo "$include" > src/version.h
-fi