diff --git a/.github/workflows/macos.yaml b/.github/workflows/macos.yaml index 62e79945e..b3d7eef72 100644 --- a/.github/workflows/macos.yaml +++ b/.github/workflows/macos.yaml @@ -1,38 +1,41 @@ name: macos -on: [push, pull_request] +on: + push: + branches: + - 'main' + pull_request: + branches: + - '*' jobs: - macos-build: - runs-on: ${{ matrix.macos-version }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - macos-version: - - 'macos-latest' + os: + - macos-13 + - macos-latest steps: - name: Sync repository uses: actions/checkout@v2 - - name: Cache Qt - id: cache-qt - uses: actions/cache@v1 # not v2! - with: - path: '${{ github.workspace }}/qt_installation/' - key: ${{ runner.os }}-QtCache + - name: Prepare Homebrew and Install Dependencies + run: | + rm -rf /usr/local/var/homebrew/locks + brew cleanup -s + brew update + brew install mosquitto zeromq qt@5 - - name: Install Qt - uses: jurplel/install-qt-action@v2.13.0 - with: - version: '5.15.2' - host: 'mac' - dir: '${{ github.workspace }}/qt_installation/' - cached: ${{ steps.cache-qt.outputs.cache-hit }} + - name: Build PlotJuggler + run: | + export CMAKE_PREFIX_PATH=$(brew --prefix qt@5):$(brew --prefix zeromq) + export LDFLAGS="-L/usr/local/opt/zeromq/lib" + export CPPFLAGS="-I/usr/local/opt/zeromq/include" + export LIBRARY_PATH=/usr/local/opt/zeromq/lib + export CPATH=/usr/local/opt/zeromq/include - - name: Build Plotjuggler - shell: pwsh - run: > - cmake -B build -DCMAKE_INSTALL_PREFIX=install PlotJuggler; + cmake -B build -DCMAKE_INSTALL_PREFIX=install PlotJuggler cmake --build build --target install diff --git a/COMPILE.md b/COMPILE.md index fbae2d4e0..b75c79e05 100644 --- a/COMPILE.md +++ b/COMPILE.md @@ -90,11 +90,13 @@ On Mac, the dependencies can be installed using [brew](https://brew.sh/) with th brew install cmake qt@5 protobuf mosquitto zeromq zstd ``` -If a newer version of qt is installed, you may need to temporarily link to qt5 +If you have multiple versions of Qt installed (e.g., `qt` and `qt@5`), you may need to explicitly link `qt@5` to ensure it is found by CMake. Use the following commands: ```shell -brew link qt@5 --override -# brew link qt --override # Run once you are done building to restore the original linking +brew link qt@5 --overwrite +#In case needed and still qt@5 was not found by cmake you can do: +brew unlink qt@5 && brew link --force qt@5 +# brew link qt --overwrite # Run once you are done building to restore the original linking ``` Add CMake into your env-vars to be detected by cmake @@ -118,7 +120,7 @@ export LDFLAGS="$QT_HOME/lib" Clone the repository into **~/plotjuggler_ws**: ```shell -git clone https://github.com/facontidavide/PlotJuggler.git ~/plotjuggler_ws/src/PlotJuggler +git clone https://github.com/facontidavid/PlotJuggler.git ~/plotjuggler_ws/src/PlotJuggler cd ~/plotjuggler_ws ``` diff --git a/installer/io.plotjuggler.application/meta/installscript.qs b/installer/io.plotjuggler.application/meta/installscript.qs index 4605ae660..92312825a 100644 --- a/installer/io.plotjuggler.application/meta/installscript.qs +++ b/installer/io.plotjuggler.application/meta/installscript.qs @@ -101,4 +101,5 @@ Component.prototype.componentSelectionPageEntered = function() if (installer.fileExists(dir) && installer.fileExists(dir + "/maintenancetool.exe")) { installer.execute(dir + "/maintenancetool.exe", ["purge", "-c"]); } -} \ No newline at end of file +} + diff --git a/installer/io.plotjuggler.application/meta/targetwidget.ui b/installer/io.plotjuggler.application/meta/targetwidget.ui index 623733204..ec53833a1 100644 --- a/installer/io.plotjuggler.application/meta/targetwidget.ui +++ b/installer/io.plotjuggler.application/meta/targetwidget.ui @@ -110,4 +110,5 @@ - \ No newline at end of file + + diff --git a/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt b/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt index d7622ea98..0a2040d29 100644 --- a/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt +++ b/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt @@ -10,24 +10,24 @@ endif() find_package(ZeroMQ QUIET) if(ZeroMQ_FOUND) - message(STATUS "[ZeroMQ] found") + # message(STATUS "[ZeroMQ] found") - add_definitions(${QT_DEFINITIONS}) - add_definitions(-DQT_PLUGIN) + # add_definitions(${QT_DEFINITIONS}) + # add_definitions(-DQT_PLUGIN) - QT5_WRAP_UI ( UI_SRC datastream_zmq.ui ) + # QT5_WRAP_UI ( UI_SRC datastream_zmq.ui ) - add_library(DataStreamZMQ SHARED datastream_zmq.cpp ${UI_SRC} ) + # add_library(DataStreamZMQ SHARED datastream_zmq.cpp ${UI_SRC} ) - target_link_libraries(DataStreamZMQ ${Qt5Widgets_LIBRARIES} plotjuggler_base) + # target_link_libraries(DataStreamZMQ ${Qt5Widgets_LIBRARIES} plotjuggler_base) - if(BUILDING_WITH_VCPKG OR BUILDING_WITH_CONAN) - target_link_libraries(DataStreamZMQ libzmq-static) - else() - target_link_libraries(DataStreamZMQ ${ZeroMQ_LIBRARIES}) - endif() + # if(BUILDING_WITH_VCPKG OR BUILDING_WITH_CONAN) + # target_link_libraries(DataStreamZMQ libzmq-static) + # else() + # target_link_libraries(DataStreamZMQ ${ZeroMQ_LIBRARIES}) + # endif() - install(TARGETS DataStreamZMQ DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} ) + # install(TARGETS DataStreamZMQ DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} ) else() message("[ZeroMQ] not found. Skipping plugin DataStreamZMQ.") endif() diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.h b/plotjuggler_plugins/ParserProtobuf/error_collectors.h index f70a881f5..4f1cf826c 100644 --- a/plotjuggler_plugins/ParserProtobuf/error_collectors.h +++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.h @@ -10,10 +10,10 @@ class IoErrorCollector : public google::protobuf::io::ErrorCollector { public: void AddError(int line, google::protobuf::io::ColumnNumber column, - const std::string& message) override; + const std::string& message); void AddWarning(int line, google::protobuf::io::ColumnNumber column, - const std::string& message) override; + const std::string& message); const QStringList& errors() { @@ -27,11 +27,9 @@ class IoErrorCollector : public google::protobuf::io::ErrorCollector class FileErrorCollector : public google::protobuf::compiler::MultiFileErrorCollector { public: - void AddError(const std::string& filename, int line, int, - const std::string& message) override; + void AddError(const std::string& filename, int line, int, const std::string& message); - void AddWarning(const std::string& filename, int line, int, - const std::string& message) override; + void AddWarning(const std::string& filename, int line, int, const std::string& message); const QStringList& errors() {