Skip to content

opencv_img_hash prevent from building App Store dynamic framework #4110

@emaschino

Description

@emaschino

Hi,

Even though I've hit this issue with OpenCV 4.0.1, I think that the problem is still there with current OpenCV, as opencv_img_hash is excluded from opencv_world because of set(OPENCV_MODULE_IS_PART_OF_WORLD OFF) in its CMakeLists.txt.

Trying to build App Store dynamic framework thus failed as both opencv_world and opencv_img_hash are trying to produce opencv2.framework (from my limited understanding):

% python3 build_framework.py --contrib <opencv_contrib> --dynamic

ends up with:

error: Multiple commands produce '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/opencv2'
    note: Target 'opencv_img_hash' (project 'OpenCV') has link command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/opencv2'
    note: Target 'opencv_world' (project 'OpenCV') has link command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/opencv2'
error: Multiple commands produce '<Linked Binary <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/opencv2>'
    note: Target 'opencv_img_hash' (project 'OpenCV') has link command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/opencv2'
    note: Target 'opencv_world' (project 'OpenCV') has link command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/opencv2'
error: Multiple commands produce '<MkDir <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework>'
    note: Target 'opencv_img_hash' (project 'OpenCV') has create directory command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework'
    note: Target 'opencv_world' (project 'OpenCV') has create directory command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework'
error: Multiple commands produce '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/Info.plist'
    note: Target 'opencv_img_hash' (project 'OpenCV') has process command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/Info.plist'
    note: Target 'opencv_world' (project 'OpenCV') has process command with output '<outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework/Info.plist'
error: Multiple commands produce '<RegisterExecutionPolicyException <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework>'
    note: Target 'opencv_img_hash' (project 'OpenCV'): RegisterExecutionPolicyException <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework
    note: Target 'opencv_world' (project 'OpenCV'): RegisterExecutionPolicyException <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework
error: Multiple commands produce '<Touch <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework>'
    note: Target 'opencv_img_hash' (project 'OpenCV'): Touch <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework
    note: Target 'opencv_world' (project 'OpenCV'): Touch <outdir>/build/build-arm64-iphoneos/lib/Release/opencv2.framework

Excluding opencv_img_hash module is a workaround. Anonymized OpenCV's build log attached, if needed.

opencv_build.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions