# Copyright (C) 2016 The Android Open Source Project
#
# 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.

go_install()

add_cmake(robobuild)
ExternalProject_Get_Property(robobuild BINARY_DIR)
set_target_properties(robobuild PROPERTIES EXCLUDE_FROM_ALL TRUE)
add_custom_target(run-robotester
    #TODO: change to -db sqlite3://memory if mysql not enabled
    #TODO: clone the source into a sub repo
    COMMAND robotester
        -ignore-local-changes
        -offline
        -log_level Info
        -build ${BINARY_DIR}
    COMMENT "Launching robotester"
    WORKING_DIRECTORY ${BINARY_DIR}
    USES_TERMINAL
    DEPENDS robobuild
)
