mirror-chatterino2/tests/CMakeLists.txt
pajlada 115d198434
Make AccessGuard use a shared_mutex instead (#2702)
This allows `accessConst` to use a shared lock instead of a unique lock
2021-05-01 15:19:41 +00:00

109 lines
3.3 KiB
CMake

project(chatterino-test)
set(main_dir ${CMAKE_SOURCE_DIR}/src)
include_directories(${main_dir})
set(chatterino_SOURCES
${CMAKE_SOURCE_DIR}/src/BaseSettings.cpp
${CMAKE_SOURCE_DIR}/src/common/ChatterinoSetting.cpp
${CMAKE_SOURCE_DIR}/src/common/Modes.cpp
${CMAKE_SOURCE_DIR}/src/common/NetworkCommon.cpp
${CMAKE_SOURCE_DIR}/src/common/NetworkManager.cpp
${CMAKE_SOURCE_DIR}/src/common/NetworkPrivate.cpp
${CMAKE_SOURCE_DIR}/src/common/NetworkRequest.cpp
${CMAKE_SOURCE_DIR}/src/common/NetworkResult.cpp
${CMAKE_SOURCE_DIR}/src/common/QLogging.cpp
${CMAKE_SOURCE_DIR}/src/common/UsernameSet.cpp
${CMAKE_SOURCE_DIR}/src/controllers/highlights/HighlightPhrase.cpp
${CMAKE_SOURCE_DIR}/src/messages/Emote.cpp
${CMAKE_SOURCE_DIR}/src/messages/Image.cpp
${CMAKE_SOURCE_DIR}/src/messages/ImageSet.cpp
${CMAKE_SOURCE_DIR}/src/providers/emoji/Emojis.cpp
${CMAKE_SOURCE_DIR}/src/singletons/Paths.cpp
${CMAKE_SOURCE_DIR}/src/util/DebugCount.cpp
${CMAKE_SOURCE_DIR}/src/util/RapidjsonHelpers.cpp
${CMAKE_SOURCE_DIR}/resources/resources.qrc
${CMAKE_SOURCE_DIR}/resources/resources_autogenerated.qrc
)
set(test_SOURCES
${CMAKE_CURRENT_LIST_DIR}/src/main.cpp
${CMAKE_CURRENT_LIST_DIR}/src/AccessGuard.cpp
${CMAKE_CURRENT_LIST_DIR}/src/NetworkCommon.cpp
${CMAKE_CURRENT_LIST_DIR}/src/NetworkRequest.cpp
${CMAKE_CURRENT_LIST_DIR}/src/UsernameSet.cpp
${CMAKE_CURRENT_LIST_DIR}/src/HighlightPhrase.cpp
${CMAKE_CURRENT_LIST_DIR}/src/Emojis.cpp
)
add_executable(${PROJECT_NAME}
${chatterino_SOURCES}
${test_SOURCES}
)
add_sanitizers(${PROJECT_NAME})
# Enable autogeneration of Qts MOC/RCC/UIC
set_target_properties(${PROJECT_NAME}
PROPERTIES
AUTOMOC ON
AUTORCC ON
AUTOUIC ON
)
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt5::Core
Qt5::Widgets
Qt5::Network
Qt5::Concurrent
gtest gtest_main
Pajlada::Serialize
Pajlada::Settings
Pajlada::Signals
Threads::Threads
)
target_compile_definitions(${PROJECT_NAME} PRIVATE
CHATTERINO
CHATTERINO_TEST
UNICODE
AB_CUSTOM_THEME
AB_CUSTOM_SETTINGS
IRC_STATIC
IRC_NAMESPACE=Communi
CHATTERINO_GIT_HASH=\"${GIT_HASH}\"
CHATTERINO_GIT_RELEASE=\"${GIT_RELEASE}\"
CHATTERINO_GIT_COMMIT=\"${GIT_COMMIT}\"
)
if (WIN32)
target_compile_definitions(${PROJECT_NAME} PRIVATE
USEWINSDK
)
endif ()
set_target_properties(${PROJECT_NAME}
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin"
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin"
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin"
)
# gtest_add_tests manages to discover the tests because it looks through the source files
# HOWEVER, it fails to run, because we have some bug that causes the QApplication exit to stall when no network requests have been made.
# ctest runs each test individually, so for now we require that testers just run the ./bin/chatterino-test binary without any filters applied
# gtest_add_tests(
# TARGET ${PROJECT_NAME}
# SOURCES ${test_SOURCES}
# )