blob: a811a070f0fa1e313b1c651c7df955595127d767 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
if (NOT WIN32)
# Build the test modules.
#########################
# NOTE: Modules are not supported on Windows.
add_library(testallocator SHARED EXCLUDE_FROM_ALL test_allocator_module.cpp)
add_library(testanonymous SHARED EXCLUDE_FROM_ALL test_anonymous_module.cpp)
add_library(testauthentication SHARED EXCLUDE_FROM_ALL test_authentication_modules.cpp)
add_library(testauthorizer SHARED EXCLUDE_FROM_ALL test_authorizer_module.cpp)
add_library(testcontainer_logger SHARED EXCLUDE_FROM_ALL test_container_logger_module.cpp)
add_library(examplemodule SHARED EXCLUDE_FROM_ALL example_module_impl.cpp)
add_library(testhook SHARED EXCLUDE_FROM_ALL test_hook_module.cpp)
add_library(testhttpauthenticator SHARED EXCLUDE_FROM_ALL test_http_authenticator_module.cpp)
add_library(testisolator SHARED EXCLUDE_FROM_ALL test_isolator_module.cpp)
add_library(testmastercontender SHARED EXCLUDE_FROM_ALL test_master_contender_module.cpp)
add_library(testmasterdetector SHARED EXCLUDE_FROM_ALL test_master_detector_module.cpp)
add_library(testqos_controller SHARED EXCLUDE_FROM_ALL test_qos_controller_module.cpp)
add_library(testresource_estimator SHARED EXCLUDE_FROM_ALL test_resource_estimator_module.cpp)
# Build the example frameworks and executors.
#############################################
# TODO(josephw): The scheduler driver is current not built on Windows.
add_executable(balloon-executor balloon_executor.cpp)
add_executable(balloon-framework balloon_framework.cpp)
add_executable(disk-full-framework disk_full_framework.cpp)
add_executable(docker-no-executor-framework docker_no_executor_framework.cpp)
add_executable(dynamic-reservation-framework dynamic_reservation_framework.cpp)
add_executable(inverse-offer-framework inverse_offer_framework.cpp)
add_executable(load-generator-framework load_generator_framework.cpp)
add_executable(long-lived-executor long_lived_executor.cpp)
add_executable(long-lived-framework long_lived_framework.cpp)
add_executable(operation-feedback-framework operation_feedback_framework.cpp)
add_executable(no-executor-framework no_executor_framework.cpp)
add_executable(persistent-volume-framework persistent_volume_framework.cpp)
add_executable(test-executor test_executor.cpp)
add_executable(test-framework test_framework.cpp)
add_executable(test-http-executor test_http_executor.cpp)
add_executable(test-http-framework test_http_framework.cpp)
add_executable(test-csi-user-framework test_csi_user_framework.cpp)
# TODO(chhsiao): The test CSI plugin is Linux only for now.
if (LINUX)
add_executable(test-csi-plugin test_csi_plugin.cpp)
endif ()
# NOTE: Do not replace this with `link_libraries()`. While it may result in
# less code, it is deprecated and relies on side effects instead of
# explicitness.
target_link_libraries(testallocator PRIVATE mesos)
target_link_libraries(testanonymous PRIVATE mesos)
target_link_libraries(testauthentication PRIVATE mesos)
target_link_libraries(testauthorizer PRIVATE mesos)
target_link_libraries(testcontainer_logger PRIVATE mesos)
target_link_libraries(examplemodule PRIVATE mesos)
target_link_libraries(testhook PRIVATE mesos)
target_link_libraries(testhttpauthenticator PRIVATE mesos)
target_link_libraries(testisolator PRIVATE mesos)
target_link_libraries(testmastercontender PRIVATE mesos)
target_link_libraries(testmasterdetector PRIVATE mesos)
target_link_libraries(testqos_controller PRIVATE mesos)
target_link_libraries(testresource_estimator PRIVATE mesos)
target_link_libraries(balloon-executor PRIVATE mesos)
target_link_libraries(balloon-framework PRIVATE mesos)
target_link_libraries(disk-full-framework PRIVATE mesos)
target_link_libraries(docker-no-executor-framework PRIVATE mesos)
target_link_libraries(dynamic-reservation-framework PRIVATE mesos)
target_link_libraries(inverse-offer-framework PRIVATE mesos)
target_link_libraries(load-generator-framework PRIVATE mesos)
target_link_libraries(long-lived-executor PRIVATE mesos)
target_link_libraries(long-lived-framework PRIVATE mesos)
target_link_libraries(operation-feedback-framework PRIVATE mesos)
target_link_libraries(no-executor-framework PRIVATE mesos)
target_link_libraries(persistent-volume-framework PRIVATE mesos)
target_link_libraries(test-executor PRIVATE mesos)
target_link_libraries(test-framework PRIVATE mesos)
target_link_libraries(test-http-executor PRIVATE mesos)
target_link_libraries(test-http-framework PRIVATE mesos)
target_link_libraries(test-csi-user-framework PRIVATE mesos)
# TODO(chhsiao): The test CSI plugin is Linux only for now.
if (LINUX)
# NOTE: We explicitly add `grpc` here since the test CSI plugin uses the
# server-side gRPC library, which might not be linked in mesos.
target_link_libraries(test-csi-plugin PRIVATE mesos grpc)
endif ()
endif ()