From fff4018d3670606a4ca7dfe2b9b6966467e951a9 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:01:02 +0100 Subject: [PATCH 01/12] Ignore *.iml files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c57bddde..2f15451b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ bin*/* *.swp Thumbs.db .idea/* +*.iml cmake-build-debug cmake-build-release From c9e41011d94268b4f595d77401dcbd178e87789e Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:01:17 +0100 Subject: [PATCH 02/12] Remove outdated config files --- .travis.yml | 51 --------------------------------------------------- shippable.yml | 46 ---------------------------------------------- 2 files changed, 97 deletions(-) delete mode 100644 .travis.yml delete mode 100644 shippable.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7c6d1534..00000000 --- a/.travis.yml +++ /dev/null @@ -1,51 +0,0 @@ -language: cpp - - -jobs: - include: - - os: linux - dist: bionic - compiler: clang - - os: linux - dist: bionic - compiler: gcc - - os: linux - dist: focal - compiler: clang - - os: linux - dist: focal - compiler: gcc - - os: osx - osx_image: xcode11.3 - compiler: clang - - os: osx - osx_image: xcode11.3 - compiler: gcc - - -addons: - apt: - packages: - - cmake - - qt5-default - - libqt5opengl5-dev - - libgl1-mesa-dev - - libglu1-mesa-dev - - libprotobuf-dev - - protobuf-compiler - - libode-dev - - libboost-dev - homebrew: - taps: robotology/formulae - packages: - - qt5 - - protobuf - - robotology/formulae/ode - -script: - # grsim - - cd $TRAVIS_BUILD_DIR - - mkdir build && cd build - - cmake .. - - make - - sudo make install diff --git a/shippable.yml b/shippable.yml deleted file mode 100644 index 4aae1497..00000000 --- a/shippable.yml +++ /dev/null @@ -1,46 +0,0 @@ -language: none -compiler: - - gcc - -env: - global: - - GRSIM_WS=$HOME/grsim_ws - matrix: - - UBUNTU_DISTRO="trusty" - - UBUNTU_DISTRO="xenial" - -build: - pre_ci_boot: - image_name: ubuntu - image_tag: ${UBUNTU_DISTRO} - pull: true - - ci: - - env # debug - # OS level dependencies - - sudo apt-get update -qq - # libboost-dev is for vartypes - - sudo apt-get install -qq -y git build-essential cmake libqt4-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev - - mkdir -p $GRSIM_WS - - ln -s $SHIPPABLE_BUILD_DIR $GRSIM_WS/grSim - # Compile vartypes - - cd $GRSIM_WS - - git clone https://github.com/szi/vartypes.git - - cd vartypes - - mkdir build && cd build - - cmake .. - - make - - sudo make install - # compile grSim - - cd $GRSIM_WS/grSim - - mkdir build && cd build - - cmake .. - - make - - sudo make install - -integrations: - notifications: - - integrationName: email - type: email - on_success: change - on_failure: always From 85d6205c84b0809c0a80db58c58c64fdadf38767 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:01:32 +0100 Subject: [PATCH 03/12] Move renovate.json to .github --- .github/renovate.json | 9 +++++++++ renovate.json | 5 ----- 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 .github/renovate.json delete mode 100644 renovate.json diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 00000000..ac4a67c9 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,9 @@ +{ + "extends": [ + "config:base", + "schedule:yearly" + ], + "labels": [ + "dependencies" + ] +} diff --git a/renovate.json b/renovate.json deleted file mode 100644 index f45d8f11..00000000 --- a/renovate.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": [ - "config:base" - ] -} From 27cf911d675bf90c8efa3f33e79db391a971f742 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:03:47 +0100 Subject: [PATCH 04/12] Update OS versions in GitHub Actions pipelines --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6bfe07ed..546eea3d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ ubuntu-18.04, ubuntu-20.04 ] + os: [ ubuntu-20.04, ubuntu-22.04 ] steps: - uses: actions/checkout@v2 - name: "Update dependencies" @@ -24,7 +24,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ macos-10.15, macos-11 ] + os: [ macos-11, macos-12, macos-13 ] steps: - uses: actions/checkout@v2 - name: "Install dependencies" From 23282326af36bc5df127a5bdf3fb2320ff4fec72 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:04:44 +0100 Subject: [PATCH 05/12] Update GitHub Actions checkout to v4 --- .github/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 546eea3d..8dc0ae6c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -12,7 +12,7 @@ jobs: matrix: os: [ ubuntu-20.04, ubuntu-22.04 ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: "Update dependencies" run: sudo apt-get update - name: "Install dependencies" @@ -26,7 +26,7 @@ jobs: matrix: os: [ macos-11, macos-12, macos-13 ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: "Install dependencies" run: brew tap robotology/formulae && brew install qt5 protobuf robotology/formulae/ode - name: "Build" @@ -37,7 +37,7 @@ jobs: build-windows: runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: make build directory run: mkdir '${{ github.workspace }}/build/' From 2e5f91f8189d418e27d6949541f16d1dc553c51a Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:26:12 +0100 Subject: [PATCH 06/12] Switch to qtbase5-dev package, qt5-default is not available with 22.04 --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8dc0ae6c..7d7195e2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,7 +16,7 @@ jobs: - name: "Update dependencies" run: sudo apt-get update - name: "Install dependencies" - run: sudo apt-get install -y build-essential cmake pkg-config qt5-default libqt5opengl5-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev + run: sudo apt-get install -y build-essential cmake pkg-config qtbase5-dev libqt5opengl5-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev - name: "Build" run: mkdir build && cd build && cmake .. && make From 5775a6fdbb707ff445e94a9b2735660f6f5a89e3 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:26:46 +0100 Subject: [PATCH 07/12] Run make in ci-pipeline directly --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7d7195e2..6b3b51ed 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -18,7 +18,7 @@ jobs: - name: "Install dependencies" run: sudo apt-get install -y build-essential cmake pkg-config qtbase5-dev libqt5opengl5-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev - name: "Build" - run: mkdir build && cd build && cmake .. && make + run: make build-macos: runs-on: ${{ matrix.os }} @@ -30,7 +30,7 @@ jobs: - name: "Install dependencies" run: brew tap robotology/formulae && brew install qt5 protobuf robotology/formulae/ode - name: "Build" - run: mkdir build && cd build && cmake .. && make + run: make env: Qt5_DIR: /usr/local/opt/qt5/lib/cmake/Qt5 From 51c9caba0a13b48ecf6822fdc33cb65b3e1b947d Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:27:13 +0100 Subject: [PATCH 08/12] Run all build jobs for all OSes and versions, regardless of errors --- .github/workflows/build.yaml | 5 ++++- INSTALL.md | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6b3b51ed..4da25855 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,12 +3,13 @@ on: push: branches: - master - - windows-github-actions pull_request: jobs: build-linux: runs-on: ${{ matrix.os }} + continue-on-error: true strategy: + fail-fast: false matrix: os: [ ubuntu-20.04, ubuntu-22.04 ] steps: @@ -22,7 +23,9 @@ jobs: build-macos: runs-on: ${{ matrix.os }} + continue-on-error: true strategy: + fail-fast: false matrix: os: [ macos-11, macos-12, macos-13 ] steps: diff --git a/INSTALL.md b/INSTALL.md index 47957903..a7b35aff 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -56,11 +56,11 @@ $ sudo pacman -S base-devel boost hicolor-icon-theme \ mesa ode protobuf qt5-base cmake git ``` -#### Debian +#### Ubuntu / Debian For Debian, or derivative ``` -$ sudo apt install git build-essential cmake pkg-config qt5-default \ +sudo apt install git build-essential cmake pkg-config qtbase5-dev \ libqt5opengl5-dev libgl1-mesa-dev libglu1-mesa-dev \ libprotobuf-dev protobuf-compiler libode-dev libboost-dev ``` From 31ba50472218c8acd1eb9b700cb7aeb48ccdbc56 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:39:10 +0100 Subject: [PATCH 09/12] Update vcpkg version and GH action version --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4da25855..faa9fb52 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -46,10 +46,10 @@ jobs: run: mkdir '${{ github.workspace }}/build/' - name: Install dependencies # saves / restores cache to avoid rebuilding dependencies - uses: lukka/run-vcpkg@v6 + uses: lukka/run-vcpkg@v11 with: setupOnly: false - vcpkgGitCommitId: 94ce0dab56f4d8ba6bd631ba59ed682b02d45c46 + vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 vcpkgDirectory: c:/vcpkg # folder must reside in c:\ otherwise qt wont install due to long path errors vcpkgTriplet: x64-windows vcpkgArguments: qt5 ode protobuf From 67ecf5d21fbbd47e7dfebe02cbbf2adabe62e49b Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 17:44:48 +0100 Subject: [PATCH 10/12] Update macos build script --- .github/workflows/build.yaml | 4 +--- INSTALL.md | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index faa9fb52..e91b5f65 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -31,11 +31,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: "Install dependencies" - run: brew tap robotology/formulae && brew install qt5 protobuf robotology/formulae/ode + run: brew tap robotology/formulae && brew install cmake pkg-config qt@5 protobuf@21 robotology/formulae/ode - name: "Build" run: make - env: - Qt5_DIR: /usr/local/opt/qt5/lib/cmake/Qt5 build-windows: runs-on: windows-latest diff --git a/INSTALL.md b/INSTALL.md index a7b35aff..f814175a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -79,8 +79,8 @@ brew install cmake brew install pkg-config brew tap robotology/formulae brew install robotology/formulae/ode -brew install qt -brew install protobuf +brew install qt@5 +brew install protobuf@21 ``` If you run into build issues, you may need to run this first: From bffe838ddb8b199650b0bc0461f6b5fc7a47b4c0 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 18:00:07 +0100 Subject: [PATCH 11/12] Update windows build script --- .github/workflows/build.yaml | 15 ++++----------- vcpkg.json | 9 +++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 vcpkg.json diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e91b5f65..b3d2bb85 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,20 +40,13 @@ jobs: steps: - uses: actions/checkout@v4 - - name: make build directory - run: mkdir '${{ github.workspace }}/build/' - - name: Install dependencies # saves / restores cache to avoid rebuilding dependencies uses: lukka/run-vcpkg@v11 with: - setupOnly: false vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 vcpkgDirectory: c:/vcpkg # folder must reside in c:\ otherwise qt wont install due to long path errors - vcpkgTriplet: x64-windows - vcpkgArguments: qt5 ode protobuf - - name: Run CMake and build - working-directory: ${{ github.workspace }}/build/ - run: | - cmake -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake .. - cmake --build . --config Release + - name: Run CMake and run vcpkg to build packages + uses: lukka/run-cmake@v10 + with: + buildPresetAdditionalArgs: "['--config Release']" diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 00000000..d82168ff --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,9 @@ +{ + "name": "grsim", + "version-string": "0.0.1", + "dependencies": [ + "qt5", + "ode", + "protobuf" + ] +} \ No newline at end of file From 8e1d30c06232a1ba4a82666ce9890dcc9e4ab266 Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Wed, 3 Jan 2024 18:51:28 +0100 Subject: [PATCH 12/12] Add CMakePresets.json --- .github/workflows/build.yaml | 2 ++ CMakePresets.json | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 CMakePresets.json diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b3d2bb85..3b214994 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -46,7 +46,9 @@ jobs: vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 vcpkgDirectory: c:/vcpkg # folder must reside in c:\ otherwise qt wont install due to long path errors + - name: Run CMake and run vcpkg to build packages uses: lukka/run-cmake@v10 with: + configurePreset: "windows-default" buildPresetAdditionalArgs: "['--config Release']" diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 00000000..019632d5 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,19 @@ +{ + "version": 6, + "configurePresets": [ + { + "name": "windows-default", + "displayName": "Windows x64 Release", + "generator": "Ninja", + "binaryDir": "${sourceDir}/out/build/${presetName}", + "architecture": { + "value": "x64", + "strategy": "external" + }, + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}" + } + } + ] +} \ No newline at end of file