2017-01-24 9 views
0

나는 CMake를 사용하여 OSX에서 프레임 워크를 만들었지 만 프레임 워크는 libusb와 동적으로 연결됩니다. fixup_bundle() 또는 다른 것을 사용하여 libusb.dylib을 프레임 워크 번들에 복사하고 내 라이브러리 rpath을 수정하여 libusb의 절대 경로 대신 프레임 워크를 가리 키도록 할 수 있습니까?fixup_bundle을 사용하여 OSX의 프레임 워크에 라이브러리를 추가하려면 어떻게해야합니까?

set_target_properties(mylib PROPERTIES 
    # Build a framework on OSX. 
    FRAMEWORK TRUE 
    # Add a relative path for dependencies to the rpath of mylib (when installed). 
    INSTALL_RPATH "@loader_path" 
    # But also use the INSTALL_RPATH anyway in the build tree, before it is installed. 
    BUILD_WITH_INSTALL_RPATH TRUE 
) 

을하지만 그 프레임 워크에 종속성을 복사하지 않습니다 :

답변

0

rpath는 비교적 쉽게 밝혀졌다 고정. 나는 수동으로 그렇게한다 :

# Copy libfoo into the bundle. 
if (APPLE) 
    add_custom_command(TARGET mylib POST_BUILD 
     COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:libfoo>" "$<TARGET_FILE_DIR:mylib>" 
     COMMENT "Bundling libfoo" 
     VERBATIM 
    ) 
endif()