1 | project(Reanimated)
|
2 | cmake_minimum_required(VERSION 3.8)
|
3 |
|
4 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
5 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
|
6 |
|
7 | if(${REACT_NATIVE_MINOR_VERSION} GREATER_EQUAL 73)
|
8 | set(CMAKE_CXX_STANDARD 20)
|
9 | else()
|
10 | set(CMAKE_CXX_STANDARD 17)
|
11 | endif()
|
12 |
|
13 | # default CMAKE_CXX_FLAGS: "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-protector-all"
|
14 | include("${REACT_NATIVE_DIR}/ReactAndroid/cmake-utils/folly-flags.cmake")
|
15 | add_compile_options(${folly_FLAGS})
|
16 |
|
17 | string(APPEND CMAKE_CXX_FLAGS " -DREACT_NATIVE_MINOR_VERSION=${REACT_NATIVE_MINOR_VERSION} -DREANIMATED_VERSION=${REANIMATED_VERSION} -DHERMES_ENABLE_DEBUGGER=${HERMES_ENABLE_DEBUGGER}")
|
18 |
|
19 | string(APPEND CMAKE_CXX_FLAGS " -fexceptions -fno-omit-frame-pointer -frtti -fstack-protector-all -std=c++${CMAKE_CXX_STANDARD} -Wall -Werror")
|
20 |
|
21 | if(${IS_NEW_ARCHITECTURE_ENABLED})
|
22 | string(APPEND CMAKE_CXX_FLAGS " -DRCT_NEW_ARCH_ENABLED")
|
23 | endif()
|
24 |
|
25 | if(${IS_REANIMATED_EXAMPLE_APP})
|
26 | string(APPEND CMAKE_CXX_FLAGS " -DIS_REANIMATED_EXAMPLE_APP -Wpedantic")
|
27 | endif()
|
28 |
|
29 | if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
30 | string(APPEND CMAKE_CXX_FLAGS " -DNDEBUG")
|
31 | endif()
|
32 |
|
33 | if(${JS_RUNTIME} STREQUAL "hermes")
|
34 | string(APPEND CMAKE_CXX_FLAGS " -DJS_RUNTIME_HERMES=1")
|
35 | elseif(${JS_RUNTIME} STREQUAL "jsc")
|
36 | string(APPEND CMAKE_CXX_FLAGS " -DJS_RUNTIME_JSC=1")
|
37 | elseif(${JS_RUNTIME} STREQUAL "v8")
|
38 | string(APPEND CMAKE_CXX_FLAGS " -DJS_RUNTIME_V8=1")
|
39 | else()
|
40 | message(FATAL_ERROR "Unknown JS runtime ${JS_RUNTIME}.")
|
41 | endif()
|
42 |
|
43 | # Resolves "CMake Warning: Manually-specified variables were not used by the
|
44 | # project" when any of the following variables is not used in some build
|
45 | # configuration.
|
46 | set(ignoreMe "${JS_RUNTIME_DIR}")
|
47 |
|
48 | set(BUILD_DIR "${CMAKE_SOURCE_DIR}/build")
|
49 | set(ANDROID_CPP_DIR "${CMAKE_SOURCE_DIR}/src/main/cpp")
|
50 | set(COMMON_CPP_DIR "${CMAKE_SOURCE_DIR}/../Common/cpp")
|
51 |
|
52 | add_subdirectory("${ANDROID_CPP_DIR}/worklets")
|
53 | add_subdirectory("${ANDROID_CPP_DIR}/reanimated")
|