From 1b3a583399daccec59f990735cc3617f63175851 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 14:37:21 +1000 Subject: [PATCH 01/16] Add a first GitHub Actions job. --- .github/workflows/build.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..04bfd45a2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,13 @@ +name: cesium-native +on: [push, pr] +jobs: + QuickChecks: + name: "Quick Checks" + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Check source formatting + run: | + npm install + npm run format -- --dry-run -Werror From 40e3fcc059342548f4778bf600e04aa644f14484 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 14:47:55 +1000 Subject: [PATCH 02/16] pr -> pull_request --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 04bfd45a2..8f84cf01e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,5 @@ name: cesium-native -on: [push, pr] +on: [push, pull_request] jobs: QuickChecks: name: "Quick Checks" From e3f9efdfd70d58ee6ee7c873159fb5662d813c59 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:06:05 +1000 Subject: [PATCH 03/16] Add VS2019 build. --- .github/workflows/build.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8f84cf01e..fab489aca 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,3 +11,37 @@ jobs: run: | npm install npm run format -- --dry-run -Werror + VS2019: + name: "Windows + VS2019" + runs-on: windows-2019 + steps: + - name: Install Doxygen + run: | + choco install -y doxygen.install --version=1.9.2 + - name: Install nasm + run: | + choco install -y nasm + - name: Compile Debug Configuration + run: | + cmake -B build -S . + cmake --build build --config Debug --parallel 4 + - name: Test Debug Configuration + run: | + cd build + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake --build build --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build + ctest -V + - name: Generate Documentation + run: | + cmake --build build --config Debug --target cesium-native-docs + - name: Publish Documentation Artifact + if: ${{ success() }} + uses: actions/upload-artifact@v3 + with: + name: ReferenceDocumentation + path: build/doc/html From 394fed53da4c6cddf9beca861be82d249678398e Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:10:13 +1000 Subject: [PATCH 04/16] Old cmake version? --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fab489aca..691d7ad6d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,8 @@ jobs: choco install -y nasm - name: Compile Debug Configuration run: | + cmake --version + mkdir build cmake -B build -S . cmake --build build --config Debug --parallel 4 - name: Test Debug Configuration From ce2006308e083cc83d89901b3dd3dc83d934d18f Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:12:27 +1000 Subject: [PATCH 05/16] Checking out the code isn't automatic. --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 691d7ad6d..2197001b1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,6 +21,10 @@ jobs: - name: Install nasm run: | choco install -y nasm + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive - name: Compile Debug Configuration run: | cmake --version From 824e56b1e5ed81efd7a1556e6f93cfbf714e78f5 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:15:25 +1000 Subject: [PATCH 06/16] Creating the directory shouldn't be necessary. --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2197001b1..a71c33773 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,8 +27,6 @@ jobs: submodules: recursive - name: Compile Debug Configuration run: | - cmake --version - mkdir build cmake -B build -S . cmake --build build --config Debug --parallel 4 - name: Test Debug Configuration From 56b36494bfcb28f76b60908adc3c28438901e880 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:26:57 +1000 Subject: [PATCH 07/16] Separate doc step, add VS2022 and Linux builds. --- .github/workflows/build.yml | 109 +++++++++++++++++++++++++++++++++--- 1 file changed, 100 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a71c33773..624bf437f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,13 +11,56 @@ jobs: run: | npm install npm run format -- --dry-run -Werror + Documentation: + runs-on: ubuntu-latest + steps: + - name: Install Doxygen + run: | + sudo apt install -y doxygen + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Generate Documentation + run: | + cmake -B build -S . + cmake --build build --target cesium-native-docs + - name: Publish Documentation Artifact + if: ${{ success() }} + uses: actions/upload-artifact@v3 + with: + name: ReferenceDocumentation + path: build/doc/html VS2019: name: "Windows + VS2019" runs-on: windows-2019 steps: - - name: Install Doxygen + - name: Install nasm + run: | + choco install -y nasm + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build -S . + cmake --build build --config Debug --parallel 4 + - name: Test Debug Configuration run: | - choco install -y doxygen.install --version=1.9.2 + cd build + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake --build build --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build + ctest -V + VS2022: + name: "Windows + VS2022" + runs-on: windows-2022 + steps: - name: Install nasm run: | choco install -y nasm @@ -40,12 +83,60 @@ jobs: run: | cd build ctest -V - - name: Generate Documentation + LinuxGCC: + name: "Linux + GCC" + runs-on: ubuntu-latest + steps: + - name: Install nasm run: | - cmake --build build --config Debug --target cesium-native-docs - - name: Publish Documentation Artifact - if: ${{ success() }} - uses: actions/upload-artifact@v3 + sudo apt-get install nasm + - name: Check out repository code + uses: actions/checkout@v3 with: - name: ReferenceDocumentation - path: build/doc/html + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build-debug -S . -DCMAKE_BUILD_TYPE:STRING=Debug + cmake --build build-debug --parallel 4 + - name: Test Debug Configuration + run: | + cd build-debug + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake -B build-release -S . -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + cmake --build build-release --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build-release + ctest -V + LinuxClang: + name: "Linux + Clang" + runs-on: ubuntu-latest + env: + CC: clang-12 + CXX: clang++-12 + steps: + - name: Install nasm + run: | + sudo apt-get install nasm + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build-debug -S . -DCMAKE_BUILD_TYPE:STRING=Debug + cmake --build build-debug --parallel 4 + - name: Test Debug Configuration + run: | + cd build-debug + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake -B build-release -S . -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + cmake --build build-release --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build-release + ctest -V From aff2303e415d73dcc85f1efc8659883b0be303a1 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:31:25 +1000 Subject: [PATCH 08/16] Add macOS build. --- .github/workflows/build.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 624bf437f..2f8be5c87 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -140,3 +140,29 @@ jobs: run: | cd build-release ctest -V + macOS: + runs-on: macos-latest + steps: + - name: Install nasm + run: | + sudo apt-get install nasm + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build-debug -S . -DCMAKE_BUILD_TYPE:STRING=Debug + cmake --build build-debug --parallel 4 + - name: Test Debug Configuration + run: | + cd build-debug + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake -B build-release -S . -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + cmake --build build-release --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build-release + ctest -V From fd6a58543cd297d710a9b4bdf3263a754bafcade Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 15:36:49 +1000 Subject: [PATCH 09/16] Don't install nasm on macOS. --- .github/workflows/build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f8be5c87..3a58a4ee2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -143,9 +143,6 @@ jobs: macOS: runs-on: macos-latest steps: - - name: Install nasm - run: | - sudo apt-get install nasm - name: Check out repository code uses: actions/checkout@v3 with: From fcd8c41d134609901472f2b5f12f736b184fa7a3 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 16:01:59 +1000 Subject: [PATCH 10/16] Include Async++ with target_link_libraries_system. --- CesiumAsync/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CesiumAsync/CMakeLists.txt b/CesiumAsync/CMakeLists.txt index 00d235ffa..1007f5f5f 100644 --- a/CesiumAsync/CMakeLists.txt +++ b/CesiumAsync/CMakeLists.txt @@ -41,7 +41,6 @@ target_link_libraries(CesiumAsync PUBLIC CesiumUtility GSL - Async++ PRIVATE sqlite3 ) @@ -49,6 +48,7 @@ target_link_libraries(CesiumAsync # These libraries erroneously do NOT list their headers as `SYSTEM` headers target_link_libraries_system(CesiumAsync PUBLIC spdlog + Async++ ) install(TARGETS CesiumAsync From fdf5e36742273408a5a725a2da4c0cc4609d2bb8 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 16:09:11 +1000 Subject: [PATCH 11/16] Remove .travis.yml. --- .travis.yml | 67 ----------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 04bb2c857..000000000 --- a/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ -language: cpp -# Default scripts, which may be overridden by some jobs -before_script: - - mkdir -p build - - cd build - - cmake -DCMAKE_BUILD_TYPE:STRING=Debug .. -script: - - cmake --build . --config Debug - - ctest -V - - cmake --build . --config Debug --target cesium-native-docs -jobs: - include: - - name: Check Source Formatting - os: linux - dist: focal - git: - submodules: false - before_script: - script: - - npm install - - npm run format -- --dry-run -Werror - - name: Windows + VS2017 - os: windows - install: - - choco install doxygen.install --version=1.9.2 - - choco install nasm - before_script: - - mkdir -p build - - cd build - - cmake .. -A x64 - - name: Windows + VS2019 - os: windows - install: - - choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64" - - choco install doxygen.install --version=1.9.2 - - choco install nasm - - name: Linux + GCC - os: linux - dist: focal - install: - - # As of 2021-08-23, the server listed in the rabbitmq PPA has an expired certificate - - # and breaks our ability to update. We don't need it, so remove it. - - sudo rm /etc/apt/sources.list.d/rabbitmq.list - - sudo apt-get update - - sudo apt-get install cmake doxygen nasm - - name: Linux + Clang - os: linux - dist: focal - # We're using Clang 10 instead of the default (Clang 7) because of std::variant related failures - # on Clang 7, possibly related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90397 - install: - - # As of 2021-08-23, the server listed in the rabbitmq PPA has an expired certificate - - # and breaks our ability to update. We don't need it, so remove it. - - sudo rm /etc/apt/sources.list.d/rabbitmq.list - - sudo apt-get update - - sudo apt-get install clang-10 cmake doxygen nasm - env: - - CC=clang-10 - - CXX=clang++-10 - - name: macOS - os: osx - osx_image: xcode12 - script: - - cmake --build . --config Debug - - ctest -V - - # Doc build doesn't work on Mac (missing Doxygen). Let's just skip it. - - #cmake --build . --config Debug --target cesium-native-docs From d7a32f255124ab5c1438b91d2e2c01e058bf1005 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 16:54:25 +1000 Subject: [PATCH 12/16] Disable warning for async++. --- CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h b/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h index 72227957b..91dfb270c 100644 --- a/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h +++ b/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h @@ -2,7 +2,7 @@ #ifdef _MSC_VER #pragma warning(push) -#pragma warning(disable : 4458 4324) +#pragma warning(disable : 4458 4324 2220) #endif #ifndef _MSC_VER From f67776bacbe8d8c4dfd35e69916c0f3e2a310ac6 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 20 Sep 2023 17:21:24 +1000 Subject: [PATCH 13/16] Fix warning number. --- CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h b/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h index 91dfb270c..0629b71b3 100644 --- a/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h +++ b/CesiumAsync/include/CesiumAsync/Impl/cesium-async++.h @@ -2,7 +2,7 @@ #ifdef _MSC_VER #pragma warning(push) -#pragma warning(disable : 4458 4324 2220) +#pragma warning(disable : 4458 4324 4702) #endif #ifndef _MSC_VER From d431b44d7c31cab15b5f2324e0030968f13fd75a Mon Sep 17 00:00:00 2001 From: Janine Liu Date: Tue, 19 Sep 2023 12:26:37 -0400 Subject: [PATCH 14/16] Replace asserts with ifs --- .../PropertyAttributePropertyView.h | 32 ++++++++++++------- .../CesiumGltf/PropertyTablePropertyView.h | 30 ++++++++++------- .../CesiumGltf/PropertyTexturePropertyView.h | 32 ++++++++++++------- 3 files changed, 58 insertions(+), 36 deletions(-) diff --git a/CesiumGltf/include/CesiumGltf/PropertyAttributePropertyView.h b/CesiumGltf/include/CesiumGltf/PropertyAttributePropertyView.h index f62579f78..69a7689a3 100644 --- a/CesiumGltf/include/CesiumGltf/PropertyAttributePropertyView.h +++ b/CesiumGltf/include/CesiumGltf/PropertyAttributePropertyView.h @@ -150,16 +150,20 @@ class PropertyAttributePropertyView const ClassProperty& classProperty, int64_t size) noexcept : PropertyView(classProperty), _accessor{}, _size{0} { - // Don't override the status / size if something is wrong with the class - // property's definition. if (this->_status != PropertyAttributePropertyViewStatus::Valid) { + // Don't override the status / size if something is wrong with the class + // property's definition. return; } - assert( - classProperty.defaultProperty && - "Cannot construct a valid property view for an empty property with no " - "default value."); + if (!classProperty.defaultProperty) { + // This constructor should only be called if the class property *has* a + // default value. But in the case that it does not, this property view + // becomes invalid. + this->_status = + PropertyAttributePropertyViewStatus::ErrorNonexistentProperty; + return; + } this->_status = PropertyAttributePropertyViewStatus::EmptyPropertyWithDefault; @@ -302,16 +306,20 @@ class PropertyAttributePropertyView const ClassProperty& classProperty, int64_t size) noexcept : PropertyView(classProperty), _accessor{}, _size{0} { - // Don't override the status / size if something is wrong with the class - // property's definition. if (this->_status != PropertyAttributePropertyViewStatus::Valid) { + // Don't override the status / size if something is wrong with the class + // property's definition. return; } - assert( - classProperty.defaultProperty && - "Cannot construct a valid property view for an empty property with no " - "default value."); + if (!classProperty.defaultProperty) { + // This constructor should only be called if the class property *has* a + // default value. But in the case that it does not, this property view + // becomes invalid. + this->_status = + PropertyAttributePropertyViewStatus::ErrorNonexistentProperty; + return; + } this->_status = PropertyAttributePropertyViewStatus::EmptyPropertyWithDefault; diff --git a/CesiumGltf/include/CesiumGltf/PropertyTablePropertyView.h b/CesiumGltf/include/CesiumGltf/PropertyTablePropertyView.h index 3c28f2f0e..7369fc958 100644 --- a/CesiumGltf/include/CesiumGltf/PropertyTablePropertyView.h +++ b/CesiumGltf/include/CesiumGltf/PropertyTablePropertyView.h @@ -213,16 +213,19 @@ class PropertyTablePropertyView _stringOffsets{}, _stringOffsetType{PropertyComponentType::None}, _stringOffsetTypeSize{0} { - // Don't override the status / size if something is wrong with the class - // property's definition. if (this->_status != PropertyTablePropertyViewStatus::Valid) { + // Don't override the status / size if something is wrong with the class + // property's definition. return; } - assert( - classProperty.defaultProperty && - "Cannot construct a valid property view for an empty property with no " - "default value."); + if (!classProperty.defaultProperty) { + // This constructor should only be called if the class property *has* a + // default value. But in the case that it does not, this property view + // becomes invalid. + this->_status = PropertyTablePropertyViewStatus::ErrorNonexistentProperty; + return; + } this->_status = PropertyTablePropertyViewStatus::EmptyPropertyWithDefault; this->_size = size; @@ -562,16 +565,19 @@ class PropertyTablePropertyView _arrayOffsets{}, _arrayOffsetType{PropertyComponentType::None}, _arrayOffsetTypeSize{0} { - // Don't override the status / size if something is wrong with the class - // property's definition. if (this->_status != PropertyTablePropertyViewStatus::Valid) { + // Don't override the status / size if something is wrong with the class + // property's definition. return; } - assert( - classProperty.defaultProperty && - "Cannot construct a valid property view for an empty property with no " - "default value."); + if (!classProperty.defaultProperty) { + // This constructor should only be called if the class property *has* a + // default value. But in the case that it does not, this property view + // becomes invalid. + this->_status = PropertyTablePropertyViewStatus::ErrorNonexistentProperty; + return; + } this->_status = PropertyTablePropertyViewStatus::EmptyPropertyWithDefault; this->_size = size; diff --git a/CesiumGltf/include/CesiumGltf/PropertyTexturePropertyView.h b/CesiumGltf/include/CesiumGltf/PropertyTexturePropertyView.h index f466b4f77..03ba314a9 100644 --- a/CesiumGltf/include/CesiumGltf/PropertyTexturePropertyView.h +++ b/CesiumGltf/include/CesiumGltf/PropertyTexturePropertyView.h @@ -271,16 +271,20 @@ class PropertyTexturePropertyView _texCoordSetIndex(0), _channels(), _swizzle() { - // Don't override the status / size if something is wrong with the class - // property's definition. if (this->_status != PropertyTexturePropertyViewStatus::Valid) { + // Don't override the status / size if something is wrong with the class + // property's definition. return; } - assert( - classProperty.defaultProperty && - "Cannot construct a valid property view for an empty property with no " - "default value."); + if (!classProperty.defaultProperty) { + // This constructor should only be called if the class property *has* a + // default value. But in the case that it does not, this property view + // becomes invalid. + this->_status = + PropertyTexturePropertyViewStatus::ErrorNonexistentProperty; + return; + } this->_status = PropertyTexturePropertyViewStatus::EmptyPropertyWithDefault; } @@ -500,16 +504,20 @@ class PropertyTexturePropertyView _texCoordSetIndex(0), _channels(), _swizzle() { - // Don't override the status / size if something is wrong with the class - // property's definition. if (this->_status != PropertyTexturePropertyViewStatus::Valid) { + // Don't override the status / size if something is wrong with the class + // property's definition. return; } - assert( - classProperty.defaultProperty && - "Cannot construct a valid property view for an empty property with no " - "default value."); + if (!classProperty.defaultProperty) { + // This constructor should only be called if the class property *has* a + // default value. But in the case that it does not, this property view + // becomes invalid. + this->_status = + PropertyTexturePropertyViewStatus::ErrorNonexistentProperty; + return; + } this->_status = PropertyTexturePropertyViewStatus::EmptyPropertyWithDefault; } From 2398567333ea0967a39d35db335365509d8bbfa4 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 29 Sep 2023 11:39:54 +1000 Subject: [PATCH 15/16] Update compiler requirements and changelog. --- CHANGES.md | 4 ++++ README.md | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 30a5a4c87..7ac13d8a2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,10 @@ ### ? - ? +##### Breaking Changes :mega: + +- Cesium Native is now only regularly tested on Visual Studio 2019+, GCC 11.x+, and Clang 12+. Other compilers - including older ones - are likely to work, but are not tested. + ##### Additions :tada: - Added `getClass` to `PropertyTableView`, `PropertyTextureView`, and `PropertyAttributeView`. This can be used to retrieve the metadata `Class` associated with the view. diff --git a/README.md b/README.md index 00eb09fdb..34854df57 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,8 @@ Cesium Native powers Cesium's runtime integrations for [Cesium for Unreal](https ### ⭐Prerequisites -* Visual Studio 2017 (or newer), GCC v7.x+, Clang 10+. Other compilers may work but haven't been tested. -* CMake +* Visual Studio 2019 (or newer), GCC v11.x+, Clang 12+. Other compilers are likely to work but are not regularly tested. +* CMake 3.15+ * For best JPEG-decoding performance, you must have [nasm](https://www.nasm.us/) installed so that CMake can find it. Everything will work fine without it, just slower. ### :rocket:Getting Started From 0f19eea6e94da9743403cc014fbf422b78092336 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 29 Sep 2023 21:08:06 +1000 Subject: [PATCH 16/16] Use ubuntu-20.04 instead of ubuntu-latest So that we can use Clang 12. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a58a4ee2..2191d6033 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -112,7 +112,7 @@ jobs: ctest -V LinuxClang: name: "Linux + Clang" - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 env: CC: clang-12 CXX: clang++-12