versioning script

This commit is contained in:
2018-09-16 13:34:49 +02:00
parent e8138c26ef
commit 37ec92c72e
11 changed files with 98 additions and 9 deletions

1
.gitignore vendored
View File

@@ -20,3 +20,4 @@ PanoPainter.aps
panopainter-log.txt panopainter-log.txt
*.pano *.pano
frames/ frames/
engine/version.gen.h

Binary file not shown.

View File

@@ -766,7 +766,7 @@
<button-custom id="btn-clean-memory" margin="0 20 0 0"> <button-custom id="btn-clean-memory" margin="0 20 0 0">
<icon icon="delete" width="20"/> <icon icon="delete" width="20"/>
</button-custom> </button-custom>
<text text="PanoPainter 0.1.2 alpha" font-face="arial" font-size="11" margin="0 10 0 0" color=".2 .5 1 1"/> <text id="version" text="PanoPainter" font-face="arial" font-size="11" margin="0 10 0 0" color=".2 .5 1 1"/>
</node> </node>
</border> </border>
<!-- toolbar --> <!-- toolbar -->

View File

@@ -119,8 +119,7 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
<PreBuildEvent> <PreBuildEvent>
<Command> <Command>python .\scripts\pre-build.py debug</Command>
</Command>
</PreBuildEvent> </PreBuildEvent>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -163,8 +162,7 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
<PreBuildEvent> <PreBuildEvent>
<Command> <Command>python .\scripts\pre-build.py release</Command>
</Command>
</PreBuildEvent> </PreBuildEvent>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
@@ -230,6 +228,10 @@
<ClCompile Include="engine\shape.cpp" /> <ClCompile Include="engine\shape.cpp" />
<ClCompile Include="engine\texture.cpp" /> <ClCompile Include="engine\texture.cpp" />
<ClCompile Include="engine\util.cpp" /> <ClCompile Include="engine\util.cpp" />
<ClCompile Include="engine\version.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="engine\wacom.cpp" /> <ClCompile Include="engine\wacom.cpp" />
<ClCompile Include="libs\jpeg\jpgd.cpp"> <ClCompile Include="libs\jpeg\jpgd.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
@@ -336,6 +338,8 @@
<ClInclude Include="engine\shape.h" /> <ClInclude Include="engine\shape.h" />
<ClInclude Include="engine\texture.h" /> <ClInclude Include="engine\texture.h" />
<ClInclude Include="engine\util.h" /> <ClInclude Include="engine\util.h" />
<ClInclude Include="engine\version.gen.h" />
<ClInclude Include="engine\version.h" />
<ClInclude Include="engine\wacom.h" /> <ClInclude Include="engine\wacom.h" />
<ClInclude Include="libs\jpeg\jpgd.h" /> <ClInclude Include="libs\jpeg\jpgd.h" />
<ClInclude Include="libs\jpeg\jpge.h" /> <ClInclude Include="libs\jpeg\jpge.h" />

View File

@@ -249,6 +249,9 @@
<ClCompile Include="engine\node_panel_grid.cpp"> <ClCompile Include="engine\node_panel_grid.cpp">
<Filter>Source Files\ui</Filter> <Filter>Source Files\ui</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="engine\version.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="engine\app.h"> <ClInclude Include="engine\app.h">
@@ -440,6 +443,12 @@
<ClInclude Include="engine\node_panel_grid.h"> <ClInclude Include="engine\node_panel_grid.h">
<Filter>Header Files\ui</Filter> <Filter>Header Files\ui</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="engine\version.gen.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="engine\version.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="PanoPainter.rc"> <ResourceCompile Include="PanoPainter.rc">

View File

