# Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary # source code may only be used and distributed under the Widevine License # Agreement. # # Any top-level targets in this file (and their dependencies) will be built by # the CE CDM's ./build.py build system. Refer to the distribution package's # README for details. { 'includes': [ 'platform_properties.gypi', ], 'variables': { # Directory where OEMCrypto header, test, and reference files lives. 'oemcrypto_dir': '../oemcrypto', # Directory where widevine utilities live. 'util_dir': '../util', 'third_party_path%': '../third_party', 'metrics_target': 'cdm.gyp:metrics_proto', 'device_files_target': 'cdm.gyp:device_files', # The path to the prebuilt CDM to test against. (iOS only) 'prebuilt_cdm_path%': '', # The path to the include directory. 'test_include_dir%': 'include', 'expected_cdm_version%': '', 'supports_dynamic_perf_test%': 0, 'json_dir': '../third_party/nlohmann-json', 'jsmn_dir': '../third_party/jsmn', }, 'targets': [{ 'toolsets' : [ 'target' ], 'target_name': 'widevine_ce_cdm_unittest', 'sources': [ 'test/cdm_test_main.cpp', 'test/cdm_test_runner.cpp', 'test/create_test_file_system.cpp', # The test host, which is required for all test suites on CE. 'test/test_host.cpp', 'test/test_host.h', '../util/test/test_sleep.cpp', ], 'includes': [ '../oemcrypto/test/oemcrypto_unittests.gypi', '../oemcrypto/odk/src/kdo.gypi', '../oemcrypto/odk/test/odk_test.gypi', '../oemcrypto/util/oec_ref_util_unittests.gypi', 'cdm_unittests.gypi', 'core_unittests.gypi', 'util_unittests.gypi', ], 'dependencies': [ 'cdm.gyp:widevine_ce_cdm_static', '../oemcrypto/util/oec_ref_util.gyp:oec_ref_util', '../third_party/googletest.gyp:gmock', '../third_party/googletest.gyp:gtest', ], 'msvs_settings': { 'VCLinkerTool': { # Additionally, since they are loaded locally, suppress these # warnings. 'AdditionalOptions': [ '/IGNORE:4049', '/IGNORE:4217', ], }, }, 'conditions': [ ['OS=="ios"', { 'type': 'loadable_module', 'mac_xctest_bundle': '1', 'defines': [ 'GTEST_FILTER="<(gtest_filter)"', ], 'dependencies': [ 'dummy_app', ], 'sources': [ 'test/gtest_xctest_wrapper.mm', ], 'xcode_settings': { 'BUNDLE_LOADER': '$(TEST_HOST)', 'INFOPLIST_FILE': 'test/info.plist', 'PRODUCT_BUNDLE_IDENTIFIER': 'EQHXZ8M8AV.widevine_ce_cdm_unittest', 'TEST_HOST': '<(PRODUCT_DIR)/dummy_app.app/dummy_app', 'WRAPPER_EXTENSION': 'xctest', }, }, { 'type': 'executable', }], ['oemcrypto_lib=="level3"', { 'sources': [ # The test impl of OEMCrypto_Level3FileSystem and its factory. 'test/level3_file_system_ce_test.h', 'test/level3_file_system_ce_test.cpp', 'test/level3_file_system_ce_test_factory.cpp', ], 'conditions': [ ['oemcrypto_adapter_type=="dynamic" ', { 'dependencies': [ '../oemcrypto/level3/oec_level3.gyp:oec_level3_dynamic', ], }, { 'dependencies': [ '../oemcrypto/level3/oec_level3.gyp:oec_level3_static', ], }], ], }], ['oemcrypto_lib=="target"', { 'dependencies': [ '<(oemcrypto_gyp_path)', ], }], ], }], 'conditions': [ ['supports_dynamic_perf_test', { 'targets': [{ 'target_name': 'widevine_perf_test_dynamic', 'type': 'executable', 'sources': [ '../core/test/config_test_env.cpp', '../core/test/http_socket.cpp', '../core/test/license_request.cpp', '../core/test/url_request.cpp', '../util/src/string_conversions.cpp', '../util/src/string_format.cpp', '../util/test/test_sleep.cpp', 'src/log.cpp', 'src/logger_global.cpp', 'test/perf_test.cpp', 'test/perf_test_dynamic.cpp', 'test/test_host.cpp', ], 'includes': [ '../util/libssl_dependency.gypi' ], 'include_dirs': [ '../core/include', '../core/test', '../oemcrypto/include', '../util/include', '../util/test', 'include', ], 'dependencies': [ '../cdm/cdm.gyp:device_files', '../third_party/googletest.gyp:gmock', '../third_party/googletest.gyp:gtest', '<(device_files_target)', ], 'conditions': [ ['OS=="linux"', { 'libraries': [ '-ldl' ], }], ], }], }], # condition: supports_dynamic_perf_test ['prebuilt_cdm_path!=""', { 'targets': [{ 'target_name': 'widevine_check_version', 'type': 'executable', 'sources': [ 'test/test_version.cpp', ], 'include_dirs': [ '<(test_include_dir)', ], 'libraries': [ '<(prebuilt_cdm_path)', ], }], }], ['OS=="ios"', { 'targets': [{ 'toolsets' : [ 'target' ], 'target_name': 'dummy_app', 'type': 'executable', 'mac_bundle': '1', 'sources': [ 'test/dummy_app.mm', ], 'libraries': [ 'CoreFoundation.framework', 'UIKit.framework', ], 'xcode_settings': { 'INFOPLIST_FILE': 'test/info.plist', 'PROVISIONING_PROFILE_SPECIFIER': 'Google Development', }, 'conditions': [ ['prebuilt_cdm_path!=""', { 'copies': [{ 'destination': '<(PRODUCT_DIR)/dummy_app.app/Frameworks', 'xcode_code_sign': 1, 'files': [ # GYP seems to always use relative paths here, even if they # start with '/'. '