view ui/tests/CMakeLists.txt @ 496:fa3a7ebf0049

Move some common UI code into a library to avoid recompiling for each test
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 25 Apr 2014 10:15:39 +0000
parents a53286e5b126
children bedeb38c244a
line wrap: on
line source
# Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
# Software engineering by Intevation GmbH
#
# This file is Free Software under the GNU GPL (v>=2)
# and comes with ABSOLUTELY NO WARRANTY!
# See LICENSE.txt for details.

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})

include_directories(${CMAKE_CURRENT_BINARY_DIR}
   ${CMAKE_SOURCE_DIR}/ui
   ${CMAKE_SOURCE_DIR}/common
   ${CMAKE_SOURCE_DIR}/cinst)

find_package(Qt5Test)
include_directories(${Qt5Test_INCLUDE_DIRS})
find_program(HIAWATHA_EXECUTABLE hiawatha)

if (NOT HIAWATHA_EXECUTABLE)
   message (STATUS "WARNING: hiawatha webserver not found. Downloader tests will fail.")
else()
  add_definitions(-DHIAWATHA_EXECUTABLE="${HIAWATHA_EXECUTABLE}")
endif()

macro(add_custom_test _source _additional_sources)
  set(_test ${_source})
  get_filename_component(_name ${_source} NAME_WE)
  set(_test_sources_with_resources ${_test}
     "${_additional_sources};${CMAKE_CURRENT_SOURCE_DIR}/common.cpp")
  qt5_add_resources(_test_sources_with_resources
     ${CMAKE_CURRENT_SOURCE_DIR}/data/testdata.qrc)
  add_executable(${_name} ${_test_sources_with_resources})
  add_test(tb-${_name} ${_name})
  target_link_libraries(${_name}
     ui_common
     Qt5::Test Qt5::Widgets
     trustbridge_common
     ${POLARSSL_LIBRARIES}
     ${EXTRA_STATIC_LIBS})
endmacro()

# Add the current source dir to the definition
# so that it can be used in file names in the tests.
add_definitions(-DSOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
add_custom_test(certlistparsertest.cpp "${CERTIFICATELIST_SOURCES}")

# Downloader
if (HIAWATHA_EXECUTABLE)
  qt5_add_resources(DOWNLOADER_SOURCES_WITH_RESOURCES ${TRUSTBRIDGE_RESOURCES})
  add_custom_test(downloadertest.cpp "${DOWNLOADER_SOURCES_WITH_RESOURCES}")
endif()

# Cinstprocess
add_custom_test(cinstprocesstest.cpp "")
add_dependencies(cinstprocesstest cinst)
add_custom_test(commontest.cpp "")

add_custom_test(createcertlisttest.cpp "")

if (WIN32)
   add_custom_test(windowsstoretest.cpp "${CMAKE_SOURCE_DIR}/cinst/windowsstore.c")
endif (WIN32)

if (NSS_FOUND)
   include_directories(${NSS_INCLUDE_DIRS})
   set(NSSTEST_SOURCES
      ${CMAKE_SOURCE_DIR}/cinst/nssstore_linux.c
      ${CMAKE_SOURCE_DIR}/cinst/nssstore_win.c)
   add_custom_test(nsstest.cpp "${NSSTEST_SOURCES}")
   target_link_libraries(nsstest ${NSS_LIBRARIES})
   if (WIN32)
      target_link_libraries(nsstest -luserenv)
   endif()

   add_dependencies(nsstest mozilla)
endif()

#add_custom_test(${CMAKE_SOURCE_DIR}/ui/main.cpp "${TRUSTBRIDGE_SOURCES}")

http://wald.intevation.org/projects/trustbridge/