c – 在OSX上使用CMake构建Unity本机包
发布时间:2020-12-14 18:04:22 所属栏目:百科 来源:网络整理
导读:我有一个 Xcode项目,它构建一个包含库的包.我使用以下菜单创建了项目: New Project - Framework Library - Bundle 为了给出更多的上下文,我想创建一个native plugin for Unity.目前标题非常简单,只包含一个标题和一个源文件. 我现在希望能够使用CMake生成类
我有一个
Xcode项目,它构建一个包含库的包.我使用以下菜单创建了项目:
为了给出更多的上下文,我想创建一个native plugin for Unity.目前标题非常简单,只包含一个标题和一个源文件. 我现在希望能够使用CMake生成类似的项目,我正在努力使其工作. CMake文件我归结为: cmake_minimum_required(VERSION 3.3) project(Plugin) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES Plugin.cpp) add_library(Plugin SHARED ${SOURCE_FILES}) 上面的脚本构建了一个.dylib文件,我希望它能够构建一个.bundle文件. 我发现add_executable有一个MACOSX_BUNDLE选项,但它对我不起作用,因为我想捆绑一个库.还有一个名为BUNDLE的目标属性,但它似乎没有改变我的项目 – 它仍然会创建一个.dylib文件,当我希望得到一个.bundle文件. 我阅读了this question,似乎提出了一个有效的解决方案,但我不能让它适用于我的项目. 任何帮助赞赏. 解决方法
我不使用CMake,但我已经为iOS和OSX构建了一个Unity本机库.我通过调用xcodebuild使用构建脚本为两个平台构建.它为iOS构建了一个静态库,为OSX构建了一个动态库,当将构建的库复制到位时,.dylib被简单地重命名为.bundle.
这是我的构建脚本,如果有帮助: #!/bin/sh PROJECT=UnityPlugin_UserDefaults.xcodeproj CONFIGURATION=Release BUILDDIR=build OSXARCHIVEDIR=UserDefaults_OSX.xcarchive IOSLIB=../Plugins/iOS/libUserDefaults.a OSXLIB=../Plugins/UserDefaults.bundle rm -rf $BUILDDIR $OSXARCHIVEDIR for sdk in iphoneos iphonesimulator do xcodebuild -project $PROJECT -configuration $CONFIGURATION -scheme UserDefaults_iOS -derivedDataPath $BUILDDIR -sdk $sdk build || exit 2 done mkdir -p $(dirname $IOSLIB) rm -f $IOSLIB xcrun lipo $BUILDDIR/Build/Products/$CONFIGURATION-iphoneos/libUserDefaults.a $BUILDDIR/Build/Products/$CONFIGURATION-iphonesimulator/libUserDefaults.a -output $IOSLIB -create || exit 3 echo Created $IOSLIB: file $IOSLIB xcodebuild -project $PROJECT -configuration $CONFIGURATION -scheme UserDefaults_OSX -derivedDataPath $BUILDDIR -archivePath $OSXARCHIVEDIR -sdk macosx archive || exit 4 mkdir -p $(dirname $OSXLIB) cp $OSXARCHIVEDIR/Products/usr/local/lib/libUserDefaults.dylib $OSXLIB || exit 5 echo Created $OSXLIB: file $OSXLIB rm -rf $BUILDDIR Xcode项目包含每个平台的目标,其中一个Scheme用于定义要构建的目标. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |