[CMake] Get errors when executing shell scripts in post_build process as custom targets

NoRulez norulez at me.com
Tue Nov 29 17:37:52 EST 2011


Hi,

 

I want to do something after the bundle is created (POST_BUILD). For this I
tried the following:

 

ADD_EXECUTABLE(...)

TARGET_LINK_LIBRARIES(...)

ADD_DEPENDECIES(...)

 

IF (APPLE)

        SET(BUNDLE_IDENTIFIER
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app")

 

        ADD_CUSTOM_TARGET(Custom1 ALL DEPENDS ${BUNDLE_IDENTIFIER})

 

        ADD_CUSTOM_COMMAND(TARGET Custom1 POST_BUILD

                           COMMAND "/usr/bin/macdeployqt
${PROJECT_NAME}.app"

                           #COMMAND "/usr/bin/macdeployqt
${BUNDLE_IDENTIFIER}"

                           WORKING_DIRECTORY
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"

                           COMMENT “Prepare for deployment”

                           VERBATIM)

        ADD_CUSTOM_COMMAND(TARGET Custom1 POST_BUILD

                           COMMAND /usr/bin/security
$ENV{HOME}/Library/Keychains/login.keychain"

                           COMMENT “Unlock the keychain”

                           VERBATIM)

        ADD_CUSTOM_COMMAND(TARGET Custom1 POST_BUILD

                           COMMAND /usr/bin/codesign --force --verbose
--verify --sign \"${APPLICATION_CERTIFICATE}\" ${BUNDLE_IDENTIFIER}"

                           COMMENT “Sign the application bundle”

                           VERBATIM)

        ADD_CUSTOM_COMMAND(TARGET Custom1 POST_BUILD

                           COMMAND /usr/bin/productbuild --component
\"${BUNDLE_IDENTIFIER}\" /Applications --sign \"${INSTALLER_CERTIFICATE}\"
--product \"${BUNDLE_IDENTIFIER}/Contents/Info.plist\" ${PROJECT_NAME}.pkg"

                           WORKING_DIRECTORY
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"

                           COMMENT “Build package”

                           VERBATIM)

ENDIF(APPLE)

 

But I get the the following error:

/bin/sh: /usr/bin/macdeployqt MyApp.app: No such file or directory

make[2]: *** [Custom1] Error 127

make[1]: *** [app/CMakeFiles/Custom1.dir/all] Error 2

make: *** [all] Error 2

 

I also tried to use the full path to the bundle but I get the same error.

 

Does anyone know where could be the problem?

Maybe this can also be done with the BundleUtilities?

 

Thanks in advance

 

Best Regards

NoRulez

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20111129/b5023da3/attachment-0001.htm>


More information about the CMake mailing list