Вставить рамки в Ma c Bundle без Xcode - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь создать игровой движок прямо сейчас на macOS и просто пытаюсь настроить make-файл для компиляции кода в пакет приложений MacOS без Xcode. Я могу легко создать пакет, если просто связать код sr c, но я хочу встроить его в качестве фреймворка. Если я использую Xcode Embed Frameworks, то это действительно легко, но я не могу понять, как это достигает этого эффекта. Вот код для моего make-файла:

# Fill in Details for Compiler
PRJNAME = YetiGame
GAMEFILES = Example/Game.cpp
COMPILER = clang++

# Don't Change Unless Modifying Engine
LIBFILES = Yeti/Application/Application.cpp
OSXMACROS = -D YETI_PLATFORM_MACOS
SRCPATH = $(shell pwd)/
LIBFLAGS = -I $(SRCPATH) -framework Cocoa -framework Metal -framework Metalkit -framework QuartzCore -framework Foundation -o $(PRJNAME) -F$(SRCPATH) -framework @rpath@executable_path/../Frameworks/Neptune -v
LIBFILES = Yeti/Application/Application.cpp Yeti/Renderer/Metal/2D/metalRenderer2D.mm Yeti/Renderer/Metal/metalView.mm Yeti/Renderer/Metal/metalApplication.mm Yeti/Renderer/Metal/metalApplicationWrapper.mm Yeti/Renderer/Metal/metalDelegate.mm Yeti/Renderer/Metal/metalWindow.mm

app:
    $(COMPILER) $(LIBFILES) $(GAMEFILES) $(LIBFLAGS) $(OSXMACROS)
    mkdir -p _macOS/Contents/macOS/
    mv $(PRJNAME) _macOS/Contents/macOS/YetiExecutable
    cp Resources/Info.plist _macOS/Contents/Info.plist
    mkdir _macOS/Contents/Resources/
    cp Resources/temp.icns _macOS/Contents/Resources/temp.icns
    mv _macOS $(PRJNAME).app

clean:
    rm -R $(PRJNAME).app

Сейчас я только что скомпилировал фреймворк в Xcode и хочу связать его с моим проектом, чтобы просто что-то регистрировать и протестировать в Xcode. Я хочу иметь возможность скомпилировать фреймворк в XCode и использовать его извне XCode.

1 Ответ

0 голосов
/ 02 марта 2020

Я думаю, что, по крайней мере, я нашел ответ для dylibs. Вы можете использовать dlopen () для связывания фреймворка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...