New versioning scheme (currently v0.1.1-2)

This commit is contained in:
Luke Street 2021-03-28 14:07:38 -04:00
parent 879cf852c3
commit a72c14f5fb
19 changed files with 114 additions and 113 deletions

View File

@ -53,23 +53,20 @@ jobs:
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: |
cmake $GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DURDE_VECTOR_ISA=sse41 \
-DCMAKE_C_COMPILER=${{matrix.cc}} -DCMAKE_CXX_COMPILER=${{matrix.cxx}} \
-DURDE_DLPACKAGE=urde-$GITHUB_RUN_NUMBER-linux-x86_64-sse41
cmake $GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_C_COMPILER=${{matrix.cc}} -DCMAKE_CXX_COMPILER=${{matrix.cxx}}
- name: Build
working-directory: ${{github.workspace}}/build
run: cmake --build . --config $BUILD_TYPE
- name: Generate AppImage
env:
VERSION: ${{github.run_number}}
run: ci/build-appimage.sh
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: urde-${{github.run_number}}-linux-${{matrix.cc}}-x86_64
name: urde-${{env.URDE_VERSION}}-linux-${{matrix.cc}}-x86_64
path: URDE-*.AppImage
build-macos:
@ -93,8 +90,7 @@ jobs:
working-directory: ${{github.workspace}}/build
run: |
export PATH="/usr/local/opt/qt@5/bin:$PATH" # FIXME remove
cmake $GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DURDE_VECTOR_ISA=sse41 \
-DURDE_DLPACKAGE=urde-$GITHUB_RUN_NUMBER-macos-x86_64-sse41
cmake $GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo
- name: Build
working-directory: ${{github.workspace}}/build
@ -123,7 +119,7 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: urde-${{github.run_number}}-macos-appleclang-x86_64
name: urde-${{env.URDE_VERSION}}-macos-appleclang-x86_64
path: build/Binaries/*.dmg
build-windows-msvc:
@ -166,12 +162,11 @@ jobs:
working-directory: ${{github.workspace}}/build
run: |
$workspace = $env:RUNNER_WORKSPACE -replace '\\', '/'
cmake $env:GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DURDE_VECTOR_ISA=sse41 `
cmake $env:GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_TOOLCHAIN_FILE="$workspace/vcpkg-qt-$env:Qt_VERSION/scripts/buildsystems/vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET=x64-windows-static `
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_CXX_FLAGS= -DCMAKE_C_FLAGS= `
-DLLVM_ROOT_DIR="$workspace/LLVM" `
-DURDE_DLPACKAGE="urde-$env:GITHUB_RUN_NUMBER-win32-x86_64-sse41"
-DLLVM_ROOT_DIR="$workspace/LLVM"
- name: Build
working-directory: ${{github.workspace}}/build
@ -180,7 +175,7 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: urde-${{github.run_number}}-win32-msvc-x86_64
name: ${{env.URDE_VERSION}}-msvc
path: |
build/Binaries/urde.exe
build/Binaries/hecl.exe
@ -227,15 +222,14 @@ jobs:
working-directory: ${{github.workspace}}/build
run: |
$workspace = $env:RUNNER_WORKSPACE -replace '\\', '/'
cmake $env:GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DURDE_VECTOR_ISA=sse41 `
cmake $env:GITHUB_WORKSPACE -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_TOOLCHAIN_FILE="$workspace/vcpkg-qt-$env:Qt_VERSION/scripts/buildsystems/vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET=x64-windows-static `
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `
-DCMAKE_C_COMPILER="$workspace/LLVM/bin/clang-cl.exe" `
-DCMAKE_CXX_COMPILER="$workspace/LLVM/bin/clang-cl.exe" `
-DCMAKE_LINKER="$workspace/LLVM/bin/lld-link.exe" `
-DLLVM_ROOT_DIR="$workspace/LLVM" `
-DURDE_DLPACKAGE="urde-$env:GITHUB_RUN_NUMBER-win32-x86_64-sse41"
-DLLVM_ROOT_DIR="$workspace/LLVM"
- name: Build
working-directory: ${{github.workspace}}/build
@ -244,7 +238,7 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: urde-${{github.run_number}}-win32-clang-x86_64
name: urde-${{env.URDE_VERSION}}-win32-clang-x86_64
path: |
build/Binaries/urde.exe
build/Binaries/hecl.exe

View File

@ -4,6 +4,71 @@ cmake_policy(SET CMP0079 NEW)
# Set MSVC runtime library flags from CMAKE_MSVC_RUNTIME_LIBRARY
cmake_policy(SET CMP0091 NEW)
# obtain revision info from git
find_package(Git)
if (GIT_FOUND)
# make sure version information gets re-run when the current Git HEAD changes
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --git-path HEAD
OUTPUT_VARIABLE urde_git_head_filename
OUTPUT_STRIP_TRAILING_WHITESPACE)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${urde_git_head_filename}")
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --symbolic-full-name HEAD
OUTPUT_VARIABLE urde_git_head_symbolic
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${GIT_EXECUTABLE} rev-parse --git-path ${urde_git_head_symbolic}
OUTPUT_VARIABLE urde_git_head_symbolic_filename
OUTPUT_STRIP_TRAILING_WHITESPACE)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${urde_git_head_symbolic_filename}")
# defines URDE_WC_REVISION
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
OUTPUT_VARIABLE URDE_WC_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE)
# defines URDE_WC_DESCRIBE
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --tag --long --dirty
OUTPUT_VARIABLE URDE_WC_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE)
# remove hash (and trailing "-0" if needed) from description
string(REGEX REPLACE "(-0)?-[^-]+((-dirty)?)$" "\\2" URDE_WC_DESCRIBE "${URDE_WC_DESCRIBE}")
# defines URDE_WC_BRANCH
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
OUTPUT_VARIABLE URDE_WC_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE)
# defines URDE_WC_DATE
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} log -1 --format=%ad
OUTPUT_VARIABLE URDE_WC_DATE
OUTPUT_STRIP_TRAILING_WHITESPACE)
else ()
message(STATUS "Unable to find git, commit information will not be available")
endif ()
if (URDE_WC_DESCRIBE)
string(REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+).*" "\\1.\\2.\\3.\\4" URDE_VERSION_STRING "${URDE_WC_DESCRIBE}")
string(REGEX REPLACE "v([0-9]+)\.([0-9]+)\.([0-9]+).*" "\\1.\\2.\\3" URDE_VERSION_STRING "${URDE_VERSION_STRING}")
else ()
set(URDE_WC_DESCRIBE "UNKNOWN-VERSION")
set(URDE_VERSION_STRING "0.0.0")
endif ()
string(TIMESTAMP CURRENT_YEAR "%Y")
# Add version information to CI environment variables
if(DEFINED ENV{GITHUB_ENV})
file(APPEND "$ENV{GITHUB_ENV}" "URDE_VERSION=${URDE_WC_DESCRIBE}")
endif()
if (APPLE)
set(PLATFORM_NAME macos)
elseif (WIN32)
set(PLATFORM_NAME win32)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(PLATFORM_NAME linux)
endif ()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Binaries)
if(APPLE)
@ -37,7 +102,7 @@ if(CMAKE_CROSSCOMPILING)
set(HAVE_WORDS_BIGENDIAN_EXITCODE 0 CACHE INTEGER "Makes soxr happy" FORCE)
endif()
project(urde VERSION 0.1.0)
project(urde VERSION ${URDE_VERSION_STRING})
# MSVC has a "latest" flag, which always uses the newest standard
# when available. GCC and Clang posess no such flag, and must be
@ -269,8 +334,6 @@ endif()
add_subdirectory(nod)
set(HECL_DLPACKAGE ${URDE_DLPACKAGE})
set(DATA_SPEC_LIBS RetroDataSpec AssetNameMap)
set(HECL_DATASPEC_DECLS
"/* RetroCommon specs */
@ -385,26 +448,4 @@ if (NOT WINDOWS_STORE AND NOT NX)
endif()
endif()
unset(GIT_EXECUTABLE CACHE)
find_package(Git)
if(GIT_FOUND)
# Get the current working branch
execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE )
# Get the latest abbreviated commit hash of the working branch
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE
GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE
GIT_COMMIT_HASH_FULL OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%ad WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE
GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
message(STATUS "Unable to find GIT, commit information will not be available")
set(GIT_BRANCH "")
set(GIT_COMMIT_HASH "")
set(GIT_COMMIT_HASH_FULL "")
set(GIT_COMMIT_DATE "")
endif()
configure_file(${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_BINARY_DIR}/version.h)

