Always compile with icon

This commit is contained in:
UnknownShadow200 2025-06-23 19:18:32 +10:00
parent f7580f109a
commit 2d1b480d68
12 changed files with 53 additions and 50 deletions

View File

@ -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}\"

View File

@ -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}\"

View File

@ -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}\"

View File

@ -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

View File

@ -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

View File

@ -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\"

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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();

View File

@ -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 };

View File

@ -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();