mirror of
https://github.com/grumpycoders/pcsx-redux.git
synced 2025-04-02 10:41:54 -04:00
99 lines
4.1 KiB
CMake
99 lines
4.1 KiB
CMake
#-------------------------------------------------------------------------------------------
|
|
# Copyright (C) Electronic Arts Inc. All rights reserved.
|
|
#-------------------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# CMake info
|
|
#-------------------------------------------------------------------------------------------
|
|
cmake_minimum_required(VERSION 3.1)
|
|
project(EASTLTest CXX)
|
|
include(CTest)
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Defines
|
|
#-------------------------------------------------------------------------------------------
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
|
add_definitions(-DEASTL_OPENSOURCE=1)
|
|
add_definitions(-D_CHAR16T)
|
|
add_definitions(-DEASTL_THREAD_SUPPORT_AVAILABLE=0)
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Compiler Flags
|
|
#-------------------------------------------------------------------------------------------
|
|
set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/../scripts/CMake")
|
|
include(CommonCppFlags)
|
|
|
|
if (MSVC)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|
endif()
|
|
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pointer-bool-conversion -Wno-unknown-warning-option")
|
|
endif()
|
|
|
|
# Parts of the test suite fail to compile if char8_t is enabled, so we
|
|
# disable it and only enable for specific source files later on.
|
|
if (EASTL_NO_CHAR8T_FLAG)
|
|
add_compile_options(${EASTL_NO_CHAR8T_FLAG})
|
|
endif()
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Source files
|
|
#-------------------------------------------------------------------------------------------
|
|
file(GLOB EASTLTEST_SOURCES "source/*.cpp" "source/*.inl" "source/*.h")
|
|
set(SOURCES ${EASTLTEST_SOURCES})
|
|
|
|
# Compile a subset of tests with explicit char8_t support if available.
|
|
if (EASTL_CHAR8T_FLAG)
|
|
message(STATUS "Building with char8_t support in tests.")
|
|
set(EASTLTEST_CHAR8T_SOURCES "source/TestString.cpp" "source/TestStringView.cpp")
|
|
|
|
set_source_files_properties(${EASTLTEST_CHAR8T_SOURCES} PROPERTIES
|
|
COMPILE_FLAGS ${EASTL_CHAR8T_FLAG}
|
|
COMPILE_DEFINITIONS "EASTL_EXPECT_CHAR8T_SUPPORT")
|
|
endif()
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Executable definition
|
|
#-------------------------------------------------------------------------------------------
|
|
add_executable(EASTLTest ${SOURCES})
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Include directories
|
|
#-------------------------------------------------------------------------------------------
|
|
target_include_directories(EASTLTest PUBLIC include)
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Dependencies
|
|
#-------------------------------------------------------------------------------------------
|
|
add_subdirectory(packages/EABase)
|
|
add_subdirectory(packages/EAAssert)
|
|
add_subdirectory(packages/EAStdC)
|
|
add_subdirectory(packages/EAMain)
|
|
add_subdirectory(packages/EATest)
|
|
add_subdirectory(packages/EAThread)
|
|
|
|
target_link_libraries(EASTLTest EABase)
|
|
target_link_libraries(EASTLTest EAAssert)
|
|
target_link_libraries(EASTLTest EAMain)
|
|
target_link_libraries(EASTLTest EASTL)
|
|
target_link_libraries(EASTLTest EAStdC)
|
|
target_link_libraries(EASTLTest EATest)
|
|
target_link_libraries(EASTLTest EAThread)
|
|
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
find_package(Threads REQUIRED)
|
|
|
|
if((NOT APPLE) AND (NOT WIN32))
|
|
target_link_libraries(EASTLTest ${EASTLTest_Libraries} Threads::Threads rt)
|
|
else()
|
|
target_link_libraries(EASTLTest ${EASTLTest_Libraries} Threads::Threads)
|
|
endif()
|
|
|
|
#-------------------------------------------------------------------------------------------
|
|
# Run Unit tests and verify the results.
|
|
#-------------------------------------------------------------------------------------------
|
|
add_test(EASTLTestRuns EASTLTest)
|
|
set_tests_properties (EASTLTestRuns PROPERTIES PASS_REGULAR_EXPRESSION "RETURNCODE=0")
|
|
|