Skip to content

Commit 99954e9

Browse files
committed
+ premake setup custom engine. + .exe in bin runs correctly using dlls. ! removed console when running game
1 parent bb48b48 commit 99954e9

23 files changed

+162
-138
lines changed

FlappyBirdSolution.sln

-34
This file was deleted.

aaaa.sln

-34
This file was deleted.

bin-int/Debug-windows-x86_64FlappyBird/FlappyBird.exe.recipe

-11
This file was deleted.

bin-int/Debug-windows-x86_64FlappyBird/FlappyBird.tlog/FlappyBird.lastbuildstate

-2
This file was deleted.

build.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ ProjectPrefix = "proj-"
33
EngineProjName = "BirdEngine"
44
GameProj = "FlappyBird"
55

6-
workspace "FlappyBirdSolution"
6+
workspace "FlappyBird"
77
architecture "x64"
88
configurations { "Debug", "Release", "Dist" }
99
startproject "FlappyBird"

proj-BirdEngine/BirdEngine.vcxproj

+14-2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@
9191
<GenerateDebugInformation>true</GenerateDebugInformation>
9292
<ImportLibrary>..\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.lib</ImportLibrary>
9393
</Link>
94+
<PostBuildEvent>
95+
<Command>if not exist "../bin/windows-x86_64/Debug/FlappyBird" mkdir "../bin/windows-x86_64/Debug/FlappyBird"
96+
IF EXIST "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll"\ (xcopy /Q /E /Y /I "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll" "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll" "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\FlappyBird" &gt; nul)</Command>
97+
</PostBuildEvent>
9498
</ItemDefinitionGroup>
9599
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
96100
<ClCompile>
@@ -115,6 +119,10 @@
115119
<OptimizeReferences>true</OptimizeReferences>
116120
<ImportLibrary>..\bin\windows-x86_64\Release\BirdEngine\BirdEngine.lib</ImportLibrary>
117121
</Link>
122+
<PostBuildEvent>
123+
<Command>if not exist "../bin/windows-x86_64/Release/FlappyBird" mkdir "../bin/windows-x86_64/Release/FlappyBird"
124+
IF EXIST "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll"\ (xcopy /Q /E /Y /I "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll" "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll" "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\FlappyBird" &gt; nul)</Command>
125+
</PostBuildEvent>
118126
</ItemDefinitionGroup>
119127
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Dist|x64'">
120128
<ClCompile>
@@ -139,16 +147,20 @@
139147
<OptimizeReferences>true</OptimizeReferences>
140148
<ImportLibrary>..\bin\windows-x86_64\Dist\BirdEngine\BirdEngine.lib</ImportLibrary>
141149
</Link>
150+
<PostBuildEvent>
151+
<Command>if not exist "../bin/windows-x86_64/Dist/FlappyBird" mkdir "../bin/windows-x86_64/Dist/FlappyBird"
152+
IF EXIST "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll"\ (xcopy /Q /E /Y /I "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll" "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\BirdEngine\BirdEngine.dll" "C:\dev\FlappyBird\FlappyBird\bin\windows-x86_64\Debug\FlappyBird" &gt; nul)</Command>
153+
</PostBuildEvent>
142154
</ItemDefinitionGroup>
143155
<ItemGroup>
144-
<ClInclude Include="src\BirdEngine.h" />
145156
<ClInclude Include="src\dll\framework.h" />
146157
<ClInclude Include="src\dll\pch.h" />
158+
<ClInclude Include="src\engine\bird-engine.h" />
147159
</ItemGroup>
148160
<ItemGroup>
149-
<ClCompile Include="src\BirdEngine.cpp" />
150161
<ClCompile Include="src\dll\dllmain.cpp" />
151162
<ClCompile Include="src\dll\pch.cpp" />
163+
<ClCompile Include="src\engine\bird-engine.cpp" />
152164
</ItemGroup>
153165
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
154166
<ImportGroup Label="ExtensionTargets">

proj-BirdEngine/BirdEngine.vcxproj.filters

