Skip to content

Commit

Permalink
fix insufficient sh permissions (#65)
Browse files Browse the repository at this point in the history
Origin issue: fzyzcjy/flutter_rust_bridge#1840
Origin pr: fzyzcjy/flutter_rust_bridge#1842

Simple problem description: if you create a new flutter_rust project in
windows, the sh script is automatically created, but the executable
permissions cannot be set. When moving this project to macOS and
executing `flutter build ios` to build ipa files the process crashes due
to insufficient sh script permissions.

This permission problem can be circumvented by `sh script.sh` rather
than `script.sh`

As verified by Github Action's macOS Runner, the modified cargokit works
fine for building ipa apps using the flutter_rust project created on
windows.

[Action
Link](https://github.com/canxin121/new_app_test/actions/runs/8466294309)
  • Loading branch information
canxin121 authored Apr 3, 2024
1 parent 97668e9 commit 969c49a
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
2 changes: 1 addition & 1 deletion build_pod.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ do
fi
done

"$BASEDIR/run_build_tool.sh" build-pod "$@"
sh "$BASEDIR/run_build_tool.sh" build-pod "$@"

# Make a symlink from built framework to phony file, which will be used as input to
# build script. This should force rebuild (podspec currently doesn't support alwaysOutOfDate
Expand Down
4 changes: 3 additions & 1 deletion cmake/cargokit.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ function(apply_cargokit target manifest_dir lib_name any_symbol_name)
else()
set(SCRIPT_EXTENSION ".sh")
set(IMPORT_LIB_EXTENSION "")
execute_process(COMMAND chmod +x "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}")
endif()

# Using generators in custom command is only supported in CMake 3.20+
Expand All @@ -75,6 +76,7 @@ function(apply_cargokit target manifest_dir lib_name any_symbol_name)
)
endif()


set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/_phony_" PROPERTIES SYMBOLIC TRUE)

if (TARGET ${target})
Expand All @@ -94,4 +96,4 @@ function(apply_cargokit target manifest_dir lib_name any_symbol_name)
# Allow adding the output library to plugin bundled libraries
set("${target}_cargokit_lib" ${OUTPUT_LIB} PARENT_SCOPE)

endfunction()
endfunction()
8 changes: 7 additions & 1 deletion gradle/plugin.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,13 @@ abstract class CargoKitBuildTask extends DefaultTask {
def manifestDir = Paths.get(project.buildscript.sourceFile.parent, project.cargokit.manifestDir)

def rootProjectDir = project.rootProject.projectDir


if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
project.exec {
commandLine 'chmod', '+x', path
}
}

project.exec {
executable path
args "build-gradle"
Expand Down

0 comments on commit 969c49a

Please sign in to comment.