Breaking: Use C++ 20 #1382
@@ -28,5 +28,5 @@ let package = Package(
|
||||
]
|
||||
)
|
||||
],
|
||||
cxxLanguageStandard: CXXLanguageStandard(rawValue: "c++17")
|
||||
cxxLanguageStandard: CXXLanguageStandard(rawValue: "c++20")
|
||||
)
|
||||
|
@@ -4,7 +4,7 @@ Yoga is an embeddable and performant flexbox layout engine with bindings for mul
|
||||
|
||||
|
||||
## Building
|
||||
Yoga's main implementation targets C++ 17 with accompanying build logic in CMake. A wrapper is provided to build the main library and run unit tests.
|
||||
Yoga's main implementation targets C++ 20 with accompanying build logic in CMake. A wrapper is provided to build the main library and run unit tests.
|
||||
|
||||
```sh
|
||||
./unit_tests <Debug|Release>
|
||||
|
@@ -33,7 +33,7 @@ Pod::Spec.new do |spec|
|
||||
'-Werror',
|
||||
'-Wextra',
|
||||
'-Wconversion',
|
||||
'-std=c++17',
|
||||
'-std=c++20',
|
||||
'-fPIC'
|
||||
]
|
||||
|
||||
|
@@ -6,8 +6,8 @@
|
||||
*/
|
||||
|
||||
plugins {
|
||||
id("com.android.library") version "8.0.1" apply false
|
||||
id("com.android.application") version "8.0.1" apply false
|
||||
id("com.android.library") version "8.1.1" apply false
|
||||
id("com.android.application") version "8.1.1" apply false
|
||||
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
|
||||
}
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
# This source code is licensed under the MIT license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
|
@@ -21,9 +21,9 @@ val ndkVersionProperty: String by rootProject.extra
|
||||
|
||||
android {
|
||||
namespace = "com.facebook.yoga"
|
||||
compileSdk = 33
|
||||
buildToolsVersion = "33.0.0"
|
||||
ndkVersion = "23.1.7779620"
|
||||
compileSdk = 34
|
||||
buildToolsVersion = "34.0.0"
|
||||
ndkVersion = "25.1.8937393"
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 21
|
||||
|
@@ -14,7 +14,7 @@ file(GLOB SOURCES CONFIGURE_DEPENDS
|
||||
|
||||
include_directories(..)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
add_compile_definitions(
|
||||
EMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0)
|
||||
|
@@ -14,6 +14,7 @@ namespace facebook::yoga {
|
||||
|
||||
// Polyfill for std::bit_cast() from C++20, to allow safe type punning
|
||||
// https://en.cppreference.com/w/cpp/numeric/bit_cast
|
||||
// TODO: Remove when we upgrade to NDK 26+
|
||||
template <class To, class From>
|
||||
std::enable_if_t<
|
||||
sizeof(To) == sizeof(From) && std::is_trivially_copyable_v<From> &&
|
||||
|
Reference in New Issue
Block a user