Skip to content

Commit

Permalink
compile 32bit exe automatically
Browse files Browse the repository at this point in the history
  • Loading branch information
spacemeowx2 committed Oct 16, 2018
1 parent 2fec6be commit 7b1bce9
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 8 deletions.
29 changes: 23 additions & 6 deletions .drone.yml
Expand Up @@ -5,10 +5,16 @@ pipeline:
- docker build --rm -t switch-lan-play-build:linux -f docker/Dockerfile.linux .
volumes:
- /var/run/docker.sock:/var/run/docker.sock
build-docker-win:
build-docker-win32:
image: docker
commands:
- docker build --rm -t switch-lan-play-build:win -f docker/Dockerfile.win .
- docker build --rm -t switch-lan-play-build:win32 -f docker/Dockerfile.win32 .
volumes:
- /var/run/docker.sock:/var/run/docker.sock
build-docker-win64:
image: docker
commands:
- docker build --rm -t switch-lan-play-build:win64 -f docker/Dockerfile.win64 .
volumes:
- /var/run/docker.sock:/var/run/docker.sock
lan-play-linux:
Expand All @@ -18,13 +24,23 @@ pipeline:
- mkdir build.linux && cd build.linux
- cmake ..
- make -j$$(nproc)
lan-play-windows:
- mv ./lan-play ./lan-play-linux
lan-play-win32:
group: build
image: switch-lan-play-build:win32
commands:
- mkdir build.win32 && cd build.win32
- cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain-mingw32.cmake ..
- make -j$$(nproc)
- mv ./lan-play.exe ./lan-play-win32.exe
lan-play-win64:
group: build
image: switch-lan-play-build:win
image: switch-lan-play-build:win64
commands:
- mkdir build.win && cd build.win
- mkdir build.win64 && cd build.win64
- cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain-mingw64.cmake ..
- make -j$$(nproc)
- mv ./lan-play.exe ./lan-play-win64.exe
server:
group: build
image: node:alpine
Expand All @@ -37,7 +53,8 @@ pipeline:
secrets: [ github_token ]
files:
- build.linux/lan-play
- build.win/lan-play.exe
- build.win32/lan-play-win32.exe
- build.win64/lan-play-win64.exe
checksum:
- sha1
prerelease: true
Expand Down
23 changes: 23 additions & 0 deletions cmake/toolchain-mingw32.cmake
@@ -0,0 +1,23 @@
# https://github.com/zyga/cmake-toolchains/blob/master/Toolchain-Ubuntu-mingw32.cmake

set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")

set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX i686-w64-mingw32)

# cross compilers to use for C and C++
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)

# target environment on the build host system
# set 1st to dir with the cross compiler's C/C++ headers/libs
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})

# modify default behavior of FIND_XXX() commands to
# search for headers/libs in the target environment and
# search for programs in the build host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
19 changes: 19 additions & 0 deletions docker/Dockerfile.win32
@@ -0,0 +1,19 @@
FROM buildpack-deps:jessie

RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

RUN apt update
RUN apt install -y cmake make
RUN apt install -y mingw32 unzip
COPY ./cmake/toolchain-mingw32.cmake /
RUN curl -L -o /tmp/libev-v1.23.0.tar.gz https://github.com/libuv/libuv/archive/v1.23.0.tar.gz
RUN tar xvf /tmp/libev-v1.23.0.tar.gz -C /tmp

ENV HOST=i686-w64-mingw32
ENV TARGET=i686-w64-mingw32
ENV PREFIX=/usr/i686-w64-mingw32/
RUN cd /tmp/libuv-1.23.0 \
&& ./autogen.sh \
&& ./configure --host=$HOST --target=$TARGET --prefix=$PREFIX --disable-shared --enable-static \
&& make -j$(nproc) \
&& make install
File renamed without changes.
3 changes: 2 additions & 1 deletion src/gateway.c
Expand Up @@ -257,8 +257,9 @@ int gateway_uvl_output(uvl_t *handle, const uv_buf_t bufs[], unsigned int nbufs)
uint8_t buffer[8192];
uint8_t *buf = buffer;
uint32_t len = 0;
int i;

for (int i = 0; i < nbufs; i++) {
for (i = 0; i < nbufs; i++) {
RT_ASSERT(len + bufs[i].len < sizeof(buffer))
memcpy(buf, bufs[i].base, bufs[i].len);
buf += bufs[i].len;
Expand Down
3 changes: 2 additions & 1 deletion src/packet.c
Expand Up @@ -181,9 +181,10 @@ void payload_print_hex(const struct payload *payload)
{
const struct payload *part = payload;
int i = 0;
int j;

while (part) {
for (int j = 0; j < part->len; j++) {
for (j = 0; j < part->len; j++) {
printf(" %02x", part->ptr[j]);
if ( ++i % 16 == 0 ) {
printf("\n");
Expand Down

0 comments on commit 7b1bce9

Please sign in to comment.