diff options
| -rw-r--r-- | CMake/fl_create_example.cmake | 38 | ||||
| -rw-r--r-- | fluid/CMakeLists.txt | 18 |
2 files changed, 34 insertions, 22 deletions
diff --git a/CMake/fl_create_example.cmake b/CMake/fl_create_example.cmake index 84f726d91..9d6360215 100644 --- a/CMake/fl_create_example.cmake +++ b/CMake/fl_create_example.cmake @@ -103,26 +103,6 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES) endif (MAC_BUNDLE AND ICON_NAME) ############################################################################## - # copy macOS "bundle wrapper" (shell script) to target (bin) directory - ############################################################################## - # (1) file (COPY ...) to set execution permissions - # (2) file (RENAME ...) to move the file to its final place - ############################################################################## - - if (MAC_BUNDLE) - file (COPY - ${CMAKE_CURRENT_SOURCE_DIR}/../CMake/macOS-bundle-wrapper.in - DESTINATION ${CMAKE_CURRENT_BINARY_DIR} - FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE - GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - ) - file (RENAME - ${CMAKE_CURRENT_BINARY_DIR}/macOS-bundle-wrapper.in - ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME} - ) - endif (MAC_BUNDLE) - - ############################################################################## # add executable target and set properties (all platforms) ############################################################################## @@ -139,6 +119,24 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES) set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/${PLIST}") endif (PLIST) + ############################################################################## + # Copy macOS "bundle wrapper" (shell script) to target directory. + # The "custom command" will be executed "POST_BUILD". + ############################################################################## + + if (MAC_BUNDLE) + set (WRAPPER "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${TARGET_NAME}") + add_custom_command ( + TARGET ${TARGET_NAME} POST_BUILD + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../CMake/macOS-bundle-wrapper.in ${WRAPPER} + COMMAND chmod u+x,g+x,o+x ${WRAPPER} + BYPRODUCTS ${WRAPPER} + # COMMENT "Creating macOS bundle wrapper script ${WRAPPER}" + VERBATIM + ) + unset (WRAPPER) + endif (MAC_BUNDLE) + ###################################################################### # Parse optional fourth argument "ANDROID_OK", see description above. ###################################################################### diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt index 30b105891..cbe04353a 100644 --- a/fluid/CMakeLists.txt +++ b/fluid/CMakeLists.txt @@ -49,9 +49,23 @@ endif (WIN32) if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL)) set (ICON_NAME fluid.icns) set (ICON_PATH "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Resources/${ICON_NAME}") - add_executable(fluid MACOSX_BUNDLE ${CPPFILES} ${ICON_PATH}) + add_executable (fluid MACOSX_BUNDLE ${CPPFILES} ${ICON_PATH}) + + # create macOS bundle wrapper script + + set (WRAPPER "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/fluid") + add_custom_command ( + TARGET fluid POST_BUILD + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../CMake/macOS-bundle-wrapper.in ${WRAPPER} + COMMAND chmod u+x,g+x,o+x ${WRAPPER} + BYPRODUCTS ${WRAPPER} + # COMMENT "Creating macOS bundle wrapper script ${WRAPPER}" + VERBATIM + ) + unset (WRAPPER) + else () - add_executable(fluid WIN32 ${CPPFILES}) + add_executable (fluid WIN32 ${CPPFILES}) endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL)) target_link_libraries(fluid fltk fltk_images fltk_forms) |
