mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-25 10:22:33 -05:00
REVIEWED: RENAMED: Renamed tool raylib_parser to rlparser
The tool can work with other libraries following `raylib.h` structure, keeping the `raylib_parser` name could be missleading. Also added an icon an reviewed Makefile an CI.
This commit is contained in:
118
tools/rlparser/Makefile
Normal file
118
tools/rlparser/Makefile
Normal file
@ -0,0 +1,118 @@
|
||||
EXTENSION?=txt
|
||||
FORMAT?=DEFAULT
|
||||
.PHONY: all parse clean raylib_api
|
||||
|
||||
# Determine PLATFORM_OS
|
||||
# No uname.exe on MinGW!, but OS=Windows_NT on Windows!
|
||||
# ifeq ($(UNAME),Msys) -> Windows
|
||||
ifeq ($(OS),Windows_NT)
|
||||
PLATFORM_OS = WINDOWS
|
||||
else
|
||||
UNAMEOS = $(shell uname)
|
||||
ifeq ($(UNAMEOS),Linux)
|
||||
PLATFORM_OS = LINUX
|
||||
endif
|
||||
ifeq ($(UNAMEOS),FreeBSD)
|
||||
PLATFORM_OS = BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),OpenBSD)
|
||||
PLATFORM_OS = BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),NetBSD)
|
||||
PLATFORM_OS = BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),DragonFly)
|
||||
PLATFORM_OS = BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),Darwin)
|
||||
PLATFORM_OS = OSX
|
||||
endif
|
||||
endif
|
||||
|
||||
# Define default C compiler: CC
|
||||
#------------------------------------------------------------------------------------------------
|
||||
CC = gcc
|
||||
ifeq ($(PLATFORM_OS),OSX)
|
||||
# OSX default compiler
|
||||
CC = clang
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),BSD)
|
||||
# FreeBSD, OpenBSD, NetBSD, DragonFly default compiler
|
||||
CC = clang
|
||||
endif
|
||||
|
||||
# Define default make program: MAKE
|
||||
#------------------------------------------------------------------------------------------------
|
||||
MAKE ?= make
|
||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
MAKE = mingw32-make
|
||||
endif
|
||||
|
||||
# Define compiler flags: CFLAGS
|
||||
#------------------------------------------------------------------------------------------------
|
||||
CFLAGS = -Wall -std=c99
|
||||
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
|
||||
|
||||
ifeq ($(BUILD_MODE),DEBUG)
|
||||
CFLAGS += -g -D_DEBUG
|
||||
else
|
||||
ifeq ($(PLATFORM_OS),OSX)
|
||||
CFLAGS += -O2
|
||||
else
|
||||
CFLAGS += -s -O2
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# NOTE: The resource .rc file contains windows executable icon and properties
|
||||
CFLAGS += rlparser.rc.data
|
||||
endif
|
||||
|
||||
# Define processes to execute
|
||||
#------------------------------------------------------------------------------------------------
|
||||
# rlparser compilation
|
||||
rlparser: rlparser.c
|
||||
$(CC) rlparser.c -o rlparser $(CFLAGS)
|
||||
|
||||
# rlparser execution: [raylib.h] parse, generating some output files
|
||||
raylib_api: ../../src/raylib.h rlparser
|
||||
FORMAT=DEFAULT EXTENSION=txt $(MAKE) raylib_api.txt
|
||||
FORMAT=JSON EXTENSION=json $(MAKE) raylib_api.json
|
||||
FORMAT=XML EXTENSION=xml $(MAKE) raylib_api.xml
|
||||
FORMAT=LUA EXTENSION=lua $(MAKE) raylib_api.lua
|
||||
|
||||
# rlparser execution: [raylib.h] parse, generating some output files
|
||||
raylib_api.$(EXTENSION): ../../src/raylib.h rlparser
|
||||
./rlparser -i ../../src/raylib.h -o raylib_api.$(EXTENSION) -f $(FORMAT) -d RLAPI
|
||||
|
||||
# rlparser execution: [rlgl.h] parse, generating some output files
|
||||
rlgl_api.$(EXTENSION): ../../src/rlgl.h rlparser
|
||||
./rlparser -i ../../src/rlgl.h -o rlgl_api.$(EXTENSION) -f $(FORMAT) -d RLAPI -t "RLGL IMPLEMENTATION"
|
||||
|
||||
# rlparser execution: [raymath.h] parse, generating some output files
|
||||
raymath_api.$(EXTENSION): ../../src/raymath.h rlparser
|
||||
./rlparser -i ../../src/raymath.h -o raymath_api.$(EXTENSION) -f $(FORMAT) -d RMAPI
|
||||
|
||||
# rlparser execution: [reasings.h] parse, generating some output files
|
||||
reasings_api.$(EXTENSION): ../../examples/others/reasings.h rlparser
|
||||
./rlparser -i ../../examples/others/reasings.h -o reasings_api.$(EXTENSION) -f $(FORMAT) -d EASEDEF
|
||||
|
||||
# rlparser execution: [raygui.h] parse, generating some output files
|
||||
raygui_api.$(EXTENSION): ../raygui.h rlparser
|
||||
./rlparser -i ../raygui.h -o raygui_api.$(EXTENSION) -f $(FORMAT) -d RAYGUIAPI -t "RAYGUI IMPLEMENTATION"
|
||||
|
||||
# Target to generate required APIs output files
|
||||
parse: raylib_api.$(EXTENSION) raymath_api.$(EXTENSION) rlgl_api.$(EXTENSION) raygui_api.$(EXTENSION)
|
||||
|
||||
# "make parse" (and therefore "make all") requires
|
||||
# raygui.h and reasings_api.h to exist in the correct directory
|
||||
# API files for individual headers can be created likeso, provided the relevant header exists:
|
||||
# FORMAT=JSON EXTENSION=json make raygui_api.json
|
||||
all: rlparser
|
||||
FORMAT=DEFAULT EXTENSION=txt $(MAKE) parse
|
||||
FORMAT=JSON EXTENSION=json $(MAKE) parse
|
||||
FORMAT=XML EXTENSION=xml $(MAKE) parse
|
||||
FORMAT=LUA EXTENSION=lua $(MAKE) parse
|
||||
|
||||
# Clean rlparser and generated output files
|
||||
clean:
|
||||
rm -f rlparser *.json *.txt *.xml *.lua
|
||||
Reference in New Issue
Block a user