2025/4/7(月)
午前中に某社で面接を受けた。その後予定が無かったのでiOS開発の研究を進めた。
- なんか実機で出すと全画面にならず、画面サイズとしても全画面が取れていないと思ったら、対応デバイスとしてiPhoneを指定していてiPadは指定していなかった。XCodeの設定で直った。
- 対応デバイスの設定をCMakeから出来ないか調べた。
CMAKE_XCODE_ATTRIBUTE_xx
で任意のbuildConfigを指定できるらしく、CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY="1,2"
を指定することでiPadサポートができた。 - 描画メインループをどう書くかだが、
CADisplayLink
なるものを使うらしい。なお使用には-framework QuartzCore
のリンク指定を要する。 - Vulkan(MoltenVK)のリンクに中々苦労したが、がんばった結果恐らくどうにかなった。明日以降本腰入れて上手くいってるのか検証する。
- 基本はこちらを参考: https://www.khronos.org/blog/developing-with-vulkan-on-apple-ios
find_library
でVulkanを見つけられるようにするために設定が要る。FindVulkan.cmake
をVulkan-Samplesからかっぱらってきて./cmake
にぶち込む: https://github.com/KhronosGroup/Vulkan-Samples/blob/main/bldsys/cmake/module/FindVulkan.cmake#L6./cmake
からFindVulkan.cmake
を拾ってこれるようにCMakeListsを設定する:list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- 多分
source (Vulkan SDKのパス)/iOS/setup-env.sh
もやっておくべき
- プロジェクトにフレームワークの追加が要る。
(Vulkan SDKのパス)/iOS/lib/vulkan.framework
(Vulkan SDKのパス)/iOS/lib/MoltenVK.xcframework
- CMakeからやりたいが現時点で方法不明。
library not loaded
Reason: no LC_RPATH's found
が出るので以下の方法で対処。- プロジェクト設定>Build Settings>Other Linker Flagsで
-rpath
@executable_path/Frameworks
を指定 - 参考: https://pulselabs.gitbook.io/pulse-flightrecorder-docs/sdk-documentation/pulse-labs-flightrecorder-documentation/ios/troubleshooting
- プロジェクト設定>Build Settings>Other Linker Flagsで
Categories: 未分類