First
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#-------------------------------------------------------------------------------------------
|
||||
# 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)
|
||||
if (EASTL_STD_ITERATOR_CATEGORY_ENABLED)
|
||||
add_definitions(-DEASTL_STD_ITERATOR_CATEGORY_ENABLED=1)
|
||||
endif()
|
||||
|
||||
#-------------------------------------------------------------------------------------------
|
||||
# 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")
|
||||
|
||||
Reference in New Issue
Block a user