diff --git a/CMakeLists.txt b/CMakeLists.txt index 633e6f7..716d038 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,9 +71,10 @@ endif() find_package(gflags REQUIRED) find_package(glog REQUIRED) -find_package(Protobuf REQUIRED) find_package(Libcap REQUIRED) +find_package(Libffi REQUIRED) find_package(ZLIB REQUIRED) +find_package(Protobuf REQUIRED) set(CMAKE_FIND_LIBRARY_SUFFIXES ${_sapi_saved_CMAKE_FIND_LIBRARY_SUFFIXES}) diff --git a/sandboxed_api/CMakeLists.txt b/sandboxed_api/CMakeLists.txt index bab8c83..178c472 100644 --- a/sandboxed_api/CMakeLists.txt +++ b/sandboxed_api/CMakeLists.txt @@ -16,6 +16,20 @@ add_subdirectory(bazel) # For filewrapper add_subdirectory(sandbox2) add_subdirectory(util) +# sandboxed_api:proto_arg +sapi_protobuf_generate_cpp(_sapi_proto_arg_pb_cc _sapi_proto_arg_pb_h + proto_arg.proto +) +add_library(sapi_proto_arg_proto STATIC + ${_sapi_proto_arg_pb_cc} + ${_sapi_proto_arg_pb_h} +) +add_library(sapi::proto_arg_proto ALIAS sapi_proto_arg_proto) +target_link_libraries(sapi_proto_arg_proto PRIVATE + protobuf::libprotobuf + sapi::base +) + # sandboxed_api:embed_file add_library(sapi_embed_file STATIC embed_file.cc @@ -35,3 +49,122 @@ target_link_libraries(sapi_embed_file PRIVATE sapi::raw_logging sapi::status ) + +# sandboxed_api:sapi +add_library(sapi_sapi STATIC + sandbox.cc + sandbox.h + transaction.cc + transaction.h +) +add_library(sapi::sapi ALIAS sapi_sapi) +target_link_libraries(sapi_sapi PRIVATE + absl::core_headers + absl::flat_hash_map + absl::memory + absl::str_format + absl::strings + absl::synchronization + sandbox2::bpf_helper + sandbox2::client + sandbox2::file_base + sandbox2::fileops + sandbox2::runfiles + sandbox2::sandbox2 + sandbox2::strerror + sandbox2::util + sapi::base + sapi::embed_file + sapi::status + sapi::vars +) + +# sandboxed_api:call +add_library(sapi_call STATIC + call.h +) +add_library(sapi::call ALIAS sapi_call) +target_link_libraries(sapi_call PRIVATE + absl::core_headers + sapi::var_type + sapi::base +) + +# sandboxed_api:lenval_core +add_library(sapi_lenval_core STATIC + lenval_core.h +) +add_library(sapi::lenval_core ALIAS sapi_lenval_core) +target_link_libraries(sapi_lenval_core PRIVATE + sapi::base +) + +# sandboxed_api:var_type +add_library(sapi_var_type STATIC + var_type.h +) +add_library(sapi::var_type ALIAS sapi_var_type) +target_link_libraries(sapi_var_type PRIVATE + sapi::base +) + +# sandboxed_api:vars +add_library(sapi_vars STATIC + proto_helper.h + rpcchannel.cc + rpcchannel.h + var_abstract.cc + var_abstract.h + var_array.h + var_int.cc + var_int.h + var_lenval.cc + var_lenval.h + var_pointable.cc + var_pointable.h + var_proto.h + var_ptr.h + var_reg.h + var_struct.h + var_void.h + vars.h +) +add_library(sapi::vars ALIAS sapi_vars) +target_link_libraries(sapi_vars PRIVATE + absl::core_headers + absl::str_format + absl::strings + absl::synchronization + glog::glog + sandbox2::comms + sapi::base + sapi::call + sapi::lenval_core + sapi::proto_arg_proto + sapi::status + sapi::statusor + sapi::var_type +) + +# sandboxed_api:client +add_library(sapi_client STATIC + client.cc +) +add_library(sapi::client ALIAS sapi_client) +target_link_libraries(sapi_client PRIVATE + absl::core_headers + absl::strings + glog::glog + libffi::libffi + sandbox2::client + sandbox2::comms + sandbox2::forkingclient + sapi::base + sapi::call + sapi::flags + sapi::lenval_core + sapi::vars +) + +# sandboxed_api:sapi_test +# TODO(cblichmann): Add sapi_test once generator can be invoked via CMake