Skip to content

Commit 0948094

Browse files
committed
Updating Lesson7 VS and MinGW
1 parent 3d32018 commit 0948094

File tree

9 files changed

+149
-9
lines changed

9 files changed

+149
-9
lines changed

Lesson7/Lesson7.vcxproj

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@
4646
<ClCompile>
4747
<WarningLevel>Level3</WarningLevel>
4848
<Optimization>Disabled</Optimization>
49-
<AdditionalIncludeDirectories>C:\SDL-2.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
49+
<AdditionalIncludeDirectories>C:\SDL2-2.0.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
5050
</ClCompile>
5151
<Link>
5252
<GenerateDebugInformation>true</GenerateDebugInformation>
53-
<AdditionalLibraryDirectories>C:\SDL-2.0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
54-
<AdditionalDependencies>SDL.lib;SDLmain.lib;SDL_image.lib;SDL_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies>
55-
<SubSystem>Windows</SubSystem>
53+
<AdditionalLibraryDirectories>C:\SDL2-2.0.0\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
54+
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies>
55+
<SubSystem>Console</SubSystem>
5656
</Link>
5757
</ItemDefinitionGroup>
5858
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -61,19 +61,23 @@
6161
<Optimization>MaxSpeed</Optimization>
6262
<FunctionLevelLinking>true</FunctionLevelLinking>
6363
<IntrinsicFunctions>true</IntrinsicFunctions>
64+
<AdditionalIncludeDirectories>C:\SDL2-2.0.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
6465
</ClCompile>
6566
<Link>
6667
<GenerateDebugInformation>true</GenerateDebugInformation>
6768
<EnableCOMDATFolding>true</EnableCOMDATFolding>
6869
<OptimizeReferences>true</OptimizeReferences>
70+
<AdditionalLibraryDirectories>C:\SDL2-2.0.0\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
71+
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies>
72+
<SubSystem>Console</SubSystem>
6973
</Link>
7074
</ItemDefinitionGroup>
7175
<ItemGroup>
7276
<ClCompile Include=".\src\main.cpp" />
7377
<ClCompile Include="src\window.cpp" />
7478
</ItemGroup>
7579
<ItemGroup>
76-
<ClInclude Include="src\window.h" />
80+
<ClInclude Include="include\window.h" />
7781
</ItemGroup>
7882
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
7983
<ImportGroup Label="ExtensionTargets">

Lesson7/Lesson7.vcxproj.filters

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</ClCompile>
2424
</ItemGroup>
2525
<ItemGroup>
26-
<ClInclude Include="src\window.h">
26+
<ClInclude Include="include\window.h">
2727
<Filter>Header Files</Filter>
2828
</ClInclude>
2929
</ItemGroup>

Lesson7/Makefiles/README.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Select the appropriate makefile for your system and copy it to the root directory of the project ie. for Lesson0, copy to Lesson0/Makefile

