mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-09 22:08:56 +08:00
[backport] macos ci fixes for v1.16 (#25672)
* ci: lockdown gcc v9 for macos Signed-off-by: Ramon Roche <mrpollo@gmail.com> * pxh: do not use variable sized array on the stack This is a compiler-specific extension * ci: macos build on older gcc Signed-off-by: Ramon Roche <mrpollo@gmail.com> --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Beat Küng <beat-kueng@gmx.net>
This commit is contained in:
@@ -16,7 +16,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-latest
|
||||
runs-on: macos-14
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
@@ -32,7 +32,8 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: setup
|
||||
run: ./Tools/setup/macos.sh; ./Tools/setup/macos.sh
|
||||
run: |
|
||||
./Tools/setup/macos.sh
|
||||
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_timestamp
|
||||
@@ -40,12 +41,14 @@ jobs:
|
||||
run: |
|
||||
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
|
||||
message("::set-output name=timestamp::${current_date}")
|
||||
|
||||
- name: ccache cache files
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: macos_${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: macos_${{matrix.config}}-ccache-
|
||||
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
|
||||
@@ -42,6 +42,8 @@ else
|
||||
echo "Installing PX4 general dependencies (homebrew px4-dev)"
|
||||
brew tap PX4/px4
|
||||
brew install px4-dev
|
||||
# lock down gcc to v9 for v1.16 branch
|
||||
brew install gcc-arm-none-eabi
|
||||
brew install ncurses
|
||||
brew install python-tk
|
||||
fi
|
||||
|
||||
@@ -101,7 +101,7 @@ int Pxh::process_line(const std::string &line, bool silently_fail)
|
||||
|
||||
// Note that argv[argc] always needs to be a nullptr.
|
||||
// Therefore add one more entry.
|
||||
const char *arg[words.size() + 1];
|
||||
char **arg = new char *[words.size() + 1];
|
||||
|
||||
for (unsigned i = 0; i < words.size(); ++i) {
|
||||
arg[i] = (char *)words[i].c_str();
|
||||
@@ -110,7 +110,7 @@ int Pxh::process_line(const std::string &line, bool silently_fail)
|
||||
// Explicitly set this nullptr.
|
||||
arg[words.size()] = nullptr;
|
||||
|
||||
int retval = _apps[command](words.size(), (char **)arg);
|
||||
int retval = _apps[command](words.size(), arg);
|
||||
|
||||
if (retval) {
|
||||
if (!silently_fail) {
|
||||
@@ -118,6 +118,8 @@ int Pxh::process_line(const std::string &line, bool silently_fail)
|
||||
}
|
||||
}
|
||||
|
||||
delete[] arg;
|
||||
|
||||
return retval;
|
||||
|
||||
} else if (command == "help") {
|
||||
|
||||
Reference in New Issue
Block a user