-
Notifications
You must be signed in to change notification settings - Fork 127
Feature/fix android windows builds #346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
For downloading external third party libraries, our cmake system runs a child process cmake command to configure/build external libraries. For Android/Windows combination, a specific cmake configuration is used using a toolchain from the android ndk and it's own distinct make program. We want to ensure that these values are passed to the child cmake too.
-accepteula works just on Windows. Linux/Mac runners are hanging indefinitely when this flag is supplied. Took it out from gradle and instead added a "dummy" step in workflow to just accept the license.
❌ Integration test FAILEDRequested by @DellaBitta on commit b0fe3b7 |
DellaBitta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved, but also please check my comments.
|
|
||
| execute_process( | ||
| COMMAND ${ENV_COMMAND} cmake --build . -- ${cmake_build_args} | ||
| COMMAND ${ENV_COMMAND} ${CMAKE_COMMAND} --build . -- ${cmake_build_args} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should there really be a space between -- and ${cmake_build_args} ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm just not clear on why we use the "--" at all - typically that's how you separate sets of arguments, for example the arguments afterwards are sent to a subprocess, or are considered a list of filenames even if they start with a "-". But why is that necessary here?
(For example, if you have a filename called "-q", you can't normally run "grep hello -q" because grep will interpret "-q" as an argument. So you must do "grep hello -- -q" which tells grep that everything following the "--" is a filename. But I'm still not sure why that's required for this cmake call.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The more you know.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. I didn't spot this and am not sure why this exists. I substituted hard coded cmake to using a variable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's with the "--" though?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only change that I made is "cmake" converted to "${CMAKE_COMMAND}". Will investigate why the "-- ${cmake_build_args}" exists in another PR as I don't want to introduce new changes for this Windows/Android task.
| "android": { | ||
| "matrix": { | ||
| "os": ["ubuntu-latest", "macos-latest"], | ||
| "os": ["ubuntu-latest", "macos-latest", "windows-latest"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Noticed errors in Build logs complaining of CMakeLists not specifying minimum version.
|
Integration tests builds are also fixed now. The only error was with the Storage test which is unrelated to issues with building on Windows for Android. |
Fixes a series of issues that were causing Windows Android builds to error out.
build_flatbuffers-accepteulathat accepts the license which is run in a dummy github workflow step. Just running with this fails exits the command with error code but we ignore that error.