Hermes executor migration to CMake

Summary:
Adds CMake files to configure hermes-executor build, with the same setup as we have in Android.mk

Changelog: [Internal] - CMake build config for hermes executor

Reviewed By: cortinico

Differential Revision: D34811909

fbshipit-source-id: 2df6dbaf46131db87a25e26c83b38ba44f29d1d3
This commit is contained in:
Andrei Shikov 2022-03-16 01:47:05 -07:00 коммит произвёл Facebook GitHub Bot
Родитель a6095d43cd
Коммит 6c5bd6d790
5 изменённых файлов: 104 добавлений и 3 удалений

Просмотреть файл

@ -0,0 +1,41 @@
# 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)
file(GLOB_RECURSE hermes_executor_SRC CONFIGURE_DEPENDS *.cpp)
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(HERMES_TARGET_SUFFIX debug)
else()
set(HERMES_TARGET_SUFFIX release)
endif()
set(HERMES_TARGET_NAME hermes-executor-${HERMES_TARGET_SUFFIX})
add_library(
${HERMES_TARGET_NAME}
SHARED
${hermes_executor_SRC}
)
target_compile_options(
${HERMES_TARGET_NAME}
PRIVATE
$<$<CONFIG:Debug>:-DHERMES_ENABLE_DEBUGGER=1>
-fexceptions
)
target_include_directories(${HERMES_TARGET_NAME} PRIVATE .)
target_link_libraries(
${HERMES_TARGET_NAME}
hermes-executor-common
jsireact
fb
fbjni
folly_json
hermes-engine::libhermes
jsi
reactnativejni
)

Просмотреть файл

@ -10,6 +10,6 @@ add_compile_options(-fexceptions -fno-omit-frame-pointer)
add_library(glog_init SHARED glog_init.cpp)
target_include_directories(yoga PUBLIC .)
target_include_directories(glog_init PUBLIC .)
target_link_libraries(glog_init log glog)

Просмотреть файл

@ -0,0 +1,29 @@
# 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)
file(GLOB_RECURSE hermes_executor_SRC CONFIGURE_DEPENDS *.cpp)
add_library(
hermes-executor-common
STATIC
${hermes_executor_SRC}
)
target_include_directories(hermes-executor-common PUBLIC .)
target_link_libraries(hermes-executor-common
jsireact
hermes-engine::libhermes
jsi
debug hermes-inspector
)
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
target_compile_options(
hermes-executor-common
PRIVATE
-DHERMES_ENABLE_DEBUGGER=1
)
endif()

Просмотреть файл

@ -0,0 +1,32 @@
# 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)
file(GLOB hermesinspector_SRC CONFIGURE_DEPENDS *.cpp detail/*.cpp chrome/*.cpp)
add_library(hermes-inspector
STATIC
${hermesinspector_SRC})
target_compile_options(
hermes-inspector
PRIVATE
-DHERMES_ENABLE_DEBUGGER=1
-DHERMES_INSPECTOR_FOLLY_KLUDGE=1
-fexceptions
)
target_include_directories(hermes-inspector PUBLIC ${REACT_COMMON_DIR})
target_link_libraries(hermes-inspector
jsinspector
fb
fbjni
folly_futures
folly_json
glog
hermes-engine::libhermes
jsi)

Просмотреть файл

@ -17,7 +17,6 @@ add_compile_options(
file(GLOB react_debug_SRC CONFIGURE_DEPENDS *.cpp)
add_library(react_debug SHARED ${react_debug_SRC})
# TODO This should not be ../../.. but a proper variable
target_include_directories(react_debug PUBLIC ../../..)
target_include_directories(react_debug PUBLIC ${REACT_COMMON_DIR})
target_link_libraries(react_debug log folly_json)