+9-2
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,30 @@
44
<Filter Include="dll">
55
<UniqueIdentifier>{A16A880B-0D74-887C-96EF-9E7C02F8937C}</UniqueIdentifier>
66
</Filter>
7+
<Filter Include="engine">
8+
<UniqueIdentifier>{FBDB78FB-E77D-A3D1-D038-B725BC792A22}</UniqueIdentifier>
9+
</Filter>
710
</ItemGroup>
811
<ItemGroup>
9-
<ClInclude Include="src\BirdEngine.h" />
1012
<ClInclude Include="src\dll\framework.h">
1113
<Filter>dll</Filter>
1214
</ClInclude>
1315
<ClInclude Include="src\dll\pch.h">
1416
<Filter>dll</Filter>
1517
</ClInclude>
18+
<ClInclude Include="src\engine\bird-engine.h">
19+
<Filter>engine</Filter>
20+
</ClInclude>
1621
</ItemGroup>
1722
<ItemGroup>
18-
<ClCompile Include="src\BirdEngine.cpp" />
1923
<ClCompile Include="src\dll\dllmain.cpp">
2024
<Filter>dll</Filter>
2125
</ClCompile>
2226
<ClCompile Include="src\dll\pch.cpp">
2327
<Filter>dll</Filter>
2428
</ClCompile>
29+
<ClCompile Include="src\engine\bird-engine.cpp">
30+
<Filter>engine</Filter>
31+
</ClCompile>
2532
</ItemGroup>
2633
</Project>

proj-BirdEngine/build-bird-engine.lua

+12-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@
22
OutputDir = "%{cfg.system}-%{cfg.architecture}/%{cfg.buildcfg}/"
33
BinariesDir = "../bin/"
44
SourceDir = "src/"
5+
ProjectPrefix = "proj-"
6+
EngineProjName = "BirdEngine"
7+
GameProj = "FlappyBird"
8+
ThisProj = EngineProjName
9+
TargetDLLdir = BinariesDir.. OutputDir.. GameProj
510

611
project "BirdEngine"
712
kind "SharedLib"
813
language "C++"
914
cppdialect "C++14"
1015
staticruntime "off"
11-
targetdir (BinariesDir .. OutputDir .. "%{prj.name}")
12-
objdir (BinariesDir .. "Intermediates/" .. OutputDir .. "%{prj.name}")
13-
files { SourceDir .. "**.h", SourceDir .. "**.cpp" }
16+
targetdir (BinariesDir .. OutputDir .. ThisProj)
17+
objdir (BinariesDir.. "Intermediates/".. OutputDir.. ThisProj)
18+
files { SourceDir.. "**.h", SourceDir.. "**.cpp" }
1419