Lesson7/Makefiles/linux_gcc/Makefile

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
CXX = g++
2+
# Set the SDLLIB and SDLINCLUDE paths to your install location of SDL
3+
SDLLIB = -L/usr/local/lib -lSDL2 -lSDL2_image -lSDL2_ttf
4+
SDLINCLUDE = -I/usr/local/include
5+
# If your compiler is a bit old you may need to use -std=c++0x instead of -std=c++11
6+
CFLAGS = -Wall -c -std=c++0x $(SDLINCLUDE)
7+
LDFLAGS = $(SDLLIB)
8+
# The source code and build output directories
9+
SRC = src
10+
BUILD = build
11+
# Executables will be written to top level of repo under out/
12+
OUT = ../out
13+
EXE = $(OUT)/Lesson6
14+
15+
all: $(EXE)
16+
17+
$(EXE): $(BUILD)/main.o | $(OUT)
18+
$(CXX) $(LDFLAGS) $< -o $@
19+
20+
$(BUILD)/main.o: $(SRC)/main.cpp | $(BUILD)
21+
$(CXX) $(CFLAGS) $< -o $@
22+
23+
# Make sure the build directory exists
24+
$(BUILD):
25+
mkdir -p $(BUILD)
26+
27+
# Make sure the output directory exists
28+
$(OUT):
29+
mkdir -p $(OUT)
30+
31+
clean:
32+
rm $(BUILD)/*.o && rm $(EXE)
33+

Lesson7/Makefiles/mac_clang/Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
CXX = clang++
2+
SDL = -framework SDL2 -framework SDL2_image -framework SDL2_ttf
3+
CFLAGS = -Wall -c -std=c++11
4+
LDFLAGS = $(SDL)
5+
# The source and build output directories
6+
SRC = src
7+
BUILD = build
8+
# Executables will be written to the top level of the repo under out/
9+
OUT = ../out
10+
EXE = $(OUT)/Lesson6
11+
12+
all: $(EXE)
13+
14+
$(EXE): $(BUILD)/main.o | $(OUT)
15+
$(CXX) $(LDFLAGS) $< -o $@
16+
17+
$(BUILD)/main.o: $(SRC)/main.cpp | $(BUILD)
18+
$(CXX) $(CFLAGS) $< -o $@
19+
20+
# Make sure the build directory exists
21+
$(BUILD):
22+
mkdir -p $(BUILD)
23+
24+
# Make sure the output directory exists
25+
$(OUT):
26+
mkdir -p $(OUT)
27+
28+
clean:
29+
rm $(BUILD)/*.o && rm $(EXE)
30+

Lesson7/Makefiles/mingw/Makefile

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
CXX = g++
2+
# Configure your dependency paths appropriately
3+
SDLLIB = -LC:\SDL2-2.0.0-mingw\i686-w64-mingw32\lib -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf
4+
SDLINCLUDE = -IC:\SDL2-2.0.0-mingw\i686-w64-mingw32\include
5+
# For copying the dll to our output folder
6+
SDLBIN = C:\SDL2-2.0.0-mingw\i686-w64-mingw32\bin
7+
# If your compiler is a bit old you may need to use -std=c++0x instead of -std=c++11
8+
CFLAGS = -Wall -c -std=c++11 $(SDLINCLUDE)
9+
# The -mwindows flag will build as a windows application, ie. no console
10+
LDFLAGS = -lmingw32 -mwindows -mconsole $(SDLLIB)
11+
# The source code and build output directories
12+
SRC = src
13+
BUILD = build
14+
# Generate listing of all our source files and object files
15+
SOURCES = $(wildcard $(SRC)/*.cpp)
16+
OBJS = $(addprefix $(BUILD)/, $(notdir $(SOURCES:.cpp=.o)))
17+
# Executable will be put in the top level of the repo under out/
18+
OUT = ..\out
19+
EXE = $(OUT)\Lesson7.exe
20+
21+
all: $(EXE) | copy_dlls
22+
23+
$(EXE): $(OBJS)
24+
$(CXX) $(OBJS) $(LDFLAGS) -o $@
25+
26+
$(BUILD)/%.o: $(SRC)/%.cpp | $(BUILD)
27+
$(CXX) $(CFLAGS) $< -o $@
28+
29+
# Make sure the build directory exists
30+
$(BUILD):
31+
mkdir $(BUILD)
32+
33+
# Automate copying of the SDL dlls into our ouput folder
34+
.PHONY: copy_dlls
35+
copy_dlls:
36+
copy $(SDLBIN)\*.dll $(OUT)
37+
38+
# Make sure the exe output directory exists
39+
$(OUT):
40+
mkdir $(OUT)
41+
42+
# Note that it's $(OUT)\*.o here to avoid some weird windows issue
43+
.PHONY: clean
44+
clean:
45+
del $(BUILD)\*.o && del $(EXE)

Lesson7/src/window.h renamed to Lesson7/include/window.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@
33

44
#include <string>
55
#include <memory>
6+
7+
#if defined(_MSC_VER)
68
#include <SDL.h>
9+
#elif defined(__clang__)
10+
#include <SDL2/SDL.h>
11+
#else
12+
#include <SDL2/SDL.h>
13+
#endif
714

815
/**
916
* Window management class, provides a simple wrapper around

Lesson7/src/main.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1-
#include <SDL.h>
21
#include <stdexcept>
32
#include <string>
43
#include <iostream>
5-
#include "window.h"
4+
5+
#if defined(_MSC_VER)
6+
#include <SDL.h>
7+
#elif defined(__clang__)
8+
#include <SDL2/SDL.h>
9+
#else
10+
#include <SDL2/SDL.h>
11+
#endif
12+
13+
#include "../include/window.h"
614

715
/*
816
* Lesson 7: Taking advantage of classes

Lesson7/src/window.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
#include <string>
22
#include <stdexcept>
33
#include <memory>
4+
5+
#if defined(_MSC_VER)
46
#include <SDL.h>
57
#include <SDL_image.h>
68
#include <SDL_ttf.h>
7-
#include "window.h"
9+
#elif defined(__clang__)
10+
#include <SDL2/SDL.h>
11+
#include <SDL2_image/SDL_image.h>
12+
#include <SDL2_ttf/SDL_ttf.h>
13+
#else
14+
#include <SDL2/SDL.h>
15+
#include <SDL2/SDL_image.h>
16+
#include <SDL2/SDL_ttf.h>
17+
#endif
18+
19+
#include "../include/window.h"
820

921
//Initialize the unique_ptr's deleters here
1022
std::unique_ptr<SDL_Window, void (*)(SDL_Window*)> Window::mWindow

0 commit comments

Comments
 (0)