View File

@ -2,12 +2,6 @@ add_subdirectory(locale)
add_subdirectory(icons)
add_subdirectory(badging)
if(URDE_DLPACKAGE)
set(METADATA_VERSION_STRING ${URDE_DLPACKAGE})
else()
set(METADATA_VERSION_STRING "BETA")
endif()
unset(URDE_PLAT_LIBS)
if(WIN32)
@ -83,8 +77,6 @@ add_executable(urde WIN32
Camera.hpp Camera.cpp
GameMode.hpp GameMode.cpp)
target_compile_definitions(urde PUBLIC URDE_DLPACKAGE="${URDE_DLPACKAGE}")
target_include_directories(urde PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}

View File

@ -2,6 +2,7 @@
#include "ViewManager.hpp"
#include "DataSpecRegistry.hpp"
#include "hecl/Blender/Connection.hpp"
#include "version.h"
namespace urde {
static logvisor::Module Log("URDE::ProjectManager");
@ -63,8 +64,8 @@ bool ProjectManager::newProject(hecl::SystemStringView path) {
m_vm.SetupEditorView();
saveProject();
m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE [{}]")),
m_proj->getProjectRootPath().getLastComponent(), m_vm.platformName()));
m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE {} [{}]")),
m_proj->getProjectRootPath().getLastComponent(), URDE_WC_DESCRIBE, m_vm.platformName()));
m_vm.DismissSplash();
m_vm.FadeInEditors();
@ -103,8 +104,8 @@ bool ProjectManager::openProject(hecl::SystemStringView path) {
if (needsSave)
saveProject();
m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE [{}]")),
m_proj->getProjectRootPath().getLastComponent(), m_vm.platformName()));
m_vm.m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("{} - URDE {} [{}]")),
m_proj->getProjectRootPath().getLastComponent(), URDE_WC_DESCRIBE, m_vm.platformName()));
m_vm.DismissSplash();
m_vm.FadeInEditors();
m_vm.pushRecentProject(m_proj->getProjectRootPath().getAbsolutePath());

