AusweisApp2/test/qt/CMakeLists.txt

68 lines
2.4 KiB
CMake

FUNCTION(ADD_TEST_EXECUTABLE testname)
IF(ANDROID)
ADD_LIBRARY(${testname} SHARED ${ARGN})
ELSE()
ADD_EXECUTABLE(${testname} ${ARGN})
ENDIF()
TARGET_LINK_LIBRARIES(${testname} Qt5::Network Qt5::Test OpenSSL::Crypto)
TARGET_LINK_LIBRARIES(${testname} AusweisAppTestHelper AusweisAppCore AusweisAppCard AusweisAppGlobal AusweisAppCardDrivers AusweisAppServices AusweisAppSettings AusweisAppNetwork)
TARGET_LINK_LIBRARIES(${testname} AusweisAppActivationInternal AusweisAppUiJsonApi AusweisAppUiAidl AusweisAppUiQml)
TARGET_LINK_LIBRARIES(${testname} AusweisAppRemoteDevice AusweisAppExport)
TARGET_LINK_LIBRARIES(${testname} AusweisAppSecureStorage AusweisAppConfiguration AusweisAppFileProvider)
TARGET_LINK_LIBRARIES(${testname} QRC_FIXTURE_OBJ)
IF(DESKTOP)
TARGET_LINK_LIBRARIES(${testname} Qt5::Widgets AusweisAppUiWidget AusweisAppCardPcsc AusweisAppActivationWebservice)
ENDIF()
IF(LINUX OR ANDROID OR IOS)
TARGET_LINK_LIBRARIES(${testname} AusweisAppCardBluetooth)
ENDIF()
TARGET_LINK_LIBRARIES(${testname} AusweisAppWhitelistClient)
IF(WIN32)
TARGET_LINK_LIBRARIES(${testname} ${WIN_DEFAULT_LIBS})
ELSEIF(MAC)
TARGET_LINK_LIBRARIES(${testname} ${OSX_APPKIT})
ELSEIF(ANDROID)
TARGET_LINK_LIBRARIES(${testname} Qt5::AndroidExtras)
ENDIF()
ENDFUNCTION()
FUNCTION(ADD_TEST_EXECUTABLE_SUBDIR)
SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR})
IF(IOS OR ANDROID)
LIST(REMOVE_ITEM SUBDIRS widget)
LIST(REMOVE_ITEM SUBDIRS cli)
LIST(REMOVE_ITEM SUBDIRS pcsc)
LIST(REMOVE_ITEM SUBDIRS drivers)
LIST(REMOVE_ITEM SUBDIRS activation_webservice)
ENDIF()
FOREACH(SUBDIR ${SUBDIRS})
FILE(GLOB_RECURSE TEST_SUBFILES "${SUBDIR}/*.cpp")
FOREACH(sourcefile ${TEST_SUBFILES})
STRING(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" sourcefile_relative "${sourcefile}")
IF(NOT (((APPLE OR WIN32 OR BSD) AND "${sourcefile_relative}" MATCHES "card/bluetooth") OR
((IOS OR ANDROID) AND "${sourcefile_relative}" MATCHES "card/pcsc")))
EXTRACT_TESTNAME(TESTNAME ${sourcefile})
ADD_TEST_EXECUTABLE(${TESTNAME} ${sourcefile})
GET_TEST_CMDLINE(TEST_CMDLINE ${TESTNAME})
ADD_TEST(${TESTNAME} ${TESTNAME} ${TEST_CMDLINE})
SET_TESTS_PROPERTIES(${TESTNAME} PROPERTIES LABELS "ausweisapp")
ENDIF()
ENDFOREACH()
ENDFOREACH()
ENDFUNCTION()
CONFIGURE_DEFAULT_FILES(${CMAKE_CURRENT_BINARY_DIR})
# Build single test binaries for each cpp file
ADD_TEST_EXECUTABLE_SUBDIR()