Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 33 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# Build type (Debug or Release)
BUILD_TYPE ?= Release
# iOS SDK settings
SDK ?= $(shell xcrun --sdk iphoneos --show-sdk-path)
SDK ?= /Applications/Xcode_16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.2.sdk
ARCHS ?= arm64
MIN_IOS_VERSION ?= 15.0

Expand All @@ -27,10 +27,10 @@ endif
CXXFLAGS := -std=c++17 -fPIC $(OPT_FLAGS) -Wall -Wextra -fvisibility=hidden -ferror-limit=0 -fno-limit-debug-info
CFLAGS := -fPIC $(OPT_FLAGS) -Wall -Wextra -fvisibility=hidden -ferror-limit=0 -fno-limit-debug-info
OBJCXXFLAGS := -std=c++17 -fPIC $(OPT_FLAGS) -Wall -Wextra -fvisibility=hidden -ferror-limit=0 -fno-limit-debug-info
LDFLAGS := -shared
LDFLAGS := -shared -undefined dynamic_lookup -framework Foundation -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Security -framework CoreML -framework Vision -framework Metal -framework MetalKit

# Include paths - add VM includes for Lua headers and source directory
INCLUDES := -I. -I/usr/local/include -I$(SDK)/usr/include -IVM/include -IVM/src -I$(SRC_DIR)
INCLUDES := -I. -I/usr/local/include -I$(SDK)/usr/include -IVM/include -IVM/src -I$(SRC_DIR) -Iinclude

# iOS SDK flags for iOS 15+ compatibility
PLATFORM_FLAGS := -isysroot $(SDK) -arch $(ARCHS) -mios-version-min=$(MIN_IOS_VERSION) -DIOS_VERSION=$(MIN_IOS_VERSION) -DLUAU_PLATFORM_IOS=1 -DLUAU_TARGET_IOS=1
Expand Down Expand Up @@ -122,45 +122,49 @@ DYLIB_INSTALL_NAME := @executable_path/Frameworks/$(LIB_NAME)
all: directories $(OUTPUT_DIR)/$(LIB_NAME)

directories:
@mkdir -p $(BUILD_DIR)
@mkdir -p $(OUTPUT_DIR)
@mkdir -p $(BUILD_DIR)
@mkdir -p $(OUTPUT_DIR)

clean:
rm -rf $(OBJECTS) $(BUILD_DIR)/$(LIB_NAME) $(OUTPUT_DIR)/$(LIB_NAME)
rm -rf $(OBJECTS) $(BUILD_DIR)/$(LIB_NAME) $(OUTPUT_DIR)/$(LIB_NAME)

install: all
@mkdir -p $(INSTALL_DIR)
cp $(OUTPUT_DIR)/$(LIB_NAME) $(INSTALL_DIR)/
@mkdir -p $(INSTALL_DIR)
cp $(OUTPUT_DIR)/$(LIB_NAME) $(INSTALL_DIR)/

$(OUTPUT_DIR)/$(LIB_NAME): $(OBJECTS)
$(LD) $(LDFLAGS) -o $@ $^ -install_name $(DYLIB_INSTALL_NAME)
@echo "✅ Built $@"
@echo "Creating dummy main.cpp for linking..."
@mkdir -p $(BUILD_DIR)
@echo 'extern "C" int main(int argc, char** argv) { return 0; }' > $(BUILD_DIR)/main.cpp
$(CXX) $(CXXFLAGS) $(PLATFORM_FLAGS) $(DEFS) $(INCLUDES) -c -o $(BUILD_DIR)/main.o $(BUILD_DIR)/main.cpp
$(LD) $(LDFLAGS) -o $@ $(BUILD_DIR)/main.o $^ -install_name $(DYLIB_INSTALL_NAME)
@echo "✅ Built $@"

%.o: %.cpp
$(CXX) $(CXXFLAGS) $(PLATFORM_FLAGS) $(DEFS) $(INCLUDES) -c -o $@ $<
$(CXX) $(CXXFLAGS) $(PLATFORM_FLAGS) $(DEFS) $(INCLUDES) -c -o $@ $<

%.o: %.mm
$(OBJCXX) $(OBJCXXFLAGS) $(PLATFORM_FLAGS) $(DEFS) $(INCLUDES) -c -o $@ $<
$(OBJCXX) $(OBJCXXFLAGS) $(PLATFORM_FLAGS) $(DEFS) $(INCLUDES) -c -o $@ $<

# Print build information
info:
@echo "Build Type: $(BUILD_TYPE)"
@echo "Platform: $(shell uname -s)"
@echo "VM Sources: $(VM_SOURCES)"
@echo "Exec Sources: $(CPP_SOURCES)"
@echo "iOS CPP Sources: $(iOS_CPP_SOURCES)"
@echo "iOS MM Sources: $(iOS_MM_SOURCES)"
@echo "Build Type: $(BUILD_TYPE)"
@echo "Platform: $(shell uname -s)"
@echo "VM Sources: $(VM_SOURCES)"
@echo "Exec Sources: $(CPP_SOURCES)"
@echo "iOS CPP Sources: $(iOS_CPP_SOURCES)"
@echo "iOS MM Sources: $(iOS_MM_SOURCES)"

# Help target
help:
@echo "Available targets:"
@echo " all - Build everything (default)"
@echo " clean - Remove build artifacts"
@echo " install - Install dylib to /usr/local/lib"
@echo " info - Print build information"
@echo ""
@echo "Configuration variables:"
@echo " BUILD_TYPE=Debug|Release - Set build type (default: Release)"
@echo " USE_DOBBY=0|1 - Enable Dobby hooking (default: 1)"
@echo " ENABLE_AI_FEATURES=0|1 - Enable AI features (default: 0)"
@echo " ENABLE_ADVANCED_BYPASS=0|1 - Enable advanced bypass (default: 1)"
@echo "Available targets:"
@echo " all - Build everything (default)"
@echo " clean - Remove build artifacts"
@echo " install - Install dylib to /usr/local/lib"
@echo " info - Print build information"
@echo ""
@echo "Configuration variables:"
@echo " BUILD_TYPE=Debug|Release - Set build type (default: Release)"
@echo " USE_DOBBY=0|1 - Enable Dobby hooking (default: 1)"
@echo " ENABLE_AI_FEATURES=0|1 - Enable AI features (default: 0)"
@echo " ENABLE_ADVANCED_BYPASS=0|1 - Enable advanced bypass (default: 1)"
2 changes: 2 additions & 0 deletions VM/src/lfunc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ void luaF_close(lua_State* L, StkId level)
GCObject* o = obj2gco(uv);
LUAU_ASSERT(!isblack(o) && upisopen(uv));
LUAU_ASSERT(!isdead(g, o));
(void)o; // Prevent unused variable warning
(void)g; // Prevent unused variable warning

// unlink value *before* closing it since value storage overlaps
L->openupval = uv->u.open.threadnext;
Expand Down
1 change: 1 addition & 0 deletions VM/src/lvmexecute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ static void luau_execute(lua_State* L)
{
Instruction insn = *pc++;
LUAU_ASSERT(insn == 0);
(void)insn; // Prevent unused variable warning
VM_NEXT();
}

Expand Down
Loading
Loading