fileicon icon indicating copy to clipboard operation
fileicon copied to clipboard

Has anyone found a way of using this with CMake's CPack for DragNDrop, TGZ, or productbuild generators on MacOSX? (they seem to reset the icon on the directory)

Open subatomicglue opened this issue 8 years ago • 3 comments

(apologies for the cmake question, but since image related, perhaps someone here has experienced this)

Has anyone found a way of using this with CMake's CPack for DragNDrop, TGZ, or productbuild generators on MacOSX?

They seem to reset the icon on the directory:

Relevant lines from cmake:

# make
add_library(${PROJECT_NAME} MODULE ${SOURCES} ${RESOURCE_FILES})
set_target_properties(${PROJECT_NAME} PROPERTIES  BUNDLE true BUNDLE_EXTENSION "vst")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
      COMMAND fileicon set ${PROJECT_NAME}.vst image.png
      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
      COMMENT "..."
   )

# make install
install(DIRECTORY "${PROJECT_NAME}.vst" DESTINATION "install" COMPONENT vstplugin)
install( SCRIPT "PostInstall.cmake" COMPONENT vstplugin)

# make package
set(CPACK_GENERATOR "DragNDrop;TGZ;productbuild")

Here is PostInstall.cmake, which is required or else make install will strip off the icon from the bundle folder.

execute_process( COMMAND fileicon set install/MyPlugin.vst image.png )

So running make generates MyPlugin.vst directory with the image on it, (the add_custom_command step sets it), looks perfect.

Running make install copies the bundle folder with install( DIRECTORY, stripping the image, so I compensate with the PostInstall.cmake which reruns fileicon script from execute_process.

And then the CPack packager generates the .dmg, the .pkg, and the .tgz, which strips the folder image again from all...

Any ideas why CMake is stripping the image? (and how to get it to not do that)

subatomicglue avatar Mar 23 '18 04:03 subatomicglue

I'm not familiar CMake, but it sounds that it at least by default it ignores HFS (the macOS filesystem's) extended attributes, in which the icon information is stored.

However, there may be ways to opt in: https://cmake.org/cmake/help/v3.0/module/CPackDMG.html

mklement0 avatar Mar 23 '18 13:03 mklement0

If you can confirm that there is a way to make this work, we can add a summary to the Wiki for this repo.

mklement0 avatar Mar 23 '18 13:03 mklement0

Tracking same topic over at cmake's issue tracker as well: https://gitlab.kitware.com/cmake/cmake/issues/17847

subatomicglue avatar Mar 23 '18 14:03 subatomicglue