@@ -632,6 +632,13 @@ void App::initLayout()
init_menu_layer(); init_menu_layer();
init_menu_timelapse(); init_menu_timelapse();
// set version string
if (auto* version_label = layout[main_id]->find<NodeText>("version"))
{
version_label->set_text(g_version);
}
if (auto* menu_entry = layout[main_id]->find<NodeButtonCustom>("menu-about")) if (auto* menu_entry = layout[main_id]->find<NodeButtonCustom>("menu-about"))
{ {
menu_entry->on_click = [=](Node*) { menu_entry->on_click = [=](Node*) {

View File

@@ -357,6 +357,9 @@ int main(int argc, char** argv)
LOG("GL vendor: %s", glGetString(GL_VENDOR)); LOG("GL vendor: %s", glGetString(GL_VENDOR));
LOG("GL renderer: %s", glGetString(GL_RENDERER)); LOG("GL renderer: %s", glGetString(GL_RENDERER));
static wchar_t window_title[512];
swprintf_s(window_title, L"PanoPainter %s", g_version_number_w);
// If supported create a 3.1 context // If supported create a 3.1 context
if (wglewIsSupported("WGL_ARB_create_context")) if (wglewIsSupported("WGL_ARB_create_context"))
{ {
@@ -388,7 +391,7 @@ int main(int argc, char** argv)
wglDeleteContext(hRC); wglDeleteContext(hRC);
DestroyWindow(hWnd); DestroyWindow(hWnd);
hWnd = CreateWindow(wc.lpszClassName, L"PanoPainter 0.1.2 alpha - OpenGL 3.1", WS_OVERLAPPEDWINDOW, hWnd = CreateWindow(wc.lpszClassName, window_title, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, clientRect.right - clientRect.left, CW_USEDEFAULT, CW_USEDEFAULT, clientRect.right - clientRect.left,
clientRect.bottom - clientRect.top, 0, 0, hInst, 0); clientRect.bottom - clientRect.top, 0, 0, hInst, 0);
@@ -451,9 +454,9 @@ int main(int argc, char** argv)
if (one_sec > 1.f) if (one_sec > 1.f)
{ {
static char title[512]; static wchar_t title_fps[512];
sprintf_s(title, "PanoPainter 0.1.2 alpha - OpenGL 3.1 - %d fps", frames); swprintf_s(title_fps, L"%s - %d fps", window_title, frames);
SetWindowTextA(hWnd, title); SetWindowText(hWnd, title_fps);
one_sec = 0; one_sec = 0;
frames = 0; frames = 0;
} }

View File

@@ -1,5 +1,7 @@
//#pragma once //#pragma once
#include "version.h"
#define USE_VBO 1 #define USE_VBO 1
#define USE_SAMPLER 1 #define USE_SAMPLER 1

11
engine/version.cpp Normal file
View File

@@ -0,0 +1,11 @@
#include "version.h"
#include "version.gen.h"
#include "windows.h"
const char* g_version = PP_VERSION_STRING;
const char* g_version_number = PP_VERSION_NUMBER_STRING;
const char* g_window_title = "PanoPainter " PP_VERSION_NUMBER_STRING;
const wchar_t* g_version_w = TEXT(PP_VERSION_STRING);
const wchar_t* g_version_number_w = TEXT(PP_VERSION_NUMBER_STRING);
const wchar_t* g_window_title_w = L"PanoPainter " TEXT(PP_VERSION_NUMBER_STRING);

9
engine/version.h Normal file
View File

@@ -0,0 +1,9 @@
#pragma once
extern const char* g_version;
extern const char* g_version_number;
extern const char* g_window_title;
extern const wchar_t* g_version_w;
extern const wchar_t* g_version_number_w;
extern const wchar_t* g_window_title_w;

43
scripts/pre-build.py Normal file
View File

@@ -0,0 +1,43 @@
from subprocess import Popen, PIPE, check_output
from tempfile import mkstemp
from shutil import move
from os import remove, close
import re, subprocess, sys
branch = check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]).rstrip().decode("utf-8")
shorthash = check_output(["git", "log", "--pretty=format:%h", "-n 1"]).rstrip().decode("utf-8")
revcount = len(check_output(["git", "log", "--oneline"]).split(b'\n')) - 1
tag = check_output(["git", "describe", "--tags", "--abbrev=0"]).rstrip().decode("utf-8")
config = sys.argv[1]
version = "%s.%d (%s-%s-%s)" % (tag, revcount, shorthash, branch, config)
version_number = "%s.%d" % (tag, revcount)
print("Compiling version: %s" % version)
version_gen_h = '// AUTO GENERATED FILE - DON\'T MODIFY\n'
version_gen_h += '#define PP_VERSION_NUMBER_STRING "%s"\n' % version_number
version_gen_h += '#define PP_VERSION_STRING "%s"\n' % version
f = open("engine/version.gen.h", "w")
f.write(version_gen_h)
"""
file_path = "Setup\\Product.wxs";
#Create temp file
fh, abs_path = mkstemp()
regex = re.compile(r'Version="\d+\.\d+\.\d+\.\d+"')
with open(abs_path,'w') as new_file:
with open(file_path) as old_file:
for line in old_file:
new_line = regex.sub('Version="%s"' % version, line)
new_file.write(new_line)
close(fh)
#Remove original file
remove(file_path)
#Move new file
move(abs_path, file_path)
"""
exit(0)