Skip to content
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

CMake: Update Deployment #11341

Merged
merged 1 commit into from
Apr 15, 2024
Merged

CMake: Update Deployment #11341

merged 1 commit into from
Apr 15, 2024

Conversation

HTRamsey
Copy link
Collaborator

@HTRamsey HTRamsey commented Apr 15, 2024

This has some CMake and Android CI fixes including adjustments to multiabi builds, macos deployment settings, and compilation definitions. Adds back Android caching for now. Somehow revealed a small bug in QGCTileCacheWorker.cpp

@HTRamsey
Copy link
Collaborator Author

@DonLakeFlyer Let me know if any of the extra macos properties made any differences

@HTRamsey HTRamsey requested a review from DonLakeFlyer April 15, 2024 17:46
@DonLakeFlyer
Copy link
Contributor

Let me know if any of the extra macos properties made any differences

Not sure what you want me to look at for this?

@@ -128,37 +143,24 @@ jobs:
env:
GST_VERSION: 1.18.5
run: |
wget --quiet https://gstreamer.freedesktop.org/data/pkg/android/${GST_VERSION}/gstreamer-1.0-android-universal-${GST_VERSION}.tar.xz
wget https://gstreamer.freedesktop.org/data/pkg/android/${GST_VERSION}/gstreamer-1.0-android-universal-${GST_VERSION}.tar.xz
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How come removal of quiet. Without this it makes lookout the the raw logs really tough with a massive amount of wget logs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had an issue at one point where it wasn't downloading correctly and I couldn't tell but I can put it back.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be better without it. It ends up dumping page after page of downloading progress.

MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_COPYRIGHT "Copyright (c) 2018 QGroundControl. All rights reserved."
MACOSX_BUNDLE_GUI_IDENTIFIER "io.mavlink.qgroundcontrol"
MACOSX_BUNDLE_ICON_FILE "${CMAKE_SOURCE_DIR}/resources/icons/macx.icns"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these the additions you are talking?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, they were taken from here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, nice. That should get it closer. It's still going to have problems with the streamer framework though. There will be extra futzing needed that macdeployqt doesn't do.

@@ -77,6 +77,14 @@ endif()

target_compile_definitions(comm PUBLIC QGC_ENABLE_BLUETOOTH)

if(NOT EXISTS ${CMAKE_SOURCE_DIR}/libs/mavlink/include/mavlink/v2.0/ardupilotmega)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this for? In general QGC doesn't use ardupilotmega dialect. It uses "all" dialect.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know to be honest. It was in the qmake stuff

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can get rid of it

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I remove its usage in the code too?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you point me at that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a PX4 one as well to make an ArduPilot only build. It also reduces some of the complexity in the UI since it's simpler to support a single firmware type.

Copy link
Contributor

@DonLakeFlyer DonLakeFlyer Apr 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So two things:

  • As I said NO_ARDUPILOT_DIALECT is used to compile out all ArduPilot specific code. It shouldn't really have "DIALECT" in the name, which confuses things with mavlink dialects. It really should be NO_ARDUPILOT_SUPPORT.
  • MAV_AUTOPILOT_ARDUPILOTMEGA is a firmware type from the mavlink spec: MAV_AUTOPILOT_ARDUPILOTMEGA. Is to determine what firmware type the vehicle is running

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the past QGC used to use the ArduPilot mavlink dialect to build against instead of common. That's because at that time that dialect was a superset of what Ardupilot and PX4 used. So it made thing in QGC be able to talk mavlink with both firmwares. Also ages ago I decided to stop supporting Ardupilot specific mavlink stuff and just focus on generic across the board support because it was too much of a pain to implement things multiple ways. From the mavlink spec side this has been cleaned up such that the "all" dialect is now the one that all firmwares support. Hence the whole "DIALECT" aspect of "NO_ARDUPILOT_DIALECT" no longer makes any sense. Whereas in the past it made more sense.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait then why should we get rid of the NO_ARDUPILOT_DIALECT compile definition? Or are you referring the check if it exists? Like it should be a cmake option instead of checking if the file exists?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should get rid of this check:

if(NOT EXISTS ${CMAKE_SOURCE_DIR}/libs/mavlink/include/mavlink/v2.0/ardupilotmega)
   target_compile_definitions(${PROJECT_NAME} PUBLIC NO_ARDUPILOT_DIALECT) # TODO: Make this QGC_NO_ARDUPILOT_DIALECT
endif()

You shouldn't get rid of NO_ARDUPILOT_DIALECT.

@HTRamsey HTRamsey merged commit d5ac011 into mavlink:master Apr 15, 2024
8 checks passed
@HTRamsey HTRamsey deleted the dev-deploy branch April 15, 2024 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants