UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

134 lines (120 loc) 3.12 kB
cmake_minimum_required(VERSION 3.8) file(GLOB_RECURSE WORKLETS_COMMON_CPP_SOURCES CONFIGURE_DEPENDS "${COMMON_CPP_DIR}/worklets/*.cpp") # Consume shared libraries and headers from prefabs find_package(fbjni REQUIRED CONFIG) find_package(ReactAndroid REQUIRED CONFIG) if(${JS_RUNTIME} STREQUAL "hermes") find_package(hermes-engine REQUIRED CONFIG) endif() add_library( worklets SHARED ${WORKLETS_COMMON_CPP_SOURCES} ) # includes target_include_directories( worklets PUBLIC "${COMMON_CPP_DIR}" ) target_include_directories( worklets PRIVATE "${REACT_NATIVE_DIR}/ReactCommon" "${REACT_NATIVE_DIR}/ReactCommon/callinvoker" "${REACT_NATIVE_DIR}/ReactCommon/runtimeexecutor" ) if(${IS_NEW_ARCHITECTURE_ENABLED}) target_include_directories( worklets PRIVATE "${REACT_NATIVE_DIR}/ReactCommon/yoga" "${REACT_NATIVE_DIR}/ReactCommon/react/renderer/graphics/platform/cxx" ) if(ReactAndroid_VERSION_MINOR LESS 76) target_link_libraries( worklets ReactAndroid::fabricjni ReactAndroid::react_debug ReactAndroid::react_render_core ReactAndroid::react_render_componentregistry ReactAndroid::rrc_view ) endif() endif() # build shared lib set_target_properties( worklets PROPERTIES LINKER_LANGUAGE CXX ) target_link_libraries( worklets log ReactAndroid::jsi fbjni::fbjni ) if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76) target_link_libraries( worklets ReactAndroid::reactnative ) else() target_link_libraries( worklets ReactAndroid::folly_runtime ReactAndroid::glog ReactAndroid::reactnativejni ) endif() if(${JS_RUNTIME} STREQUAL "hermes") target_link_libraries( worklets hermes-engine::libhermes ) if(${HERMES_ENABLE_DEBUGGER}) if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76) target_link_libraries( worklets ReactAndroid::hermestooling ) else() target_link_libraries( worklets ReactAndroid::hermes_executor ) endif() endif() elseif(${JS_RUNTIME} STREQUAL "jsc") if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76) target_link_libraries( worklets ReactAndroid::jsctooling ) else() target_link_libraries( worklets ReactAndroid::jscexecutor ) endif() elseif(${JS_RUNTIME} STREQUAL "v8") # TODO: Refactor this when adding support for newest V8 target_include_directories( worklets PRIVATE "${JS_RUNTIME_DIR}/src" ) file(GLOB V8_SO_DIR "${JS_RUNTIME_DIR}/android/build/intermediates/library_jni/*/jni/${ANDROID_ABI}") find_library( V8EXECUTOR_LIB v8executor PATHS ${V8_SO_DIR} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH ) target_link_libraries( worklets ${V8EXECUTOR_LIB} ) endif()