glTF-SDK icon indicating copy to clipboard operation
glTF-SDK copied to clipboard

cmake documentation, install for iOS app

Open ArMouReR opened this issue 2 years ago • 4 comments

Hi,

I am missing any documentation how to compile to static/dynamic lib to use inside iOS app.

I have tried to compile in the usual way, e.g.:

git clone https://github.com/microsoft/glTF-SDK.git
cd glTF-SDK/Build/
cmake ..
cmake --build . --target install

It worked, but install was done in: glTF-SDK/Built/Out/macOS/RelWithDebInfo/GLTFSDK/libGLTFSDK.a

How can I configure cmake to install it into /usr/local/include/ in order to use later in Xcode inside iPhone app ?

ArMouReR avatar Oct 04 '21 02:10 ArMouReR

Take a look at the macinit.ps1 and macbuild.ps1 PowerShell scripts for the commands needed to build for iOS.

kokuda avatar Oct 04 '21 09:10 kokuda

@kokuda Thanks for pointing out, tried to run init, it stopped with the following error:

CMake Error at Build/CMake/Modules/GLTFPlatform.cmake:88 (target_link_libraries):
  The keyword signature for target_link_libraries has already been used with
  the target "GLTFSDK.Test".  All uses of target_link_libraries with a target
  must be either all-keyword or all-plain.

  The uses of the keyword signature are here:

   * GLTFSDK.Test/CMakeLists.txt:37 (target_link_libraries)

Call Stack (most recent call first):
  GLTFSDK.Test/CMakeLists.txt:46 (AddGLTFIOSAppProperties)


-- Configuring incomplete, errors occurred!

Then started the build script and got the following:

xcodebuild: error: 'GLTFSDK.xcodeproj' does not exist.
Attempting to build package from 'GLTFSDK.macOS.CPP.nuspec'.
WARNING: NU5125: The 'licenseUrl' element will be deprecated. Consider using the 'license' element instead.
WARNING: NU5048: The 'PackageIconUrl'/'iconUrl' element is deprecated. Consider using the 'PackageIcon'/'icon' element instead. Learn more at https://aka.ms/deprecateIconUrl
Successfully created package '/Users/admin/dev/ios/lib/glTF-SDK/Built/Out/NuGet/Microsoft.glTF.macOS.CPP.0.0.0.nupkg'.
Attempting to build package from 'GLTFSDK.iOS.CPP.nuspec'.
Could not find a part of the path '/Users/admin/dev/ios/lib/glTF-SDK/Built/Out/iOS/Debug/GLTFSDK'.

So, what is the general flow ? All I need is to use it inside iOS app (C++ part), so in my understanding I need an inc folder with all the headers and .a lib that I can add as custom framework in Xcode.

What is the fastest route to get there ? Any hints are really appreciated.

BTW, what about prebuild nuget package ? I don't think that I need the latest version and existing package may work for me...

ArMouReR avatar Oct 04 '21 12:10 ArMouReR

Unfortunately, it has been a long time since I ran a mac or iOS build and don't recall the details. I just remembered that those scripts existed (I think I wrote them, but that was over 3 years ago and don't remember much) and thought they would help. You could try dissecting the commands within those scripts and run just the ones you need for iOS.

Take a look at GenerateProjectsIOS() in macinit.ps1 for how to build the xcode project. I don't know if it still works but it might help. I believe that once the xcode project is generated you can build the library using xcode.

kokuda avatar Oct 04 '21 14:10 kokuda

Dupe or at least related: #70

bghgary avatar Dec 07 '23 20:12 bghgary