sandboxed-api/sandboxed_api/examples/stringop/CMakeLists.txt
Christian Blichmann 1260b5f38b Move example sandboxes out of lib directories
This is mainly so that the structure of the examples follows what we do
internally (not having separate directories).

PiperOrigin-RevId: 402298115
Change-Id: I0f542607b88597572de39532364816f80a076697
2021-10-11 07:59:25 -07:00

88 lines
2.5 KiB
CMake

# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# sandboxed_api/examples/stringop/lib:stringop_params_proto
sapi_protobuf_generate_cpp(
_sapi_stringop_params_pb_cc _sapi_stringop_params_pb_h
stringop_params.proto
)
# Object library to avoid having to use -Wl,--whole-archive. This simulates
# Bazel's alwayslink=1.
add_library(sapi_stringop_params_proto OBJECT
${_sapi_stringop_params_pb_cc}
${_sapi_stringop_params_pb_h}
)
add_library(sapi::stringop_params_proto ALIAS sapi_stringop_params_proto)
target_include_directories(sapi_stringop_params_proto PUBLIC
${Protobuf_INCLUDE_DIRS}
)
# sandboxed_api/examples/stringop/lib:stringop
add_library(sapi_stringop STATIC
stringop.cc
)
add_library(sapi::stringop ALIAS sapi_stringop)
add_dependencies(sapi_stringop
sapi::stringop_params_proto
)
target_link_libraries(sapi_stringop
PRIVATE $<TARGET_OBJECTS:sapi_stringop_params_proto>
sapi::base
absl::core_headers
sapi::lenval_core
PUBLIC protobuf::libprotobuf
)
# sandboxed_api/examples/stringop/lib:stringop-sapi
add_sapi_library(stringop-sapi
SOURCES sandbox.h
FUNCTIONS duplicate_string
reverse_string
pb_duplicate_string
pb_reverse_string
nop
violate
get_raw_c_string
INPUTS stringop.cc
LIBRARY sapi_stringop
LIBRARY_NAME Stringop
NAMESPACE ""
)
add_library(sapi::stringop_sapi ALIAS stringop-sapi)
target_link_libraries(stringop-sapi PRIVATE
$<TARGET_OBJECTS:sapi_stringop_params_proto>
sapi::base
)
if(SAPI_ENABLE_TESTS)
# sandboxed_api/examples/stringop:main_stringop
add_executable(sapi_main_stringop
main_stringop.cc
)
set_target_properties(sapi_main_stringop PROPERTIES OUTPUT_NAME main_stringop)
target_link_libraries(sapi_main_stringop PRIVATE
absl::memory
absl::strings
absl::time
glog::glog
sapi::flags
sapi::sapi
sapi::status
sapi::stringop_sapi
sapi::test_main
sapi::vars
)
gtest_discover_tests_xcompile(sapi_main_stringop)
endif()