# Copyright (c) 2007-2011 libmv authors.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

OPTION(BUILD_TESTS "Build the unit tests." OFF)
MACRO (LIBMV_TEST NAME EXTRA_LIBS)
  IF (BUILD_TESTS)
    ADD_EXECUTABLE(${NAME}_test ${NAME}_test.cc)
    TARGET_LINK_LIBRARIES(${NAME}_test
                          ${EXTRA_LIBS} # Extra libs MUST be first.
                          libmv_test_main 
                          gtest 
                          glog
                          gflags
                          pthread)
    SET_TARGET_PROPERTIES(${NAME}_test PROPERTIES 
       RUNTIME_OUTPUT_DIRECTORY         ${LIBMV_TESTS_OUTPUT_DIR}
       RUNTIME_OUTPUT_DIRECTORY_RELEASE ${LIBMV_TESTS_OUTPUT_DIR}
       RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${LIBMV_TESTS_OUTPUT_DIR})
    # TODO(julien) make the name of debug libraries end in _d.
    # SET_TARGET_PROPERTIES(${NAME}_test PROPERTIES DEBUG_POSTFIX "_d")
    # IF (CMAKE_BUILD_TYPE STREQUAL "Debug")
      # ADD_TEST(${NAME}_test ${LIBMV_TESTS_OUTPUT_DIR}/${NAME}_test_d)
    # ELSE (CMAKE_BUILD_TYPE STREQUAL "Debug")
       ADD_TEST(${NAME}_test ${LIBMV_TESTS_OUTPUT_DIR}/${NAME}_test)
    # ENDIF (CMAKE_BUILD_TYPE STREQUAL "Debug")
  ENDIF (BUILD_TESTS)
ENDMACRO (LIBMV_TEST)