1520
includedirs
1621
{
@@ -20,6 +25,10 @@ project "BirdEngine"
2025
filter "system:windows"
2126
systemversion "latest"
2227
defines { }
28+
postbuildcommands {
29+
'if not exist "'.. TargetDLLdir.. '" mkdir "'.. TargetDLLdir.. '"',
30+
'{COPY} "C:/dev/FlappyBird/FlappyBird/bin/windows-x86_64/Debug/BirdEngine/'..EngineProjName..'.dll" "C:/dev/FlappyBird/FlappyBird/bin/windows-x86_64/Debug/FlappyBird"'
31+
}
2332

2433
filter "configurations:Debug"
2534
defines { "DEBUG" }

proj-BirdEngine/src/BirdEngine.cpp proj-BirdEngine/src/engine/bird-engine.cpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,17 @@
33

44
#include "dll/pch.h"
55
#include "dll/framework.h"
6-
#include "BirdEngine.h"
6+
#include "bird-engine.h"
7+
#include <iostream>
78

89
// This is the constructor of a class that has been exported.
910
BirdEngine::BirdEngine()
1011
{
1112
return;
1213
}
14+
15+
void BirdEngine::run()
16+
{
17+
std::cout << "Engine run()" << std::endl;
18+
return;
19+
}

proj-BirdEngine/src/BirdEngine.h proj-BirdEngine/src/engine/bird-engine.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
class BIRDENGINE_API BirdEngine {
1515
public:
1616
BirdEngine(void);
17-
// TODO: add your methods here.
17+
void run();
1818
};

proj-FlappyBird/FlappyBird.vcxproj

+35-12
Original file line numberDiff line numberDiff line change
@@ -79,26 +79,32 @@
7979
<PrecompiledHeader>NotUsing</PrecompiledHeader>
8080
<WarningLevel>Level3</WarningLevel>
8181
<PreprocessorDefinitions>WINDOWS;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
82-
<AdditionalIncludeDirectories>src;..\SDL2\include;..\SDL2_image\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
82+
<AdditionalIncludeDirectories>src;..\SDL2\include;..\SDL2_image\include;..\proj-BirdEngine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8383
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
8484
<Optimization>Disabled</Optimization>
8585
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
8686
<LanguageStandard>stdcpp14</LanguageStandard>
8787
<ExternalWarningLevel>Level3</ExternalWarningLevel>
8888
</ClCompile>
8989
<Link>
90-
<SubSystem>Console</SubSystem>
90+
<SubSystem>Windows</SubSystem>
9191
<GenerateDebugInformation>true</GenerateDebugInformation>
9292
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;%(AdditionalDependencies)</AdditionalDependencies>
9393
<AdditionalLibraryDirectories>..\SDL2\lib\x64;..\SDL2_image\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
9494
</Link>
95+
<PostBuildEvent>
96+
<Command>IF EXIST "..\SDL2\lib\x64\SDL2.dll"\ (xcopy /Q /E /Y /I "..\SDL2\lib\x64\SDL2.dll" "..\bin\windows-x86_64\Debug\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "..\SDL2\lib\x64\SDL2.dll" "..\bin\windows-x86_64\Debug\FlappyBird" &gt; nul)
97+
IF EXIST "..\SDL2_image\lib\x64\SDL2_image.dll"\ (xcopy /Q /E /Y /I "..\SDL2_image\lib\x64\SDL2_image.dll" "..\bin\windows-x86_64\Debug\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "..\SDL2_image\lib\x64\SDL2_image.dll" "..\bin\windows-x86_64\Debug\FlappyBird" &gt; nul)
98+
IF NOT EXIST "..\bin\windows-x86_64\Debug\FlappyBird\assets" (mkdir "..\bin\windows-x86_64\Debug\FlappyBird\assets")
99+
xcopy /Q /E /Y /I "assets" "..\bin\windows-x86_64\Debug\FlappyBird\assets"</Command>
100+
</PostBuildEvent>
95101
</ItemDefinitionGroup>
96102
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
97103
<ClCompile>
98104
<PrecompiledHeader>NotUsing</PrecompiledHeader>
99105
<WarningLevel>Level3</WarningLevel>
100106
<PreprocessorDefinitions>WINDOWS;RELEASE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
101-
<AdditionalIncludeDirectories>src;..\SDL2\include;..\SDL2_image\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
107+
<AdditionalIncludeDirectories>src;..\SDL2\include;..\SDL2_image\include;..\proj-BirdEngine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
102108
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
103109
<Optimization>Full</Optimization>
104110
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -110,20 +116,26 @@
110116
<ExternalWarningLevel>Level3</ExternalWarningLevel>
111117
</ClCompile>
112118
<Link>
113-
<SubSystem>Console</SubSystem>
119+
<SubSystem>Windows</SubSystem>
114120
<GenerateDebugInformation>true</GenerateDebugInformation>
115121
<EnableCOMDATFolding>true</EnableCOMDATFolding>
116122
<OptimizeReferences>true</OptimizeReferences>
117123
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;%(AdditionalDependencies)</AdditionalDependencies>
118124
<AdditionalLibraryDirectories>..\SDL2\lib\x64;..\SDL2_image\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
119125
</Link>
126+
<PostBuildEvent>
127+
<Command>IF EXIST "..\SDL2\lib\x64\SDL2.dll"\ (xcopy /Q /E /Y /I "..\SDL2\lib\x64\SDL2.dll" "..\bin\windows-x86_64\Release\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "..\SDL2\lib\x64\SDL2.dll" "..\bin\windows-x86_64\Release\FlappyBird" &gt; nul)
128+
IF EXIST "..\SDL2_image\lib\x64\SDL2_image.dll"\ (xcopy /Q /E /Y /I "..\SDL2_image\lib\x64\SDL2_image.dll" "..\bin\windows-x86_64\Release\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "..\SDL2_image\lib\x64\SDL2_image.dll" "..\bin\windows-x86_64\Release\FlappyBird" &gt; nul)
129+
IF NOT EXIST "..\bin\windows-x86_64\Release\FlappyBird\assets" (mkdir "..\bin\windows-x86_64\Release\FlappyBird\assets")
130+
xcopy /Q /E /Y /I "assets" "..\bin\windows-x86_64\Release\FlappyBird\assets"</Command>
131+
</PostBuildEvent>
120132
</ItemDefinitionGroup>
121133
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Dist|x64'">
122134
<ClCompile>
123135
<PrecompiledHeader>NotUsing</PrecompiledHeader>
124136
<WarningLevel>Level3</WarningLevel>
125137
<PreprocessorDefinitions>WINDOWS;DIST;%(PreprocessorDefinitions)</PreprocessorDefinitions>
126-
<AdditionalIncludeDirectories>src;..\SDL2\include;..\SDL2_image\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
138+
<AdditionalIncludeDirectories>src;..\SDL2\include;..\SDL2_image\include;..\proj-BirdEngine\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
127139
<DebugInformationFormat>None</DebugInformationFormat>
128140
<Optimization>Full</Optimization>
129141
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -135,20 +147,26 @@
135147
<ExternalWarningLevel>Level3</ExternalWarningLevel>
136148
</ClCompile>
137149
<Link>
138-
<SubSystem>Console</SubSystem>
150+
<SubSystem>Windows</SubSystem>
139151
<GenerateDebugInformation>false</GenerateDebugInformation>
140152
<EnableCOMDATFolding>true</EnableCOMDATFolding>
141153
<OptimizeReferences>true</OptimizeReferences>
142154
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;%(AdditionalDependencies)</AdditionalDependencies>
143155
<AdditionalLibraryDirectories>..\SDL2\lib\x64;..\SDL2_image\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
144156
</Link>
157+
<PostBuildEvent>
158+
<Command>IF EXIST "..\SDL2\lib\x64\SDL2.dll"\ (xcopy /Q /E /Y /I "..\SDL2\lib\x64\SDL2.dll" "..\bin\windows-x86_64\Dist\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "..\SDL2\lib\x64\SDL2.dll" "..\bin\windows-x86_64\Dist\FlappyBird" &gt; nul)
159+
IF EXIST "..\SDL2_image\lib\x64\SDL2_image.dll"\ (xcopy /Q /E /Y /I "..\SDL2_image\lib\x64\SDL2_image.dll" "..\bin\windows-x86_64\Dist\FlappyBird" &gt; nul) ELSE (xcopy /Q /Y /I "..\SDL2_image\lib\x64\SDL2_image.dll" "..\bin\windows-x86_64\Dist\FlappyBird" &gt; nul)
160+
IF NOT EXIST "..\bin\windows-x86_64\Dist\FlappyBird\assets" (mkdir "..\bin\windows-x86_64\Dist\FlappyBird\assets")
161+
xcopy /Q /E /Y /I "assets" "..\bin\windows-x86_64\Dist\FlappyBird\assets"</Command>
162+
</PostBuildEvent>
145163
</ItemDefinitionGroup>
146164
<ItemGroup>
147-
<ClInclude Include="src\core\game.h" />
148-
<ClInclude Include="src\core\game_state.h" />
149-
<ClInclude Include="src\core\gameplay_base.h" />
150165
<ClInclude Include="src\entities\flappy_bird.h" />
151166
<ClInclude Include="src\entities\pipe.h" />
167+
<ClInclude Include="src\game\game.h" />
168+
<ClInclude Include="src\game\game_state.h" />
169+
<ClInclude Include="src\game\gameplay_base.h" />
152170
<ClInclude Include="src\math\vector2.h" />
153171
<ClInclude Include="src\res_manager\texture_manager.h" />
154172
<ClInclude Include="src\sdl2imgui\imconfig.h" />
@@ -170,11 +188,11 @@
170188
<ClInclude Include="src\utils\class_type_check.h" />
171189
</ItemGroup>
172190
<ItemGroup>
173-
<ClCompile Include="src\core\game.cpp" />
174-
<ClCompile Include="src\core\game_state.cpp" />
175-
<ClCompile Include="src\core\gameplay_base.cpp" />
176191
<ClCompile Include="src\entities\flappy_bird.cpp" />
177192
<ClCompile Include="src\entities\pipe.cpp" />
193+
<ClCompile Include="src\game\game.cpp" />
194+
<ClCompile Include="src\game\game_state.cpp" />
195+
<ClCompile Include="src\game\gameplay_base.cpp" />
178196
<ClCompile Include="src\main.cpp" />
179197
<ClCompile Include="src\math\vector2.cpp" />
180198
<ClCompile Include="src\res_manager\texture_manager.cpp" />
@@ -195,6 +213,11 @@
195213
<ClCompile Include="src\system_component\updatable.cpp" />
196214
<ClCompile Include="src\utils\class_type_check.cpp" />
197215
</ItemGroup>
216+
<ItemGroup>
217+
<ProjectReference Include="..\proj-BirdEngine\BirdEngine.vcxproj">
218+
<Project>{DCED76F7-C8A5-B844-31AD-91A01D845335}</Project>
219+
</ProjectReference>
220+
</ItemGroup>
198221
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
199222
<ImportGroup Label="ExtensionTargets">
200223
</ImportGroup>

0 commit comments

Comments
 (0)