Build Instructions using macOS 14.1 (Sonoma)¶
Install Xcode command line tools:¶
- Open
Terminal - Run this command:
Install "brew" (https://brew.sh):¶
- Run command in
Terminal:
Install newer Python version:¶
- Run command in
Terminal:
Install Qt 5:¶
Once Qt has been installed properly, you should set a couple environment variables (please modify according to the real installation paths):
Please note that QT_PLUGIN_PATH is required to be able to run Companion from your build directory without having to build a DMG package first.
Install ARM toolchain¶
Download and install ARM GCC from here (installs in /Applications/ARM/): - https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-darwin-x86_64-arm-none-eabi.pkg
Please note that this installation takes care of allowing the binaries to be run and "un-quarantines" them. If you choose to install the bz2 archive to another location, you will have to take care of that yourself (see https://disable-gatekeeper.github.io/ for more details).
Install various dependencies¶
- With
brewin aTerminal:
If you plan to run the standalone simulator for debuging
- Install Python dependencies:
Compile EdgeTX¶
-
Checkout code
-
Switch into the source directory:
-
Create build directory and configure build using
cmake:
Please note that the variables CMAKE_PREFIX_PATH, ARM_TOOLCHAIN_DIR and PYTHON_EXECUTABLE must be specified additionally to what is described in the other compilation HowTos: - CMAKE_PREFIX_PATH: this must point to your Qt installation path. - ARM_TOOLCHAIN_DIR: this must point to where ARM GCC has been installed (and MUST contain / at the end). - PYTHON_EXECUTABLE: this allows overriding Python installed as part of MacOS.
- Then build as usual (
-j4to use 4 CPU cores):
Notes on compiling simulator plug-ins¶
When compiling simulator plug-ins (using make libsimulator with the target properly configured), the product of this compilation will be a .dylib stored in your build directory. If you want the Companion or Simulator Apps to be able to use it, you will need to copy it manually into the respective directories. Here is how it show look like with a couple plug-ins copied:
% ls -l companion.app/Contents/MacOS/
total 411976
-rwxr-xr-x 1 etx staff 27908864 Jan 7 11:48 companion
-rwxr-xr-x 1 etx staff 57089384 Jan 7 11:22 libedgetx-nv14-simulator.dylib
-rwxr-xr-x 1 etx staff 61167768 Jan 7 08:44 libedgetx-tx16s-simulator.dylib
-rwxr-xr-x 1 etx staff 60327272 Jan 5 12:48 libedgetx-x10express-simulator.dylib
-rwxr-xr-x 1 etx staff 1849768 Dec 26 08:56 libedgetx-x9d+-simulator.dylib
-rwxr-xr-x 1 etx staff 1881224 Dec 31 16:44 libedgetx-zorro-simulator.dylib
% ls -l simulator.app/Contents/MacOS/
total 392616
-rwxr-xr-x 1 etx staff 57089384 Jan 7 11:22 libedgetx-nv14-simulator.dylib
-rwxr-xr-x 1 etx staff 61168056 Jan 5 11:52 libedgetx-tx16s-simulator.dylib
-rwxr-xr-x 1 etx staff 60327272 Jan 5 12:34 libedgetx-x10express-simulator.dylib
-rwxr-xr-x 1 etx staff 21732144 Jan 7 11:48 simulator
Notes on possible error while trying to run build-companion.sh¶
If you encounter this error:
CPack: - Install project: EdgeTX []
CMake Error at /opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/BundleUtilities.cmake:458 (message):
otool -l failed: 1
error:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic:
can't open file: @rpath/libsharpyuv.0.dylib (No such file or directory)
Call Stack (most recent call first):
/opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/BundleUtilities.cmake:527 (get_item_rpaths)
/opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/BundleUtilities.cmake:614 (set_bundle_key_values)
/opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/BundleUtilities.cmake:933 (get_bundle_keys)
/Users/jean-christophedreyfus/Documents/edgetx/build/native/companion/src/cmake_install.cmake:180 (fixup_bundle)
/Users/jean-christophedreyfus/Documents/edgetx/build/native/cmake_install.cmake:43 (include)
CPack Error: Error when generating package: companion
make: *** [package] Error 1
It can be fixed by entering the following command at terminal:
install_name_tool -change "@rpath/libsharpyuv.0.dylib" "$(brew --prefix)/lib/libsharpyuv.0.dylib" "$(brew --prefix)/lib/libwebp.7.dylib" && codesign --force -s - "$(brew --prefix)/lib/libwebp.7.dylib"