View File

@ -33,19 +33,13 @@ SplashScreen::SplashScreen(ViewManager& vm, specter::ViewResources& res)
, m_newProjBind(*this)
, m_openProjBind(*this)
, m_extractProjBind(*this) {
if (GIT_COMMIT_DATE[0] != '\0' && GIT_COMMIT_HASH[0] != '\0' && GIT_BRANCH[0] != '\0') {
#ifdef URDE_DLPACKAGE
if ((URDE_DLPACKAGE)[0])
m_buildInfoStr = fmt::format(FMT_STRING("{}: {}\n{}: {}\n{}: {}"), vm.translate<locale::release>(),
URDE_DLPACKAGE, vm.translate<locale::commit>(), GIT_COMMIT_HASH,
vm.translate<locale::date>(), GIT_COMMIT_DATE);
else
#endif
m_buildInfoStr = fmt::format(FMT_STRING("{}: {}\n{}: {}\n{}: {}"), vm.translate<locale::branch>(), GIT_BRANCH,
vm.translate<locale::commit>(), GIT_COMMIT_HASH,
vm.translate<locale::date>(), GIT_COMMIT_DATE);
if (URDE_WC_DATE[0] != '\0' && URDE_WC_REVISION[0] != '\0' && URDE_WC_BRANCH[0] != '\0') {
m_buildInfoStr = fmt::format(FMT_STRING("{}: {}\n{}: {}\n{}: {}"),
vm.translate<locale::version>(), URDE_WC_DESCRIBE,
vm.translate<locale::branch>(), URDE_WC_BRANCH,
vm.translate<locale::commit>(), URDE_WC_REVISION/*,
vm.translate<locale::date>(), URDE_WC_DATE*/);
}
m_openProjBind.m_openRecentMenuRoot.m_text = vm.translate<locale::recent_projects>();
m_textColorClear[3] = 0.0;
}

View File

@ -16,6 +16,7 @@
#include "Runtime/CStateManager.hpp"
#include "Runtime/World/CPlayer.hpp"
#include "hecl/Pipeline.hpp"
#include "version.h"
#include <cstdio>
using YAMLNode = athena::io::YAMLNode;
@ -298,7 +299,7 @@ void ViewManager::init(boo::IApplication* app) {
m_pipelineConv = hecl::NewPipelineConverter(m_mainBooFactory);
hecl::conv = m_pipelineConv.get();
m_mainPlatformName = m_mainBooFactory->platformName();
m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("URDE [{}]")), m_mainPlatformName));
m_mainWindow->setTitle(fmt::format(FMT_STRING(_SYS_STR("URDE {} [{}]")), URDE_WC_DESCRIBE, m_mainPlatformName));
m_mainCommandQueue = m_mainWindow->getCommandQueue();
m_viewResources.init(m_mainBooFactory, &m_fontCache, &m_themeData, pixelFactor);
InitializeIcons(m_viewResources);

@ -1 +1 @@
Subproject commit c595cf725f657f3542264d7a244c14716ec41bfa
Subproject commit 77d6035f3b1b8b65a3cf1ea9f428e988af9fa195

View File

