mirror of
https://github.com/Maschell/SDL2_Playground.git
synced 2024-11-23 13:19:16 +01:00
Add dockerimage for building windows version
This commit is contained in:
parent
8e20d3e900
commit
ff77bacdab
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ cmake/
|
|||||||
*.elf
|
*.elf
|
||||||
*.rpx
|
*.rpx
|
||||||
*.exe
|
*.exe
|
||||||
|
build-pc-win/
|
||||||
|
22
Dockerfile.pc-win
Normal file
22
Dockerfile.pc-win
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
FROM dockcross/windows-shared-x64:latest
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y gnupg
|
||||||
|
#Use http://mirror.mxe.cc/
|
||||||
|
#First add the repository and install the static gcc compiler. This ensures that everything basic is setup.
|
||||||
|
RUN echo "deb http://pkg.mxe.cc/repos/apt xenial main" > \
|
||||||
|
/etc/apt/sources.list.d/mxeapt.list && \
|
||||||
|
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 86B72ED9 && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y mxe-i686-w64-mingw32.static-gcc \
|
||||||
|
nsis \
|
||||||
|
zip \
|
||||||
|
libtool
|
||||||
|
|
||||||
|
RUN apt-get update && wget -O - http://mirror.mxe.cc/repos/apt/dists/stretch/main/binary-amd64/Packages | grep Package | grep shared | grep sdl2 | awk '{print $2}' | xargs apt-get install -y
|
||||||
|
|
||||||
|
ENV MINGW64_PREFIX=/usr/src/mxe/usr/bin/x86_64-w64-mingw32.shared-
|
||||||
|
ENV CONFIG_PREFIX=/usr/lib/mxe/usr/bin/x86_64-w64-mingw32.shared-
|
||||||
|
ENV EXTRA_CFLAGS=-I/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include
|
||||||
|
ENV EXTRA_LDFLAGS=-L/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/lib
|
||||||
|
|
||||||
|
WORKDIR /project
|
@ -2,13 +2,21 @@
|
|||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
ifeq ($(strip $(DEVKITPRO)),)
|
ifeq ($(strip $(MINGW64_PREFIX)),)
|
||||||
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
|
$(error "Please set MINGW64_PREFIX in your environment. export MINGW64_PREFIX=<path to>/mingw64/bin/")
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
CXX := $(MINGW64_PREFIX)g++
|
||||||
|
C := $(MINGW64_PREFIX)gcc
|
||||||
|
PREFIX := $(MINGW64_PREFIX)
|
||||||
|
|
||||||
|
ifeq ($(strip $(CONFIG_PREFIX)),)
|
||||||
|
PKG-CONFIG := $(PREFIX)pkg-config
|
||||||
|
else
|
||||||
|
PKG-CONFIG := $(CONFIG_PREFIX)pkg-config
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CXX := $(DEVKITPRO)/msys2/mingw64/bin/g++
|
|
||||||
C := $(DEVKITPRO)/msys2/mingw64/bin/gcc
|
|
||||||
PREFIX := $(DEVKITPRO)/msys2/mingw64/bin/
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# TARGET is the name of the output
|
# TARGET is the name of the output
|
||||||
@ -18,34 +26,42 @@ PREFIX := $(DEVKITPRO)/msys2/mingw64/bin/
|
|||||||
# INCLUDES is a list of directories containing header files
|
# INCLUDES is a list of directories containing header files
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
TARGET := SDL2_Playground
|
TARGET := SDL2_Playground
|
||||||
BUILD := build
|
BUILD := build-pc-win
|
||||||
SOURCES := src \
|
SOURCES := src \
|
||||||
src/gui
|
src/gui
|
||||||
DATA := data
|
DATA := data
|
||||||
INCLUDES := source
|
INCLUDES := source
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# options for code generation
|
# options for code generation
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
+CFLAGS := -g -Wall -O2 -ffunction-sections `$(PREFIX)pkg-config --cflags SDL2_mixer SDL2_ttf SDL2_image` \
|
CFLAGS := -g -Wall -O2 -ffunction-sections `$(PKG-CONFIG) --cflags SDL2_mixer SDL2_ttf SDL2_image` \
|
||||||
$(MACHDEP)
|
$(MACHDEP)
|
||||||
|
|
||||||
CFLAGS += $(INCLUDE)
|
CFLAGS += $(INCLUDE)
|
||||||
|
|
||||||
CXXFLAGS := $(CFLAGS) -std=c++20
|
|
||||||
|
ifeq ($(strip $(EXTRA_CFLAGS)),)
|
||||||
|
else
|
||||||
|
CFLAGS += $(EXTRA_CFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
CXXFLAGS := $(CFLAGS) -std=c++17
|
||||||
|
|
||||||
ASFLAGS := -g $(ARCH)
|
ASFLAGS := -g $(ARCH)
|
||||||
LDFLAGS = -g $(ARCH)
|
LDFLAGS = -g $(ARCH)
|
||||||
|
|
||||||
LIBS := `$(PREFIX)pkg-config --libs SDL2_mixer SDL2_ttf SDL2_image`
|
LIBS := `$(PKG-CONFIG) --libs SDL2_mixer SDL2_ttf SDL2_image`
|
||||||
|
ifeq ($(strip $(EXTRA_LDFLAGS)),)
|
||||||
|
else
|
||||||
|
LDFLAGS += $(EXTRA_LDFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# list of directories containing libraries, this must be the top level
|
# list of directories containing libraries, this must be the top level
|
||||||
# containing include and lib
|
# containing include and lib
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
LIBDIRS := $(PORTLIBS)
|
LIBDIRS :=
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# no real need to edit anything past this point unless you need to add additional
|
# no real need to edit anything past this point unless you need to add additional
|
||||||
@ -104,7 +120,7 @@ $(BUILD):
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
clean:
|
clean:
|
||||||
@echo clean ...
|
@echo clean ...
|
||||||
@rm -fr $(BUILD) $(TARGET).rpx $(TARGET).elf
|
@rm -fr $(BUILD) $(TARGET).exe
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
else
|
else
|
||||||
@ -126,12 +142,8 @@ $(OUTPUT).exe:
|
|||||||
@$(CXX) $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@ $(ERROR_FILTER)
|
@$(CXX) $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@ $(ERROR_FILTER)
|
||||||
|
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo "$(notdir $<)"
|
@echo "$(notdir $<)"
|
||||||
@$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.d $(CXXFLAGS) -c $< -o $@ $(ERROR_FILTER)
|
@$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.d $(CXXFLAGS) -c $< -o $@ $(ERROR_FILTER)
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(OBJS) $(OBJ_NAME) $(MINIZIP_O)
|
|
||||||
|
|
||||||
|
|
||||||
-include $(DEPENDS)
|
-include $(DEPENDS)
|
||||||
|
|
||||||
|
@ -17,6 +17,13 @@ pacman -S git mingw-w64-x86_64-toolchain mingw64/mingw-w64-x86_64-SDL2 mingw64/m
|
|||||||
make -f .\Makefile.pc-win
|
make -f .\Makefile.pc-win
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Windows with docker
|
||||||
|
|
||||||
|
```
|
||||||
|
docker build . -f .\Dockerfile.pc-win -t sdl2_playground-builder-pc-win
|
||||||
|
docker run -it --rm -v ${PWD}:/project sdl2_playground-builder-pc-win make -f .\Makefile.pc-win -j16
|
||||||
|
```
|
||||||
|
|
||||||
## Wii U
|
## Wii U
|
||||||
|
|
||||||
And these from [dkp-libs](https://devkitpro.org/wiki/devkitPro_pacman):
|
And these from [dkp-libs](https://devkitpro.org/wiki/devkitPro_pacman):
|
||||||
|
Loading…
Reference in New Issue
Block a user