mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-12 17:17:09 -04:00
Always compile with icon
This commit is contained in:
parent
f7580f109a
commit
2d1b480d68
4
.github/workflows/build_freebsd.yml
vendored
4
.github/workflows/build_freebsd.yml
vendored
@ -42,8 +42,8 @@ jobs:
|
||||
shell: bash
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||
PLAT32_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -I freebsd32/include -L freebsd32/lib"
|
||||
PLAT64_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -I freebsd64/include -L freebsd64/lib"
|
||||
PLAT32_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -I freebsd32/include -L freebsd32/lib"
|
||||
PLAT64_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -I freebsd64/include -L freebsd64/lib"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||
|
||||
|
4
.github/workflows/build_linux.yml
vendored
4
.github/workflows/build_linux.yml
vendored
@ -42,7 +42,7 @@ jobs:
|
||||
id: compile
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||
NIX32_FLAGS: "-no-pie -fno-pie -m32 -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -L ../lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
NIX32_FLAGS: "-no-pie -fno-pie -m32 -fvisibility=hidden -fcf-protection=none -rdynamic -L ../lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||
|
||||
@ -105,7 +105,7 @@ jobs:
|
||||
id: compile
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||
NIX64_FLAGS: "-no-pie -fno-pie -m64 -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -L ../lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
NIX64_FLAGS: "-no-pie -fno-pie -m64 -fvisibility=hidden -fcf-protection=none -rdynamic -L ../lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||
|
||||
|
2
.github/workflows/build_mac32.yml
vendored
2
.github/workflows/build_mac32.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
||||
shell: bash
|
||||
id: compile
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -rdynamic -DCC_BUILD_ICON"
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -fvisibility=hidden -rdynamic"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||
|
||||
|
4
.github/workflows/build_mac64.yml
vendored
4
.github/workflows/build_mac64.yml
vendored
@ -24,8 +24,8 @@ jobs:
|
||||
id: compile
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn"
|
||||
MAC_ARM64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -arch arm64"
|
||||
MAC_INTEL64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -arch x86_64"
|
||||
MAC_ARM64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -arch arm64"
|
||||
MAC_INTEL64_FLAGS: "-fvisibility=hidden -rdynamic -arch x86_64"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$(git rev-parse --short "$GITHUB_SHA")\"
|
||||
cd src
|
||||
|
2
.github/workflows/build_netbsd.yml
vendored
2
.github/workflows/build_netbsd.yml
vendored
@ -36,7 +36,7 @@ jobs:
|
||||
shell: bash
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||
PLAT64_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -DCC_BUILD_ICON -I netbsd64/include -L netbsd64/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
PLAT64_FLAGS: "-fno-pie -fvisibility=hidden -fcf-protection=none -rdynamic -I netbsd64/include -L netbsd64/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"${GITHUB_SHA::9}\"
|
||||
echo $LATEST_FLAG
|
||||
|
4
.github/workflows/build_rpi.yml
vendored
4
.github/workflows/build_rpi.yml
vendored
@ -34,7 +34,7 @@ jobs:
|
||||
id: compile
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||
RPI32_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
RPI32_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$GITHUB_SHA\"
|
||||
|
||||
@ -85,7 +85,7 @@ jobs:
|
||||
id: compile
|
||||
env:
|
||||
COMMON_FLAGS: "-O1 -s -fno-stack-protector -fno-math-errno -Qn -Werror"
|
||||
RPI64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_ICON -DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
RPI64_FLAGS: "-fvisibility=hidden -rdynamic -DCC_BUILD_RPI -I rpi/include -L rpi/lib -Wl,--unresolved-symbols=ignore-in-shared-libs"
|
||||
run: |
|
||||
LATEST_FLAG=-DCC_COMMIT_SHA=\"$GITHUB_SHA\"
|
||||
|
||||
|
65
Makefile
65
Makefile
@ -4,6 +4,9 @@ C_SOURCES = $(wildcard $(SOURCE_DIR)/*.c)
|
||||
OBJECTS = $(patsubst %.c, $(BUILD_DIR)/%.o, $(C_SOURCES))
|
||||
BUILD_DIRS = $(BUILD_DIR) $(BUILD_DIR)/src
|
||||
|
||||
##############################
|
||||
# Configurable flags and names
|
||||
##############################
|
||||
# Flags passed to the C compiler
|
||||
CFLAGS = -pipe -fno-math-errno -Werror -Wno-error=missing-braces -Wno-error=strict-aliasing
|
||||
# Flags passed to the linker
|
||||
@ -11,9 +14,20 @@ LDFLAGS = -g -rdynamic
|
||||
# Name of the main executable
|
||||
ENAME = ClassiCube
|
||||
# Name of the final target file
|
||||
# (usually this is the executable, but e.g. is app bundle on macOS)
|
||||
# (usually this is the executable, but e.g. is the app bundle on macOS)
|
||||
TARGET := $(ENAME)
|
||||
|
||||
# Enables dependency tracking (https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/)
|
||||
# This ensures that changing a .h file automatically results in the .c files using it being auto recompiled when next running make
|
||||
# On older systems the required GCC options may not be supported - in which case just change TRACK_DEPENDENCIES to 0
|
||||
TRACK_DEPENDENCIES=1
|
||||
# link using C Compiler by default
|
||||
LINK = $(CC)
|
||||
|
||||
|
||||
#################################################################
|
||||
# Determine shell command used to remove files (for "make clean")
|
||||
#################################################################
|
||||
ifndef RM
|
||||
# No prefined RM variable, try to guess OS default
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@ -23,11 +37,10 @@ ifndef RM
|
||||
endif
|
||||
endif
|
||||
|
||||
# Enables dependency tracking (https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/)
|
||||
# This ensures that changing a .h file automatically results in the .c files using it being auto recompiled when next running make
|
||||
# On older systems the required GCC options may not be supported - in which case just change TRACK_DEPENDENCIES to 0
|
||||
TRACK_DEPENDENCIES=1
|
||||
|
||||
###########################################################
|
||||
# If target platform isn't specified, default to current OS
|
||||
###########################################################
|
||||
ifndef $(PLAT)
|
||||
ifeq ($(OS),Windows_NT)
|
||||
PLAT = mingw
|
||||
@ -36,6 +49,10 @@ ifndef $(PLAT)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
#########################################################
|
||||
# Setup environment appropriate for the specific platform
|
||||
#########################################################
|
||||
ifeq ($(PLAT),web)
|
||||
CC = emcc
|
||||
OEXT = .html
|
||||
@ -54,20 +71,17 @@ ifeq ($(PLAT),mingw)
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),linux)
|
||||
CFLAGS += -DCC_BUILD_ICON
|
||||
LIBS = -lX11 -lXi -lpthread -lGL -ldl
|
||||
BUILD_DIR = build/linux
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),sunos)
|
||||
CFLAGS += -DCC_BUILD_ICON
|
||||
LIBS = -lsocket -lX11 -lXi -lGL
|
||||
BUILD_DIR = build/solaris
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),hp-ux)
|
||||
CC = gcc
|
||||
CFLAGS = -DCC_BUILD_ICON
|
||||
LDFLAGS =
|
||||
LIBS = -lm -lX11 -lXi -lXext -L/opt/graphics/OpenGL/lib -lGL -lpthread
|
||||
BUILD_DIR = build/hpux
|
||||
@ -75,7 +89,6 @@ endif
|
||||
|
||||
ifeq ($(PLAT),darwin)
|
||||
OBJECTS += $(BUILD_DIR)/src/Window_cocoa.o
|
||||
CFLAGS += -DCC_BUILD_ICON
|
||||
LIBS =
|
||||
LDFLAGS = -rdynamic -framework Cocoa -framework OpenGL -framework IOKit -lobjc
|
||||
BUILD_DIR = build/macos
|
||||
@ -83,28 +96,28 @@ ifeq ($(PLAT),darwin)
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),freebsd)
|
||||
CFLAGS += -I /usr/local/include -DCC_BUILD_ICON
|
||||
CFLAGS += -I /usr/local/include
|
||||
LDFLAGS = -L /usr/local/lib -rdynamic
|
||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||
BUILD_DIR = build/freebsd
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),openbsd)
|
||||
CFLAGS += -I /usr/X11R6/include -I /usr/local/include -DCC_BUILD_ICON
|
||||
CFLAGS += -I /usr/X11R6/include -I /usr/local/include
|
||||
LDFLAGS = -L /usr/X11R6/lib -L /usr/local/lib -rdynamic
|
||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||
BUILD_DIR = build/openbsd
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),netbsd)
|
||||
CFLAGS += -I /usr/X11R7/include -I /usr/pkg/include -DCC_BUILD_ICON
|
||||
CFLAGS += -I /usr/X11R7/include -I /usr/pkg/include
|
||||
LDFLAGS = -L /usr/X11R7/lib -L /usr/pkg/lib -rdynamic
|
||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||
BUILD_DIR = build/netbsd
|
||||
endif
|
||||
|
||||
ifeq ($(PLAT),dragonfly)
|
||||
CFLAGS += -I /usr/local/include -DCC_BUILD_ICON
|
||||
CFLAGS += -I /usr/local/include
|
||||
LDFLAGS = -L /usr/local/lib -rdynamic
|
||||
LIBS = -lexecinfo -lGL -lX11 -lXi -lpthread
|
||||
BUILD_DIR = build/flybsd
|
||||
@ -176,11 +189,9 @@ else
|
||||
CFLAGS += -g
|
||||
endif
|
||||
|
||||
# link with CC by default
|
||||
LINK ?= $(CC)
|
||||
|
||||
default: $(PLAT)
|
||||
|
||||
# Build for the specified platform
|
||||
web:
|
||||
$(MAKE) $(TARGET) PLAT=web
|
||||
linux:
|
||||
@ -272,12 +283,19 @@ amiga_68k:
|
||||
amiga_ppc:
|
||||
$(MAKE) -f misc/amiga/Makefile_ppc
|
||||
|
||||
# Cleans up all build .o files
|
||||
clean:
|
||||
$(RM) $(OBJECTS)
|
||||
|
||||
|
||||
#################################################
|
||||
# Source files and executable compilation section
|
||||
#################################################
|
||||
# Auto creates directories for build files (.o and .d files)
|
||||
$(BUILD_DIRS):
|
||||
mkdir -p $@
|
||||
|
||||
# Main executable (typically just 'ClassiCube' or 'ClassiCube.exe')
|
||||
$(ENAME): $(BUILD_DIRS) $(OBJECTS)
|
||||
$(LINK) $(LDFLAGS) -o $@$(OEXT) $(OBJECTS) $(EXTRA_LIBS) $(LIBS)
|
||||
|
||||
@ -294,26 +312,27 @@ $(ENAME).app : $(ENAME)
|
||||
# === Compiling with dependency tracking ===
|
||||
# NOTE: Tracking dependencies might not work on older systems - disable this if so
|
||||
ifeq ($(TRACK_DEPENDENCIES), 1)
|
||||
|
||||
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
||||
DEPFILES := $(patsubst %.o, %.d, $(OBJECTS))
|
||||
$(DEPFILES):
|
||||
|
||||
$(BUILD_DIR)/%.o : %.c $(BUILD_DIR)/%.d
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||
$(BUILD_DIR)/%.o : %.cpp $(BUILD_DIR)/%.d
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||
$(BUILD_DIR)/%.o : %.m $(BUILD_DIR)/%.d
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||
|
||||
include $(wildcard $(DEPFILES))
|
||||
# === Compiling WITHOUT dependency tracking ===
|
||||
else
|
||||
|
||||
$(BUILD_DIR)/%.o : %.c
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
||||
$(BUILD_DIR)/%.o : %.cpp
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
||||
endif
|
||||
|
||||
# === Platform specific file compiling ===
|
||||
$(BUILD_DIR)/%.o: %.m $(BUILD_DIR)/%.d
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||
|
||||
$(BUILD_DIR)/%.o: %.cpp $(BUILD_DIR)/%.d
|
||||
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||
|
||||
# EXTRA_CFLAGS and EXTRA_LIBS are not defined in the makefile intentionally -
|
||||
# define them on the command line as a simple way of adding CFLAGS/LIBS
|
||||
|
@ -332,7 +332,7 @@ Run `make saturn`. You'll need [libyaul](https://github.com/yaul-org/libyaul)
|
||||
|
||||
1. Install `libexecinfo`, `curl` and `openal` packages if needed
|
||||
2. Run either:
|
||||
* `make opensd` or
|
||||
* `make openbsd` or
|
||||
* `cc src/*.c -o ClassiCube -I /usr/X11R6/include -I /usr/local/include -L /usr/X11R6/lib -L /usr/local/lib -lm -lpthread -lX11 -lXi -lGL -lexecinfo`
|
||||
|
||||
#### NetBSD
|
||||
|
@ -72,7 +72,6 @@ void Window_Init(void) {
|
||||
void Window_Free(void) { }
|
||||
|
||||
|
||||
#ifdef CC_BUILD_ICON
|
||||
/* See misc/sdl/sdl_icon_gen.cs for how to generate this file */
|
||||
#include "../misc/sdl/CCIcon_SDL.h"
|
||||
|
||||
@ -81,9 +80,6 @@ static void ApplyIcon(void) {
|
||||
0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
|
||||
SDL_SetWindowIcon(win_handle, surface);
|
||||
}
|
||||
#else
|
||||
static void ApplyIcon(void) { }
|
||||
#endif
|
||||
|
||||
static void DoCreateWindow(int width, int height, int flags) {
|
||||
win_handle = SDL_CreateWindow(NULL, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height,
|
||||
|
@ -49,7 +49,6 @@ void Window_Init(void) {
|
||||
|
||||
void Window_Free(void) { }
|
||||
|
||||
#ifdef CC_BUILD_ICON
|
||||
/* See misc/sdl/sdl_icon_gen.cs for how to generate this file */
|
||||
#include "../misc/sdl/CCIcon_SDL.h"
|
||||
|
||||
@ -59,9 +58,6 @@ static void ApplyIcon(void) {
|
||||
|
||||
SDL_SetWindowIcon(win_handle, surface);
|
||||
}
|
||||
#else
|
||||
static void ApplyIcon(void) { }
|
||||
#endif
|
||||
|
||||
static void DoCreateWindow(int width, int height, int flags) {
|
||||
SDL_PropertiesID props = SDL_CreateProperties();
|
||||
|
@ -335,7 +335,6 @@ void Window_Init(void) {
|
||||
|
||||
void Window_Free(void) { }
|
||||
|
||||
#ifdef CC_BUILD_ICON
|
||||
/* See misc/x11/x11_icon_gen.cs for how to generate this file */
|
||||
#include "../misc/x11/CCIcon_X11.h"
|
||||
|
||||
@ -346,9 +345,6 @@ static void ApplyIcon(Window win) {
|
||||
XChangeProperty(win_display, win, net_wm_icon, xa_cardinal, 32, PropModeReplace,
|
||||
(unsigned char*)CCIcon_Data, CCIcon_Size);
|
||||
}
|
||||
#else
|
||||
static void ApplyIcon(Window win) { }
|
||||
#endif
|
||||
|
||||
static XVisualInfo Select2DVisual(void) {
|
||||
XVisualInfo info = { 0 };
|
||||
|
@ -328,7 +328,6 @@ static void MakeContentView(void) {
|
||||
[winHandle setContentView:viewHandle];
|
||||
}
|
||||
|
||||
#ifdef CC_BUILD_ICON
|
||||
// See misc/macOS/mac_icon_gen.cs for how to generate this file
|
||||
#include "../misc/macOS/CCIcon_mac.h"
|
||||
|
||||
@ -352,9 +351,6 @@ static void ApplyIcon(void) {
|
||||
[appHandle setApplicationIconImage:img];
|
||||
//[img release];
|
||||
}
|
||||
#else
|
||||
static void ApplyIcon(void) { }
|
||||
#endif
|
||||
|
||||
static pascal OSErr HandleQuitMessage(const AppleEvent* ev, AppleEvent* reply, long handlerRefcon) {
|
||||
Window_RequestClose();
|
||||
|
Loading…
x
Reference in New Issue
Block a user