@ -8,6 +8,7 @@
#include "hecl/CVarCommons.hpp"
#include "hecl/Console.hpp"
#include "fmt/chrono.h"
#include "version.h"
static logvisor::Module AthenaLog("Athena");
static void AthenaExc(athena::error::Level level, const char* file, const char*, int line, fmt::string_view fmt,

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>urde</string>
<key>CFBundleGetInfoString</key>
<string>@METADATA_VERSION_STRING@</string>
<key>CFBundleShortVersionString</key>
<string>@METADATA_VERSION_STRING@</string>
<key>NSHumanReadableCopyright</key>
<string>2015-2018 Antidote / Jackoalan</string>
<key>CFBundleIconFile</key>
<string>mainicon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.axiodl.URDE</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>URDE</string>
<key>CFBundleVersion</key>
<string>@METADATA_VERSION_STRING@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

Binary file not shown.

View File

@ -16,14 +16,14 @@ BEGIN
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "CompanyName", "Antidote / Jackoalan"
VALUE "CompanyName", "AxioDL"
VALUE "FileDescription", "URDE"
VALUE "FileVersion", "@METADATA_VERSION_STRING@"
VALUE "LegalCopyright", "Copyright (C) 2015-2018 Antidote / Jackoalan"
VALUE "FileVersion", "@URDE_WC_DESCRIBE@"
VALUE "LegalCopyright", "Copyright (C) 2015-@CURRENT_YEAR@ AxioDL Team"
VALUE "InternalName", "urde"
VALUE "OriginalFilename", "urde.exe"
VALUE "ProductName", "URDE"
VALUE "ProductVersion", "@METADATA_VERSION_STRING@"
VALUE "ProductVersion", "@URDE_WC_DESCRIBE@"
END
END
BLOCK "VarFileInfo"

View File

@ -12,4 +12,4 @@ strip -s appdir/usr/bin/{hecl,hecl-gui,urde,visigen}
cp -r Editor/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} appdir/usr/share/icons/hicolor
cp Editor/platforms/freedesktop/urde.desktop appdir/usr/share/applications
sed -i 's/Exec=.*/Exec=hecl-gui/' appdir/usr/share/applications/urde.desktop
./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage
VERSION="$URDE_VERSION" ./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage

2
hecl

@ -1 +1 @@
Subproject commit 0a94455b7e92925db28fe2d86ab840f14e097ff3
Subproject commit 9c1f2be4a417b07fffbcb3ff5a61b9ee599d6766

@ -1 +1 @@
Subproject commit 4ddebd203cc4653fd386e43059bd47c51797c4f7
Subproject commit 636318cfb5e1a88ea3e67cb180b82c2770860396

View File

@ -1,9 +1,17 @@
#ifndef VERSION_H
#define VERSION_H
#define GIT_BRANCH "@GIT_BRANCH@"
#define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@"
#define GIT_COMMIT_HASH_FULL "@GIT_COMMIT_HASH_FULL@"
#define GIT_COMMIT_DATE "@GIT_COMMIT_DATE@"
#define URDE_WC_DESCRIBE "@URDE_WC_DESCRIBE@"
#define URDE_VERSION_STRING "@URDE_VERISON_STRING@"
#define URDE_WC_BRANCH "@URDE_WC_BRANCH@"
#define URDE_WC_REVISION "@URDE_WC_REVISION@"
#define URDE_WC_DATE "@URDE_WC_DATE@"
#if defined(__x86_64__) || defined(_M_AMD64)
#define URDE_DLPACKAGE "urde-@URDE_WC_DESCRIBE@-@PLATFORM_NAME@-x86_64-@URDE_VECTOR_ISA@"
#elif defined(__aarch64__) || defined(_M_ARM64)
#define URDE_DLPACKAGE "urde-@URDE_WC_DESCRIBE@-@PLATFORM_NAME@-arm64"
#endif
#endif

View File

@ -37,8 +37,6 @@ else()
target_sources(visigen PRIVATE MainXlib.cpp)
endif()
set_target_properties(visigen PROPERTIES COMPILE_DEFINITIONS URDE_DLPACKAGE="${URDE_DLPACKAGE}")
if(APPLE)
find_library(OPENGL_LIBRARY OpenGL)
target_link_libraries(visigen PRIVATE ${OPENGL_LIBRARY})

View File

@ -2,6 +2,7 @@
#include <AppKit/AppKit.h>
#include "athena/Global.hpp"
#include "logvisor/logvisor.hpp"
#include "../version.h"
#include <thread>
#if !__has_feature(objc_arc)

View File

@ -5,6 +5,7 @@
#include <strsafe.h>
#include "athena/Global.hpp"
#include "logvisor/logvisor.hpp"
#include "../version.h"
#include <thread>
static logvisor::Module AthenaLog("Athena");

View File

@ -4,6 +4,7 @@
#include <GL/glx.h>
#include "athena/Global.hpp"
#include "logvisor/logvisor.hpp"
#include "../version.h"
#include <thread>
#include <condition_variable>
#include <cstdint>