Skip to content

Commit

Permalink
add windows build
Browse files Browse the repository at this point in the history
  • Loading branch information
lieff committed Apr 10, 2018
1 parent 80b88c5 commit f26911c
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 3 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
curl
glfw
toy
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
@@ -1 +1 @@
gcc -O2 -std=c99 -DHAVE_CURL -D_DEBUG *.c jfes/*.c -o toy -lcurl -lglfw -ldl -lm
gcc -O2 -std=c99 -DHAVE_CURL -D_DEBUG -D_POSIX_C_SOURCE=200809 *.c jfes/*.c -o toy -lcurl -lglfw -ldl -lm
27 changes: 27 additions & 0 deletions build_win.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
set -e

if [ ! -d "glfw" ]; then
git clone --depth=1 https://github.com/glfw/glfw
mkdir glfw/build
cd glfw/build
cmake -DCMAKE_TOOLCHAIN_FILE=../../windows/mingw64.cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DGLFW_BUILD_DOCS=0 ..
make -j4
cd ../../
fi

if [ ! -d "curl" ]; then
CC=x86_64-w64-mingw32-gcc
export CC
git clone --depth=1 https://github.com/curl/curl
cd curl
./buildconf
mkdir build
cd build
../configure --host=x86_64-w64-mingw32 --disable-shared --disable-ldap --with-winssl
make -j4
cd ../../
fi

x86_64-w64-mingw32-gcc -static -O2 -std=gnu99 -DHAVE_CURL -DCURL_STATICLIB -D_DEBUG -D_POSIX_C_SOURCE=200809 *.c jfes/*.c -o toy.exe \
-Lglfw/build/src -Iglfw/include -Lcurl/build/lib/.libs/ -Icurl/include \
-lcurl -lglfw3 -lpthread -lm -lgdi32 -lws2_32 -lcrypt32
9 changes: 7 additions & 2 deletions minishadertoy.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,12 @@
#include <assert.h>
#include <time.h>
#include <sys/stat.h>
#ifndef __MINGW32__
#include <alloca.h>
#define MKDIRARGS ,0777
#else
#define MKDIRARGS
#endif
#include <errno.h>
#include "glad.h"
#include "jfes/jfes.h"
Expand Down Expand Up @@ -111,7 +116,7 @@ static int mkpath(char *path)

if (buffer[len - 1] == '/')
buffer[len - 1] = '\0';
if (mkdir(buffer, 0777) == 0)
if (mkdir(buffer MKDIRARGS) == 0)
{
free(buffer);
return 1;
Expand All @@ -126,7 +131,7 @@ static int mkpath(char *path)
break;
char sav = *p;
*p = 0;
if ((mkdir(buffer, 0777) == -1) && (errno == ENOENT))
if ((mkdir(buffer MKDIRARGS) == -1) && (errno == ENOENT))
goto fail;
*p++ = sav;
}
Expand Down
11 changes: 11 additions & 0 deletions windows/mingw64.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)

set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

0 comments on commit f26911c

Please sign in to comment.