2016-09-27 4 views
0

Cmakeにインストールされているファイルのアクセス権を変更しようとしていますが、動作していません。私は彼らがdiscussion of permission changingで議論しているようですが、アクセス権はファイルを初めて編集したときに間違っていて、変更を適用できません(次に保存するときに魔法のように修正されます)。Cmakeがインストールされているファイルのアクセス権を変更していません

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.vcxproj.in 
        ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.vcxproj) 
    file(COPY ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.vcxproj 
     DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
     FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE 
     ) 

私はinstallのようにそれをやってますが、エラーメッセージが表示されます....インストールでこれを行うファイルが存在しなかったというエラーMSGがあったが、それは、ファイルがになっていた場所を見せていたみましたビート。まだその時点でインストールされていない可能性があります。 @Tsyvarevの議論に

+0

私は 'ファイル(COPY)'があなたが望むように、**の場所で**ファイルの許可を変更することができないのか確信しています。注意していただきたいのは、設定ファイルのディレクトリの付録として '$ {CMAKE_FILES_DIRECTORY}'を使用しているので、 'file(COPY)' **は実際にファイルをコピーします**。 – Tsyvarev

+0

しかし、それはファイルをコピーするときに別の許可を与えることになっています。私の場合、最初にファイルを保存しようとするまで、パーミッションは変更されません。 – Michele

+1

また、 'file(COPY)'は、コピー先ファイル**がソース1と異なる場合にのみ動作するはずです。このコマンドでは、送信先と送信元が*同じファイル*の場合に、「場所」でのアクセス許可を置き換える必要があります。 – Tsyvarev

答えて

0

おかげで、私たちは、configureがコピーは、アクセス権のからそれを得ていたよりも、別の場所にファイルを入れていたと判断動作するように変更するので、私は、一時ディレクトリを追加しました:

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.vcxproj.in 
    ${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}.vcxproj) 
    file(COPY ${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}.vcxproj DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
     FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE 
     ) 
関連する問題