Exclude the test targets from Visual Studio and Xcode generation
runs unless explicitly requested. The test run takes hours, and
default behavior in the IDEs is to build all targets.

BUG=aomedia:76

Change-Id: I37e9904bd8d373a399d7d5fa49fe02771011f9d2
This commit is contained in:
Tom Finegan 2017-06-02 10:34:02 -07:00
Родитель 875a6675a7
Коммит 375ee84923
2 изменённых файлов: 13 добавлений и 11 удалений

Просмотреть файл

@ -20,6 +20,8 @@ option(ENABLE_CCACHE "Enable ccache support." OFF)
option(ENABLE_DISTCC "Enable distcc support." OFF) option(ENABLE_DISTCC "Enable distcc support." OFF)
option(ENABLE_DOCS "Enable documentation generation (doxygen required)." ON) option(ENABLE_DOCS "Enable documentation generation (doxygen required)." ON)
option(ENABLE_NASM "Use nasm instead of yasm for x86 assembly." OFF) option(ENABLE_NASM "Use nasm instead of yasm for x86 assembly." OFF)
option(ENABLE_IDE_TEST_HOSTING
"Enables running tests within IDEs like Visual Studio and Xcode." OFF)
project(AOM C CXX) project(AOM C CXX)

Просмотреть файл

@ -336,6 +336,17 @@ function (setup_aom_test_targets)
"AOM_UNIT_TEST_COMMON_INTRIN_NEON") "AOM_UNIT_TEST_COMMON_INTRIN_NEON")
endif () endif ()
if (NOT ENABLE_IDE_TEST_HOSTING)
if (MSVC OR XCODE)
# Skip creation of test data download and test run targets when generating
# for Visual Studio and Xcode unless the user explicitly requests IDE test
# hosting. This is done to make build cycles in the IDE tolerable when the
# IDE command for build project is used to build AOM. Default behavior in
# IDEs is to build all targets, and the test run takes hours.
return ()
endif ()
endif ()
make_test_data_lists("${AOM_UNIT_TEST_DATA_LIST_FILE}" make_test_data_lists("${AOM_UNIT_TEST_DATA_LIST_FILE}"
test_files test_file_checksums) test_files test_file_checksums)
list(LENGTH test_files num_test_files) list(LENGTH test_files num_test_files)
@ -366,8 +377,6 @@ function (setup_aom_test_targets)
set(num_test_targets 10) set(num_test_targets 10)
endif () endif ()
# TODO(tomfinegan): This needs some work for MSVC and Xcode. Executable suffix
# and config based executable output paths are the obvious issues.
math(EXPR max_shard_index "${num_test_targets} - 1") math(EXPR max_shard_index "${num_test_targets} - 1")
foreach (shard_index RANGE ${max_shard_index}) foreach (shard_index RANGE ${max_shard_index})
set(test_name "test_${shard_index}") set(test_name "test_${shard_index}")
@ -382,15 +391,6 @@ function (setup_aom_test_targets)
endforeach () endforeach ()
add_custom_target(runtests) add_custom_target(runtests)
add_dependencies(runtests ${test_targets}) add_dependencies(runtests ${test_targets})
if (MSVC)
set_target_properties(${testdata_targets} PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD TRUE)
set_target_properties(${test_targets} PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD TRUE)
set_target_properties(testdata runtests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD TRUE)
endif ()
endfunction () endfunction ()
endif () # AOM_TEST_TEST_CMAKE_ endif () # AOM_TEST_TEST_CMAKE_