Files
react-native/packages/rn-tester/NativeCxxModuleExample/CMakeLists.txt
T
Nick Gerleman 17154a661f C++ 20 all the things (#39454)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39454

1. Build with C++ 20 everywhere.
2. Update folly in OSS build to avoid a warning, and let us opt out of heavy bits required for supporting coroutines (we are still more than a year behind).
3. Update the folly podspec for the new version of folly
4. Update the many, many, copy/pasted header search paths for folly dependencies to be able to resolve fmt, now exposed to folly headers
4. Replaces a deprecated atomic usage with equivalent.
5. Fixes a deprecated implicit capturing `this` by value in lambda (same behavior, added a TODO because it seems sus)

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D49271685

fbshipit-source-id: 16610f7bcd1032d5796cc11f1cfa92a33d8c2593
2023-09-15 01:17:55 -07:00

37 lines
1.2 KiB
CMake

# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
cmake_minimum_required(VERSION 3.13)
set(CMAKE_VERBOSE_MAKEFILE on)
add_compile_options(
-fexceptions
-frtti
-std=c++20
-Wall
-Wpedantic
-Wno-gnu-zero-variadic-macro-arguments
-DFOLLY_NO_CONFIG=1
-DLOG_TAG=\"ReactNative\")
file(GLOB nativecxxmoduleexample_SRC CONFIGURE_DEPENDS *.cpp)
add_library(nativecxxmoduleexample STATIC ${nativecxxmoduleexample_SRC})
target_include_directories(nativecxxmoduleexample PUBLIC .)
target_link_libraries(nativecxxmoduleexample
fbjni
jsi
react_nativemodule_core)
# For Gradle Syncs (i.e. when you first open the project in Android Studio),
# the react_codegen_AppSpecs target is not existing yet as it's generated by
# Codegen. Therefore skip the linking with that library if it's missing in the
# CMake dependency Graph. It will be included anyway in the final build.
if (TARGET react_codegen_AppSpecs)
target_include_directories(react_codegen_AppSpecs PUBLIC .)
target_link_libraries(nativecxxmoduleexample react_codegen_AppSpecs)
endif ()