mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-14 10:05:44 -04:00
update buildbot to compile windows build without linking to mingw startup code
This commit is contained in:
parent
64b325879a
commit
600c46eb1b
@ -24,35 +24,49 @@
|
|||||||
# change these as needed
|
# change these as needed
|
||||||
SOURCE_DIR=~/client
|
SOURCE_DIR=~/client
|
||||||
EMSCRIPTEN_PATH=/usr/bin/emscripten/emcc
|
EMSCRIPTEN_PATH=/usr/bin/emscripten/emcc
|
||||||
|
CLANGOSX_PATH=/usr/bin/clang/osx
|
||||||
|
# to simplify stuff
|
||||||
|
ALL_FLAGS="-O1 -s -fno-stack-protector -fno-math-errno -w"
|
||||||
|
WIN_FLAGS="-mwindows -nostartfiles -Wl,-e_main_real -DCC_NOMAIN"
|
||||||
|
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
c_build_win32() {
|
build_win32() {
|
||||||
|
echo "Building win32.."
|
||||||
cp $SOURCE_DIR/misc/CCicon_32.res $SOURCE_DIR/src/CCicon_32.res
|
cp $SOURCE_DIR/misc/CCicon_32.res $SOURCE_DIR/src/CCicon_32.res
|
||||||
rm cc-w32-d3d.exe cc-w32-ogl.exe
|
rm cc-w32-d3d.exe cc-w32-ogl.exe
|
||||||
|
|
||||||
i686-w64-mingw32-gcc *.c -O1 -s -fno-stack-protector -fno-math-errno -DCC_COMMIT_SHA=\"$LATEST\" -o cc-w32-d3d.exe CCicon_32.res -mwindows -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -ld3d9 -w
|
i686-w64-mingw32-gcc *.c $ALL_FLAGS $WIN_FLAGS -o cc-w32-d3d.exe CCicon_32.res -DCC_COMMIT_SHA=\"$LATEST\" -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -ld3d9
|
||||||
i686-w64-mingw32-gcc *.c -O1 -s -fno-stack-protector -fno-math-errno -DCC_COMMIT_SHA=\"$LATEST\" -o cc-w32-ogl.exe CCicon_32.res -DCC_BUILD_MANUAL -DCC_BUILD_WIN -DCC_BUILD_GL -DCC_BUILD_WINGUI -DCC_BUILD_WGL -DCC_BUILD_WINMM -DCC_BUILD_WININET -mwindows -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -lopengl32 -w
|
i686-w64-mingw32-gcc *.c $ALL_FLAGS $WIN_FLAGS -o cc-w32-ogl.exe CCicon_32.res -DCC_COMMIT_SHA=\"$LATEST\" -DCC_BUILD_MANUAL -DCC_BUILD_WIN -DCC_BUILD_GL -DCC_BUILD_WINGUI -DCC_BUILD_WGL -DCC_BUILD_WINMM -DCC_BUILD_WININET -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -lopengl32
|
||||||
}
|
}
|
||||||
|
|
||||||
c_build_win64() {
|
build_win64() {
|
||||||
|
echo "Building win64.."
|
||||||
cp $SOURCE_DIR/misc/CCicon_64.res $SOURCE_DIR/src/CCicon_64.res
|
cp $SOURCE_DIR/misc/CCicon_64.res $SOURCE_DIR/src/CCicon_64.res
|
||||||
rm cc-w64-d3d.exe cc-w64-ogl.exe
|
rm cc-w64-d3d.exe cc-w64-ogl.exe
|
||||||
|
|
||||||
x86_64-w64-mingw32-gcc *.c -O1 -s -fno-stack-protector -fno-math-errno -DCC_COMMIT_SHA=\"$LATEST\" -o cc-w64-d3d.exe CCicon_64.res -mwindows -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -ld3d9 -w
|
x86_64-w64-mingw32-gcc *.c $ALL_FLAGS $WIN_FLAGS -o cc-w64-d3d.exe CCicon_64.res -DCC_COMMIT_SHA=\"$LATEST\" -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -ld3d9
|
||||||
x86_64-w64-mingw32-gcc *.c -O1 -s -fno-stack-protector -fno-math-errno -DCC_COMMIT_SHA=\"$LATEST\" -o cc-w64-ogl.exe CCicon_64.res -DCC_BUILD_MANUAL -DCC_BUILD_WIN -DCC_BUILD_GL -DCC_BUILD_WINGUI -DCC_BUILD_WGL -DCC_BUILD_WINMM -DCC_BUILD_WININET -mwindows -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -lopengl32 -w
|
x86_64-w64-mingw32-gcc *.c $ALL_FLAGS $WIN_FLAGS -o cc-w64-ogl.exe CCicon_64.res -DCC_COMMIT_SHA=\"$LATEST\" -DCC_BUILD_MANUAL -DCC_BUILD_WIN -DCC_BUILD_GL -DCC_BUILD_WINGUI -DCC_BUILD_WGL -DCC_BUILD_WINMM -DCC_BUILD_WININET -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -lopengl32
|
||||||
}
|
}
|
||||||
|
|
||||||
c_build_nix32() {
|
build_nix32() {
|
||||||
|
echo "Building linux32.."
|
||||||
rm cc-nix32
|
rm cc-nix32
|
||||||
gcc *.c -O1 -fvisibility=hidden -s -rdynamic -fno-stack-protector -fno-math-errno -DCC_COMMIT_SHA=\"$LATEST\" -m32 -o cc-nix32 -lX11 -lpthread -lGL -lm -lcurl -lopenal -ldl -w
|
gcc *.c $ALL_FLAGS -fvisibility=hidden -rdynamic -DCC_COMMIT_SHA=\"$LATEST\" -m32 -o cc-nix32 -lX11 -lpthread -lGL -lm -lcurl -lopenal -ldl
|
||||||
}
|
}
|
||||||
|
|
||||||
c_build_nix64() {
|
build_nix64() {
|
||||||
|
echo "Building linux64.."
|
||||||
rm cc-nix64
|
rm cc-nix64
|
||||||
gcc *.c -O1 -fvisibility=hidden -s -rdynamic -fno-stack-protector -fno-math-errno -DCC_COMMIT_SHA=\"$LATEST\" -m64 -o cc-nix64 -lX11 -lpthread -lGL -lm -lcurl -lopenal -ldl -w
|
gcc *.c $ALL_FLAGS -fvisibility=hidden -rdynamic -DCC_COMMIT_SHA=\"$LATEST\" -m64 -o cc-nix64 -lX11 -lpthread -lGL -lm -lcurl -lopenal -ldl
|
||||||
}
|
}
|
||||||
|
|
||||||
c_build_web() {
|
build_osx32() {
|
||||||
|
echo "Building mac32.."
|
||||||
|
rm cc-osx32
|
||||||
|
$CLANGOSX_PATH *.c $ALL_FLAGS -fvisibility=hidden -rdynamic -DCC_COMMIT_SHA=\"$LATEST\" -o cc-osx32 -framework Carbon -framework AGL -framework OpenAL -framework OpenGL -lcurl
|
||||||
|
}
|
||||||
|
|
||||||
|
build_web() {
|
||||||
echo "Building web.."
|
echo "Building web.."
|
||||||
rm cc.js
|
rm cc.js
|
||||||
$EMSCRIPTEN_PATH *.c -O1 -o cc.js -s FETCH=1 -s WASM=0 -s ALLOW_MEMORY_GROWTH=1 --preload-file texpacks/default.zip -w
|
$EMSCRIPTEN_PATH *.c -O1 -o cc.js -s FETCH=1 -s WASM=0 -s ALLOW_MEMORY_GROWTH=1 --preload-file texpacks/default.zip -w
|
||||||
@ -73,8 +87,9 @@ git fetch --all
|
|||||||
git reset --hard origin/master
|
git reset --hard origin/master
|
||||||
LATEST=`git rev-parse --short HEAD`
|
LATEST=`git rev-parse --short HEAD`
|
||||||
|
|
||||||
c_build_win32
|
build_win32
|
||||||
c_build_win64
|
build_win64
|
||||||
c_build_nix32
|
build_nix32
|
||||||
c_build_nix64
|
build_nix64
|
||||||
c_build_web
|
build_osx32
|
||||||
|
build_web
|
@ -40,7 +40,7 @@ int main_imdct() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void Program_RunGame(void) {
|
static void RunGame(void) {
|
||||||
static const String defPath = String_FromConst("texpacks/default.zip");
|
static const String defPath = String_FromConst("texpacks/default.zip");
|
||||||
String title; char titleBuffer[STRING_SIZE];
|
String title; char titleBuffer[STRING_SIZE];
|
||||||
int width, height;
|
int width, height;
|
||||||
@ -94,7 +94,14 @@ CC_NOINLINE static void ExitMissingArgs(int argsCount, const String* args) {
|
|||||||
Process_Exit(1);
|
Process_Exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* This is used when compiling with MingW without linking to startup files. */
|
||||||
|
/* The final code produced for "main" is our "main" combined with crt's main. (mingw-w64-crt/crt/gccmain.c) */
|
||||||
|
/* This immediately crashes the game on startup. Using a different name fixes. */
|
||||||
|
#ifdef CC_NOMAIN
|
||||||
|
int main_real(int argc, char** argv) {
|
||||||
|
#else
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
#endif
|
||||||
static char ipBuffer[STRING_SIZE];
|
static char ipBuffer[STRING_SIZE];
|
||||||
String args[GAME_MAX_CMDARGS];
|
String args[GAME_MAX_CMDARGS];
|
||||||
int argsCount;
|
int argsCount;
|
||||||
@ -126,7 +133,7 @@ int main(int argc, char** argv) {
|
|||||||
if (argsCount == 0) {
|
if (argsCount == 0) {
|
||||||
#ifdef CC_BUILD_WEB
|
#ifdef CC_BUILD_WEB
|
||||||
String_AppendConst(&Game_Username, "WebTest!");
|
String_AppendConst(&Game_Username, "WebTest!");
|
||||||
Program_RunGame();
|
RunGame();
|
||||||
#else
|
#else
|
||||||
Launcher_Run();
|
Launcher_Run();
|
||||||
#endif
|
#endif
|
||||||
@ -141,7 +148,7 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
String_Copy(&Game_Username, &args[0]);
|
String_Copy(&Game_Username, &args[0]);
|
||||||
Program_RunGame();
|
RunGame();
|
||||||
} else if (argsCount < 4) {
|
} else if (argsCount < 4) {
|
||||||
ExitMissingArgs(argsCount, args);
|
ExitMissingArgs(argsCount, args);
|
||||||
return 1;
|
return 1;
|
||||||
@ -159,7 +166,7 @@ int main(int argc, char** argv) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
Server.Port = port;
|
Server.Port = port;
|
||||||
Program_RunGame();
|
RunGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
Process_Exit(0);
|
Process_Exit(0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user