diff --git a/duckstation.sln b/duckstation.sln
index 79be65e9e..ff49bc430 100644
--- a/duckstation.sln
+++ b/duckstation.sln
@@ -47,6 +47,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "googletest", "dep\googletes
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common-tests", "src\common-tests\common-tests.vcxproj", "{EA2B9C7A-B8CC-42F9-879B-191A98680C10}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scmversion", "src\scmversion\scmversion.vcxproj", "{075CED82-6A20-46DF-94C7-9624AC9DDBEB}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -395,6 +397,22 @@ Global
{EA2B9C7A-B8CC-42F9-879B-191A98680C10}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
{EA2B9C7A-B8CC-42F9-879B-191A98680C10}.ReleaseLTCG|x86.ActiveCfg = ReleaseLTCG|Win32
{EA2B9C7A-B8CC-42F9-879B-191A98680C10}.ReleaseLTCG|x86.Build.0 = ReleaseLTCG|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Debug|x64.ActiveCfg = Debug|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Debug|x64.Build.0 = Debug|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Debug|x86.ActiveCfg = Debug|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Debug|x86.Build.0 = Debug|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast|x64.ActiveCfg = DebugFast|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast|x64.Build.0 = DebugFast|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast|x86.ActiveCfg = DebugFast|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast|x86.Build.0 = DebugFast|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|x64.ActiveCfg = Release|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|x64.Build.0 = Release|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|x86.ActiveCfg = Release|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|x86.Build.0 = Release|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.ReleaseLTCG|x86.ActiveCfg = ReleaseLTCG|Win32
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.ReleaseLTCG|x86.Build.0 = ReleaseLTCG|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 89181315f..9811a7b81 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -2,6 +2,7 @@ add_subdirectory(common)
add_subdirectory(common-tests)
add_subdirectory(core)
add_subdirectory(frontend-common)
+add_subdirectory(scmversion)
if(BUILD_SDL_FRONTEND)
add_subdirectory(duckstation-sdl)
diff --git a/src/duckstation-qt/CMakeLists.txt b/src/duckstation-qt/CMakeLists.txt
index 12b6a0bfa..2c1c8e842 100644
--- a/src/duckstation-qt/CMakeLists.txt
+++ b/src/duckstation-qt/CMakeLists.txt
@@ -48,7 +48,7 @@ add_executable(duckstation-qt
settingsdialog.ui
)
-target_link_libraries(duckstation-qt PRIVATE frontend-common core common imgui glad minizip Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network)
+target_link_libraries(duckstation-qt PRIVATE frontend-common core common imgui glad minizip scmversion Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network)
if(WIN32)
target_sources(duckstation-qt PRIVATE
diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj
index d4404eb79..1175129e7 100644
--- a/src/duckstation-qt/duckstation-qt.vcxproj
+++ b/src/duckstation-qt/duckstation-qt.vcxproj
@@ -95,6 +95,9 @@
{6245dec8-d2da-47ee-a373-cbd6fcf3ece6}
+
+ {075ced82-6a20-46df-94c7-9624ac9ddbeb}
+
diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp
index 0dc20e8e4..8e07f022e 100644
--- a/src/duckstation-qt/mainwindow.cpp
+++ b/src/duckstation-qt/mainwindow.cpp
@@ -8,6 +8,7 @@
#include "qtdisplaywidget.h"
#include "qthostinterface.h"
#include "qtsettingsinterface.h"
+#include "scmversion/scmversion.h"
#include "settingsdialog.h"
#include "settingwidgetbinder.h"
#include
@@ -24,6 +25,11 @@ static constexpr char DISC_IMAGE_FILTER[] =
"All File Types (*.bin *.img *.cue *.chd *.exe *.psexe);;Single-Track Raw Images (*.bin *.img);;Cue Sheets "
"(*.cue);;MAME CHD Images (*.chd);;PlayStation Executables (*.exe *.psexe);;Portable Sound Format Files (*.psf)";
+ALWAYS_INLINE static QString getWindowTitle()
+{
+ return QStringLiteral("DuckStation %1 (%2)").arg(g_scm_tag_str).arg(g_scm_branch_str);
+}
+
MainWindow::MainWindow(QtHostInterface* host_interface) : QMainWindow(nullptr), m_host_interface(host_interface)
{
m_host_interface->setMainWindow(this);
@@ -209,7 +215,7 @@ void MainWindow::onRunningGameChanged(const QString& filename, const QString& ga
{
m_host_interface->populateSaveStateMenus(game_code.toStdString().c_str(), m_ui.menuLoadState, m_ui.menuSaveState);
if (game_title.isEmpty())
- setWindowTitle(tr("DuckStation"));
+ setWindowTitle(getWindowTitle());
else
setWindowTitle(game_title);
@@ -368,6 +374,8 @@ void MainWindow::onGameListContextMenuRequested(const QPoint& point, const GameL
void MainWindow::setupAdditionalUi()
{
+ setWindowTitle(getWindowTitle());
+
m_game_list_widget = new GameListWidget(m_ui.mainContainer);
m_game_list_widget->initialize(m_host_interface);
m_ui.mainContainer->insertWidget(0, m_game_list_widget);
diff --git a/src/duckstation-sdl/CMakeLists.txt b/src/duckstation-sdl/CMakeLists.txt
index b25b4a4b6..8d7120851 100644
--- a/src/duckstation-sdl/CMakeLists.txt
+++ b/src/duckstation-sdl/CMakeLists.txt
@@ -10,7 +10,7 @@ add_executable(duckstation-sdl
)
target_include_directories(duckstation-sdl PRIVATE ${SDL2_INCLUDE_DIRS})
-target_link_libraries(duckstation-sdl PRIVATE core common imgui nativefiledialog glad frontend-common ${SDL2_LIBRARIES})
+target_link_libraries(duckstation-sdl PRIVATE core common imgui nativefiledialog glad frontend-common scmversion ${SDL2_LIBRARIES})
if(WIN32)
target_sources(duckstation-sdl PRIVATE
diff --git a/src/duckstation-sdl/duckstation-sdl.vcxproj b/src/duckstation-sdl/duckstation-sdl.vcxproj
index 300527d76..f0fd4e9c2 100644
--- a/src/duckstation-sdl/duckstation-sdl.vcxproj
+++ b/src/duckstation-sdl/duckstation-sdl.vcxproj
@@ -50,6 +50,9 @@
{6245dec8-d2da-47ee-a373-cbd6fcf3ece6}
+
+ {075ced82-6a20-46df-94c7-9624ac9ddbeb}
+
@@ -395,4 +398,4 @@
-
+
\ No newline at end of file
diff --git a/src/duckstation-sdl/sdl_host_interface.cpp b/src/duckstation-sdl/sdl_host_interface.cpp
index a37d482b3..c0d205a61 100644
--- a/src/duckstation-sdl/sdl_host_interface.cpp
+++ b/src/duckstation-sdl/sdl_host_interface.cpp
@@ -16,6 +16,7 @@
#include "imgui_impl_sdl.h"
#include "opengl_host_display.h"
#include "sdl_key_names.h"
+#include "scmversion/scmversion.h"
#include
#include
#include
@@ -39,6 +40,11 @@ const char* SDLHostInterface::GetFrontendName() const
return "DuckStation SDL/ImGui Frontend";
}
+ALWAYS_INLINE static TinyString GetWindowTitle()
+{
+ return TinyString::FromFormat("DuckStation %s (%s)", g_scm_tag_str, g_scm_branch_str);
+}
+
float SDLHostInterface::GetDPIScaleFactor(SDL_Window* window)
{
#ifdef __APPLE__
@@ -91,7 +97,7 @@ bool SDLHostInterface::CreateSDLWindow()
}
#endif
- m_window = SDL_CreateWindow("DuckStation", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, window_width,
+ m_window = SDL_CreateWindow(GetWindowTitle(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, window_width,
window_height, window_flags);
if (!m_window)
return false;
@@ -272,7 +278,7 @@ void SDLHostInterface::OnRunningGameChanged()
if (m_system && !m_system->GetRunningTitle().empty())
SDL_SetWindowTitle(m_window, m_system->GetRunningTitle().c_str());
else
- SDL_SetWindowTitle(m_window, "DuckStation");
+ SDL_SetWindowTitle(m_window, GetWindowTitle());
}
void SDLHostInterface::RequestExit()
diff --git a/src/frontend-common/CMakeLists.txt b/src/frontend-common/CMakeLists.txt
index 63c901df5..8ae1a95a8 100644
--- a/src/frontend-common/CMakeLists.txt
+++ b/src/frontend-common/CMakeLists.txt
@@ -25,5 +25,5 @@ if(SDL2_FOUND)
target_link_libraries(frontend-common PRIVATE ${SDL2_LIBRARIES})
endif()
-target_link_libraries(frontend-common PUBLIC core common imgui simpleini)
+target_link_libraries(frontend-common PUBLIC core common imgui simpleini scmversion)
diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp
index 886400ff1..0b3a8b632 100644
--- a/src/frontend-common/common_host_interface.cpp
+++ b/src/frontend-common/common_host_interface.cpp
@@ -9,6 +9,7 @@
#include "core/game_list.h"
#include "core/gpu.h"
#include "core/system.h"
+#include "scmversion/scmversion.h"
#ifdef WITH_SDL2
#include "sdl_audio_stream.h"
#include "sdl_controller_interface.h"
@@ -98,7 +99,7 @@ void CommonHostInterface::PowerOffSystem()
static void PrintCommandLineVersion(const char* frontend_name)
{
- std::fprintf(stderr, "%s Version \n", frontend_name);
+ std::fprintf(stderr, "%s Version %s (%s)\n", frontend_name, g_scm_tag_str, g_scm_branch_str);
std::fprintf(stderr, "https://github.com/stenzek/duckstation\n");
std::fprintf(stderr, "\n");
}
diff --git a/src/scmversion/.gitignore b/src/scmversion/.gitignore
new file mode 100644
index 000000000..e28644b2f
--- /dev/null
+++ b/src/scmversion/.gitignore
@@ -0,0 +1 @@
+scmversion.cpp
diff --git a/src/scmversion/CMakeLists.txt b/src/scmversion/CMakeLists.txt
new file mode 100644
index 000000000..1d4121ea5
--- /dev/null
+++ b/src/scmversion/CMakeLists.txt
@@ -0,0 +1,11 @@
+if(WIN32)
+ add_custom_command(OUTPUT scmversion.cpp COMMAND "cmd /k gen_scmversion.bat" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+else()
+ add_custom_command(OUTPUT scmversion.cpp COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/gen_scmversion.sh")
+endif()
+
+add_library(scmversion
+ scmversion.cpp
+ scmversion.h
+)
+
diff --git a/src/scmversion/gen_scmversion.bat b/src/scmversion/gen_scmversion.bat
new file mode 100644
index 000000000..616d49b79
--- /dev/null
+++ b/src/scmversion/gen_scmversion.bat
@@ -0,0 +1,23 @@
+@echo off
+
+SET VERSIONFILE="scmversion.cpp"
+FOR /F "tokens=* USEBACKQ" %%g IN (`git rev-parse --abbrev-ref HEAD`) do (SET "BRANCH=%%g")
+FOR /F "tokens=* USEBACKQ" %%g IN (`git describe --tags --dirty`) do (SET "TAG=%%g")
+
+SET SIGNATURELINE=// %BRANCH% %TAG%
+SET /P EXISTINGLINE=< %VERSIONFILE%
+
+IF "%EXISTINGLINE%"=="%SIGNATURELINE%" (
+ ECHO Signature matches, skipping writing %VERSIONFILE%
+ EXIT
+)
+
+ECHO Updating %VERSIONFILE%...
+
+(ECHO %SIGNATURELINE%
+ECHO const char* g_scm_branch_str = "%BRANCH%";
+ECHO const char* g_scm_tag_str = "%TAG%";
+)>%VERSIONFILE%
+
+EXIT
+
diff --git a/src/scmversion/gen_scmversion.sh b/src/scmversion/gen_scmversion.sh
new file mode 100755
index 000000000..6c93b8462
--- /dev/null
+++ b/src/scmversion/gen_scmversion.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+VERSION_FILE="scmversion.cpp"
+BRANCH=$(git rev-parse --abbrev-ref HEAD | tr -d '\r\n')
+TAG=$(git describe --tags --dirty | tr -d '\r\n')
+
+SIGNATURE_LINE="// ${BRANCH} ${TAG}"
+
+if [ -f $VERSION_FILE ]; then
+ EXISTING_LINE=$(head -n1 $VERSION_FILE | tr -d '\n')
+ if [ "$EXISTING_LINE" = "$SIGNATURE_LINE" ]; then
+ echo "Signature matches, skipping writing ${VERSION_FILE}"
+ exit 0
+ fi
+fi
+
+echo "Writing ${VERSION_FILE}..."
+
+cat > $VERSION_FILE << EOF
+${SIGNATURE_LINE}
+const char* g_scm_branch_str = "${BRANCH}";
+const char* g_scm_tag_str = "${TAG}";
+
+EOF
+
diff --git a/src/scmversion/scmversion.h b/src/scmversion/scmversion.h
new file mode 100644
index 000000000..b615da4b3
--- /dev/null
+++ b/src/scmversion/scmversion.h
@@ -0,0 +1,5 @@
+#pragma once
+
+extern const char* g_scm_branch_str;
+extern const char* g_scm_tag_str;
+
diff --git a/src/scmversion/scmversion.vcxproj b/src/scmversion/scmversion.vcxproj
new file mode 100644
index 000000000..69a74a1c4
--- /dev/null
+++ b/src/scmversion/scmversion.vcxproj
@@ -0,0 +1,516 @@
+
+
+
+
+ DebugFast
+ Win32
+
+
+ DebugFast
+ x64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ ReleaseLTCG
+ Win32
+
+
+ ReleaseLTCG
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+
+ {72f9423c-91ee-4487-aac6-555ed6f61aa1}
+
+
+ {43540154-9e1e-409c-834f-b84be5621388}
+
+
+ {425d6c99-d1c8-43c2-b8ac-4d7b1d941017}
+
+
+ {6a4208ed-e3dc-41e1-81cd-f61025fc285a}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {075CED82-6A20-46DF-94C7-9624AC9DDBEB}
+ Win32Proj
+ scmversion
+ 10.0
+ true
+
+
+
+ StaticLibrary
+ true
+ NotSet
+ v142
+
+
+ StaticLibrary
+ true
+ NotSet
+ v142
+
+
+ StaticLibrary
+ true
+ NotSet
+ v142
+
+
+ StaticLibrary
+ true
+ NotSet
+ v142
+
+
+ StaticLibrary
+ false
+ true
+ NotSet
+ v142
+ false
+
+
+ StaticLibrary
+ false
+ true
+ NotSet
+ v142
+ false
+
+
+ StaticLibrary
+ false
+ true
+ NotSet
+ v142
+ false
+
+
+ StaticLibrary
+ false
+ true
+ NotSet
+ v142
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ true
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ true
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ true
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ false
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ false
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ false
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+ false
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ $(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\
+ PreBuildEvent
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ ProgramDatabase
+ true
+ stdcpp17
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32-debug;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+
+
+ Level3
+ Disabled
+ _ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ ProgramDatabase
+ Default
+ false
+ true
+ stdcpp17
+ OnlyExplicitInline
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32-debug;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ ProgramDatabase
+ true
+ stdcpp17
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32-debug;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+
+
+ Level3
+ Disabled
+ _ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ ProgramDatabase
+ Default
+ false
+ true
+ stdcpp17
+ OnlyExplicitInline
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32-debug;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ stdcpp17
+ false
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ true
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ true
+ stdcpp17
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ true
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ stdcpp17
+ false
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ true
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+ true
+ true
+ stdcpp17
+ true
+ $(IntDir)/%(RelativeDir)/
+
+
+ Console
+ true
+ true
+ true
+ SDL2.lib;%(AdditionalDependencies)
+ $(SolutionDir)dep\msvc\lib32;%(AdditionalLibraryDirectories)
+
+
+
+ d3dcompiler.lib;%(AdditionalDependencies)
+
+
+
+
+ cmd /k "$(ProjectDir)gen_scmversion.bat"
+
+
+ Checking whether scmversion.cpp needs updating...
+
+
+ $(ProjectDir)scmversion.cpp
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/scmversion/scmversion.vcxproj.filters b/src/scmversion/scmversion.vcxproj.filters
new file mode 100644
index 000000000..782f726b9
--- /dev/null
+++ b/src/scmversion/scmversion.vcxproj.filters
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file