first working after conversion from PListCPP to libplist

This commit is contained in:
Harvey Fong 2025-03-21 13:06:23 -06:00
parent ef60e64564
commit c2c6fcd1d2
2 changed files with 1367 additions and 1797 deletions

211
makefile
View File

@ -1,142 +1,95 @@
SDKNAME =bella_scene_sdk # Project configuration
OUTNAME =vmax2bella BELLA_SDK_NAME = bella_scene_sdk
UNAME =$(shell uname) EXECUTABLE_NAME = vmax2bella
PLATFORM = $(shell uname)
ifeq ($(UNAME), Darwin) # Common paths
BELLA_SDK_PATH = ../bella_scene_sdk
LZFSE_PATH = ../lzfse
LIBPLIST_PATH = ../libplist
OBJ_DIR = obj/$(PLATFORM)
BIN_DIR = bin/$(PLATFORM)
OUTPUT_FILE = $(BIN_DIR)/$(EXECUTABLE_NAME)
SDKBASE = ../bella_scene_sdk # Platform-specific configuration
ifeq ($(PLATFORM), Darwin)
SDKFNAME = lib$(SDKNAME).dylib # macOS configuration
LZFSELIBNAME = liblzfse.dylib SDK_LIB_EXT = dylib
INCLUDEDIRS = -I$(SDKBASE)/src LZFSE_LIB_NAME = liblzfse.$(SDK_LIB_EXT)
INCLUDEDIRS2 = -I../lzfse/src PLIST_LIB_NAME = libplist-2.0.4.$(SDK_LIB_EXT)
INCLUDEDIRS3 = -I../PlistCpp/include MACOS_SDK_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
INCLUDEDIRS4 = -I../PlistCpp/src
LIBDIR = $(SDKBASE)/lib # Compiler settings
LIBDIRS = -L$(LIBDIR) CC = clang
LZFSEBUILDDIR = ../lzfse/build CXX = clang++
LZFSELIBDIR = -L$(LZFSEBUILDDIR)
PLISTDIR = ../PlistCpp/build # Architecture flags
PLISTLIBDIR = -L$(PLISTDIR) ARCH_FLAGS = -arch x86_64 -arch arm64 -mmacosx-version-min=11.0 -isysroot $(MACOS_SDK_PATH)
OBJDIR = obj/$(UNAME)
BINDIR = bin/$(UNAME) # Linking flags
OUTPUT = $(BINDIR)/$(OUTNAME) LINKER_FLAGS = $(ARCH_FLAGS) -framework Cocoa -framework IOKit -fvisibility=hidden -O5 -rpath @executable_path
ISYSROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk # Platform-specific libraries
PLIST_LIB = -lplist-2.0
CC = clang
CXX = clang++
CCFLAGS = -arch x86_64\
-arch arm64\
-mmacosx-version-min=11.0\
-isysroot $(ISYSROOT)\
-fvisibility=hidden\
-O3\
$(INCLUDEDIRS)\
$(INCLUDEDIRS2)\
$(INCLUDEDIRS3)\
$(INCLUDEDIRS4)
CFLAGS = $(CCFLAGS)\
-std=c17
CXXFLAGS = $(CCFLAGS)\
-std=c++17\
-Wno-deprecated-declarations
CPPDEFINES = -DNDEBUG=1\
-DDL_USE_SHARED
LIBS = -l$(SDKNAME)\
-lm\
-ldl\
-llzfse\
$(PLISTDIR)/libplist.a
LINKFLAGS = -mmacosx-version-min=11.0\
-isysroot $(ISYSROOT)\
-framework Cocoa\
-framework IOKit\
-fvisibility=hidden\
-O5\
-rpath @executable_path
else else
# Linux configuration
SDKBASE = ../bella_scene_sdk SDK_LIB_EXT = so
LZFSE_LIB_NAME = liblzfse.$(SDK_LIB_EXT)
SDKFNAME = lib$(SDKNAME).so PLIST_LIB_NAME = libplist.$(SDK_LIB_EXT)
SDKFNAME2 = liblzfse.so
INCLUDEDIRS = -I$(SDKBASE)/src # Compiler settings
INCLUDEDIRS2 = -I../lzfse/src CC = gcc
INCLUDEDIRS3 = -I../PlistCpp/include CXX = g++
INCLUDEDIRS4 = -I../PlistCpp/src
LIBDIR = $(SDKBASE)/lib # Architecture flags
LIBDIRS = -L$(LIBDIR) ARCH_FLAGS = -m64 -D_FILE_OFFSET_BITS=64
LZFSEBUILDDIR = ../lzfse/build
LZFSELIBDIR = -L$(LZFSEBUILDDIR) # Linking flags
PLISTDIR = ../PlistCpp/build LINKER_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 -Wl,-rpath,'$$ORIGIN' -Wl,-rpath,'$$ORIGIN/lib'
PLISTLIBDIR = -L$(PLISTDIR)
OBJDIR = obj/$(UNAME) # Platform-specific libraries
BINDIR = bin/$(UNAME) PLIST_LIB = -lplist
OUTPUT = $(BINDIR)/$(OUTNAME)
CC = gcc
CXX = g++
CCFLAGS = -m64\
-Wall\
-fvisibility=hidden\
-D_FILE_OFFSET_BITS=64\
-O3\
$(INCLUDEDIRS)\
$(INCLUDEDIRS2)\
$(INCLUDEDIRS3)\
$(INCLUDEDIRS4)
CFLAGS = $(CCFLAGS)\
-std=c11
CXXFLAGS = $(CCFLAGS)\
-std=c++11
CPPDEFINES = -DNDEBUG=1\
-DDL_USE_SHARED
LIBS = -l$(SDKNAME)\
-lm\
-ldl\
-lrt\
-lpthread\
-llzfse\
$(PLISTDIR)/libplist.a
LINKFLAGS = -m64\
-fvisibility=hidden\
-O3\
-Wl,-rpath,'$$ORIGIN'\
-Wl,-rpath,'$$ORIGIN/lib'
endif endif
OBJS = vmax2bella.o # Common include and library paths
OBJ = $(patsubst %,$(OBJDIR)/%,$(OBJS)) INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src -I$(LZFSE_PATH)/src -I$(LIBPLIST_PATH)/include
SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib
SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT)
LZFSE_BUILD_DIR = $(LZFSE_PATH)/build
PLIST_LIB_DIR = $(LIBPLIST_PATH)/src/.libs
# Define the path to the precompiled pugixml.o # Library flags
PUGIXML_OBJ = pugixml/bin/$(UNAME)/pugixml.o LIB_PATHS = -L$(SDK_LIB_PATH) -L$(LZFSE_BUILD_DIR) -L$(PLIST_LIB_DIR)
LIBRARIES = -l$(BELLA_SDK_NAME) -lm -ldl -llzfse $(PLIST_LIB)
$(OBJDIR)/%.o: %.cpp # Common compiler flags
COMMON_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 $(INCLUDE_PATHS)
# Language-specific flags
C_FLAGS = $(COMMON_FLAGS) -std=c17
CXX_FLAGS = $(COMMON_FLAGS) -std=c++17 -Wno-deprecated-declarations
CPP_DEFINES = -DNDEBUG=1 -DDL_USE_SHARED
# Objects
OBJECTS = vmax2bella.o
OBJECT_FILES = $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS))
# Build rules
$(OBJ_DIR)/%.o: %.cpp
@mkdir -p $(@D) @mkdir -p $(@D)
$(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPDEFINES) $(CXX) -c -o $@ $< $(CXX_FLAGS) $(CPP_DEFINES)
$(OUTPUT): $(OBJ) $(PUGIXML_OBJ) $(OUTPUT_FILE): $(OBJECT_FILES)
@mkdir -p $(@D) @mkdir -p $(@D)
$(CXX) -o $@ $(OBJ) $(PUGIXML_OBJ) $(LINKFLAGS) $(LIBDIRS) $(LZFSELIBDIR) $(LIBS) $(CXX) -o $@ $(OBJECT_FILES) $(LINKER_FLAGS) $(LIB_PATHS) $(LIBRARIES)
@cp $(LIBDIR)/$(SDKFNAME) $(BINDIR)/$(SDKFNAME) @cp $(SDK_LIB_PATH)/$(SDK_LIB_FILE) $(BIN_DIR)/$(SDK_LIB_FILE)
@cp $(LZFSEBUILDDIR)/$(LZFSELIBNAME) $(BINDIR)/$(LZFSELIBNAME) @cp $(LZFSE_BUILD_DIR)/$(LZFSE_LIB_NAME) $(BIN_DIR)/$(LZFSE_LIB_NAME)
@cp $(PLIST_LIB_DIR)/$(PLIST_LIB_NAME) $(BIN_DIR)
.PHONY: clean .PHONY: clean
clean: clean:
rm -f $(OBJDIR)/*.o rm -f $(OBJ_DIR)/*.o
rm -f $(OUTPUT) rm -f $(OUTPUT_FILE)
rm -f $(BINDIR)/$(SDKFNAME) rm -f $(BIN_DIR)/$(SDK_LIB_FILE)
rm -f $(BIN_DIR)/*.dylib

File diff suppressed because it is too large Load Diff