TARGET := iphone:clang:latest:15.0
ARCHS := arm64
FINALPACKAGE = 1
FOR_RELEASE = 1

THEOS = /home/chinosk/theos

include $(THEOS)/makefiles/common.mk

# LOCALIFY_LANG: SCN or EN
LOCALIFY_LANG ?= SCN

ifeq ($(LOCALIFY_LANG),EN)
LOCALIFY_LANG_DEFINES := -DLOCALIFY_SCN=0 -DLOCALIFY_EN=1
else ifeq ($(LOCALIFY_LANG),SCN)
LOCALIFY_LANG_DEFINES := -DLOCALIFY_SCN=1 -DLOCALIFY_EN=0
else
$(error LOCALIFY_LANG must be SCN or EN)
endif

LIBRARY_NAME_BASE = GakumasLocalifyIOS
LIBRARY_NAME = $(LIBRARY_NAME_BASE)_$(LOCALIFY_LANG)

#ALL_MINIZIP_C = $(wildcard includes/SSZipArchive/minizip/*.c)
#MINIZIP_FILES = $(filter-out %mz_crypt.c %mz_crypt_apple.c %mz_os_win32.c %mz_strm_win32.c, $(ALL_MINIZIP_C))

$(LIBRARY_NAME)_FILES = \
	src/Entry.mm \
	src/UpdateChecker.mm \
	src/Plugin.cpp \
	src/IOSHookInstaller.mm \
	GakumasLocalify/GakumasLocalify/Plugin.cpp \
	GakumasLocalify/GakumasLocalify/Hook.cpp \
	GakumasLocalify/GakumasLocalify/Log.cpp \
	GakumasLocalify/GakumasLocalify/Misc.cpp \
	GakumasLocalify/GakumasLocalify/Local.cpp \
	GakumasLocalify/GakumasLocalify/MasterLocal.cpp \
	GakumasLocalify/GakumasLocalify/config/Config.cpp \
	GakumasLocalify/GakumasLocalify/string_parser/StringParser.cpp \
	GakumasLocalify/il2cpp_dump/Il2cppJson.cpp \
	$(wildcard includes/SCLAlertView/*.m) \
	$(wildcard includes/SSZipArchive/SSZipArchive.m) \
	$(wildcard includes/SSZipArchive/minizip/*.c)

ZIP_ARCHIVE_DEFINES = -DHAVE_INTTYPES_H -DHAVE_PKCRYPT -DHAVE_STDINT_H -DHAVE_WZAES -DHAVE_ZLIB

$(LIBRARY_NAME)_CFLAGS += -fobjc-arc -Wno-error -Wno-unused-function $(ZIP_ARCHIVE_DEFINES) $(LOCALIFY_LANG_DEFINES)

COMMON_CCFLAGS = -DFMT_HEADER_ONLY -Wno-c++11-narrowing -Wno-unused-function -Wno-deprecated-declarations -fdeclspec -Wno-error \
	-IGakumasLocalify/deps \
	-IGakumasLocalify/deps/fmt-11.0.2/include \
	-IGakumasLocalify/il2cpp_dump

$(LIBRARY_NAME)_CCFLAGS += -std=c++20 $(COMMON_CCFLAGS) $(LOCALIFY_LANG_DEFINES)

#src/UpdateChecker.mm_CCFLAGS = -std=c++11 $(COMMON_CCFLAGS)
#src/Entry.mm_CCFLAGS = -std=c++11 $(COMMON_CCFLAGS)
#src/IOSHookInstaller.mm_CCFLAGS = -std=c++11 $(COMMON_CCFLAGS)

$(LIBRARY_NAME)_OBJCCFLAGS += -std=c++17 -Wno-error -Wno-unused-function $(LOCALIFY_LANG_DEFINES)


$(LIBRARY_NAME)_INCLUDE_PATHS += \
	GakumasLocalify \
	GakumasLocalify/deps \
	GakumasLocalify/deps/fmt-11.0.2/include \
	GakumasLocalify/il2cpp_dump

$(LIBRARY_NAME)_FRAMEWORKS += Foundation UIKit
$(LIBRARY_NAME)_LDFLAGS += -ldl -lz -Wl,-undefined,dynamic_lookup

include $(THEOS_MAKE_PATH)/library.mk
