blob: 281a3f5e491a301b8c1689e6211fecec0b4d2654 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/ui.gni")
import("//sky/engine/build/scripts/scripts.gni")
import("//sky/engine/config.gni")
import("//testing/test.gni")
# Most targets in this file are private actions so use that as the default.
visibility = [ ":*" ]
sky_platform_output_dir = "$root_gen_dir/sky/platform"
action("font_family_names") {
script = "../build/scripts/make_names.py"
font_family_names_in = "fonts/FontFamilyNames.in"
inputs = make_names_files + [ font_family_names_in ]
outputs = [
"$sky_platform_output_dir/FontFamilyNames.cpp",
"$sky_platform_output_dir/FontFamilyNames.h",
]
args = [
rebase_path(font_family_names_in, root_build_dir),
"--output_dir",
rebase_path(sky_platform_output_dir, root_build_dir),
]
}
action("runtime_enabled_features") {
script = "../build/scripts/make_runtime_features.py"
runtime_enabled_features_in = "RuntimeEnabledFeatures.in"
inputs = scripts_for_in_files + [
runtime_enabled_features_in,
"../build/scripts/templates/RuntimeEnabledFeatures.cpp.tmpl",
"../build/scripts/templates/RuntimeEnabledFeatures.h.tmpl",
]
outputs = [
"$sky_platform_output_dir/RuntimeEnabledFeatures.cpp",
"$sky_platform_output_dir/RuntimeEnabledFeatures.h",
]
args = [
rebase_path(runtime_enabled_features_in, root_build_dir),
"--output_dir",
rebase_path(sky_platform_output_dir, root_build_dir),
]
}
action("color_data") {
script = "../build/scripts/gperf.py"
color_data_gperf = "ColorData.gperf"
inputs = [
color_data_gperf,
]
output_file = "$sky_platform_output_dir/ColorData.cpp"
outputs = [
output_file,
]
args = [
gperf_exe,
"--key-positions=*",
"-D",
"-s",
"2",
rebase_path(color_data_gperf, root_build_dir),
"--output-file=" + rebase_path(output_file, root_build_dir),
]
}
group("make_platform_generated") {
visibility += [ ":*" ]
deps = [
":color_data",
":font_family_names",
":runtime_enabled_features",
]
}
source_set("platform") {
visibility += [ "//sky/*" ]
sources = [
"AsyncMethodRunner.h",
"CalculationValue.h",
"CheckedInt.h",
"Clock.cpp",
"Clock.h",
"ColorSuggestion.h",
"ContentType.cpp",
"ContentType.h",
"DateComponents.cpp",
"DateComponents.h",
"Decimal.cpp",
"Decimal.h",
"EventDispatchForbiddenScope.h",
"FloatConversion.h",
"HostWindow.h",
"JSONValues.cpp",
"JSONValues.h",
"KeyboardCodes.h",
"Language.cpp",
"Language.h",
"LayoutTestSupport.cpp",
"LayoutTestSupport.h",
"LayoutUnit.h",
"Length.cpp",
"Length.h",
"LengthBox.cpp",
"LengthBox.h",
"LengthFunctions.cpp",
"LengthFunctions.h",
"LengthPoint.h",
"LengthSize.h",
"Logging.cpp",
"Logging.h",
"MIMETypeRegistry.cpp",
"MIMETypeRegistry.h",
"NotImplemented.cpp",
"NotImplemented.h",
"ParsingUtilities.h",
"Partitions.cpp",
"Partitions.h",
"PlatformExport.h",
"PlatformThreadData.cpp",
"PlatformThreadData.h",
"PurgeableVector.cpp",
"PurgeableVector.h",
"RefCountedSupplement.h",
"ScriptForbiddenScope.cpp",
"ScriptForbiddenScope.h",
"SharedBuffer.cpp",
"SharedBuffer.h",
"SharedBufferChunkReader.cpp",
"SharedBufferChunkReader.h",
"SharedTimer.cpp",
"SharedTimer.h",
"Supplementable.h",
"ThreadTimers.cpp",
"ThreadTimers.h",
"Timer.cpp",
"Timer.h",
"TraceEvent.h",
"WebThread.cpp",
"Widget.cpp",
"Widget.h",
"WindowsKeyboardCodes.h",
"animation/AnimationUtilities.h",
"animation/AnimationValue.h",
"animation/KeyframeValueList.cpp",
"animation/KeyframeValueList.h",
"animation/TimingFunction.cpp",
"animation/TimingFunction.h",
"animation/UnitBezier.h",
"exported/Platform.cpp",
"exported/ServiceProvider.cpp",
"exported/WebArrayBuffer.cpp",
"exported/WebCString.cpp",
"exported/WebCommon.cpp",
"exported/WebData.cpp",
"exported/WebImageSkia.cpp",
"exported/WebString.cpp",
"exported/WebURL.cpp",
"exported/linux/WebFontInfo.cpp",
"exported/linux/WebFontRenderStyle.cpp",
"fonts/AlternateFontFamily.h",
"fonts/Character.cpp",
"fonts/Character.h",
"fonts/CustomFontData.h",
"fonts/FixedPitchFontType.h",
"fonts/Font.cpp",
"fonts/Font.h",
"fonts/FontBaseline.h",
"fonts/FontCache.cpp",
"fonts/FontCache.h",
"fonts/FontCacheClient.h",
"fonts/FontCacheKey.h",
"fonts/FontCustomPlatformData.h",
"fonts/FontData.cpp",
"fonts/FontData.h",
"fonts/FontDataCache.cpp",
"fonts/FontDataCache.h",
"fonts/FontDescription.cpp",
"fonts/FontDescription.h",
"fonts/FontFaceCreationParams.h",
"fonts/FontFallbackList.cpp",
"fonts/FontFallbackList.h",
"fonts/FontFamily.cpp",
"fonts/FontFamily.h",
"fonts/FontFeatureSettings.cpp",
"fonts/FontFeatureSettings.h",
"fonts/FontMetrics.h",
"fonts/FontOrientation.h",
"fonts/FontPlatformData.cpp",
"fonts/FontPlatformData.h",
"fonts/FontPlatformFeatures.h",
"fonts/FontRenderStyle.h",
"fonts/FontSelector.h",
"fonts/FontSmoothingMode.h",
"fonts/FontTraits.h",
"fonts/FontWidthVariant.h",
"fonts/GenericFontFamilySettings.cpp",
"fonts/GenericFontFamilySettings.h",
"fonts/Glyph.h",
"fonts/GlyphBuffer.h",
"fonts/GlyphMetricsMap.h",
"fonts/GlyphPage.h",
"fonts/GlyphPageTreeNode.cpp",
"fonts/GlyphPageTreeNode.h",
"fonts/Latin1TextIterator.h",
"fonts/SegmentedFontData.cpp",
"fonts/SegmentedFontData.h",
"fonts/SimpleFontData.cpp",
"fonts/SimpleFontData.h",
"fonts/TextBlob.h",
"fonts/TextRenderingMode.h",
"fonts/TypesettingFeatures.h",
"fonts/VDMXParser.cpp",
"fonts/VDMXParser.h",
"fonts/WidthCache.h",
"fonts/WidthIterator.cpp",
"fonts/WidthIterator.h",
"fonts/android/FontCacheAndroid.cpp",
"fonts/harfbuzz/FontHarfBuzz.cpp",
"fonts/harfbuzz/HarfBuzzFace.cpp",
"fonts/harfbuzz/HarfBuzzFace.h",
"fonts/harfbuzz/HarfBuzzFaceSkia.cpp",
"fonts/harfbuzz/HarfBuzzShaper.cpp",
"fonts/harfbuzz/HarfBuzzShaper.h",
"fonts/linux/FontCacheLinux.cpp",
"fonts/linux/FontPlatformDataLinux.cpp",
"fonts/opentype/OpenTypeSanitizer.cpp",
"fonts/opentype/OpenTypeSanitizer.h",
"fonts/opentype/OpenTypeTypes.h",
"fonts/skia/FontCacheSkia.cpp",
"fonts/skia/FontCustomPlatformDataSkia.cpp",
"fonts/skia/FontPlatformDataSkia.cpp",
"fonts/skia/SimpleFontDataSkia.cpp",
"geometry/FloatBox.h",
"geometry/FloatBoxExtent.h",
"geometry/FloatPoint.cpp",
"geometry/FloatPoint.h",
"geometry/FloatPoint3D.cpp",
"geometry/FloatPoint3D.h",
"geometry/FloatQuad.cpp",
"geometry/FloatQuad.h",
"geometry/FloatRect.cpp",
"geometry/FloatRect.h",
"geometry/FloatRoundedRect.cpp",
"geometry/FloatRoundedRect.h",
"geometry/FloatSize.cpp",
"geometry/FloatSize.h",
"geometry/IntPoint.h",
"geometry/IntRect.cpp",
"geometry/IntRect.h",
"geometry/IntRectExtent.h",
"geometry/IntSize.h",
"geometry/IntSizeHash.h",
"geometry/LayoutBoxExtent.cpp",
"geometry/LayoutBoxExtent.h",
"geometry/LayoutPoint.h",
"geometry/LayoutRect.cpp",
"geometry/LayoutRect.h",
"geometry/LayoutSize.h",
"geometry/Region.cpp",
"geometry/Region.h",
"geometry/RoundedRect.cpp",
"geometry/RoundedRect.h",
"geometry/TransformState.cpp",
"geometry/TransformState.h",
"graphics/BitmapImage.cpp",
"graphics/BitmapImage.h",
"graphics/Color.cpp",
"graphics/Color.h",
"graphics/ColorSpace.cpp",
"graphics/ColorSpace.h",
"graphics/CrossfadeGeneratedImage.cpp",
"graphics/CrossfadeGeneratedImage.h",
"graphics/DashArray.h",
"graphics/DecodingImageGenerator.cpp",
"graphics/DecodingImageGenerator.h",
"graphics/DeferredImageDecoder.cpp",
"graphics/DeferredImageDecoder.h",
"graphics/DisplayList.cpp",
"graphics/DisplayList.h",
"graphics/DrawLooperBuilder.cpp",
"graphics/DrawLooperBuilder.h",
"graphics/FrameData.cpp",
"graphics/FrameData.h",
"graphics/GeneratedImage.cpp",
"graphics/GeneratedImage.h",
"graphics/Gradient.cpp",
"graphics/Gradient.h",
"graphics/GradientGeneratedImage.cpp",
"graphics/GradientGeneratedImage.h",
"graphics/GraphicsContext.cpp",
"graphics/GraphicsContext.h",
"graphics/GraphicsContextState.cpp",
"graphics/GraphicsContextState.h",
"graphics/GraphicsContextStateSaver.h",
"graphics/GraphicsTypes.cpp",
"graphics/GraphicsTypes.h",
"graphics/Image.cpp",
"graphics/Image.h",
"graphics/ImageBuffer.cpp",
"graphics/ImageBuffer.h",
"graphics/ImageBufferClient.h",
"graphics/ImageBufferSurface.cpp",
"graphics/ImageBufferSurface.h",
"graphics/ImageDecodingStore.cpp",
"graphics/ImageDecodingStore.h",
"graphics/ImageFilter.cpp",
"graphics/ImageFilter.h",
"graphics/ImageFrameGenerator.cpp",
"graphics/ImageFrameGenerator.h",
"graphics/ImageObserver.cpp",
"graphics/ImageObserver.h",
"graphics/ImageOrientation.cpp",
"graphics/ImageOrientation.h",
"graphics/ImageSource.cpp",
"graphics/ImageSource.h",
"graphics/Path.cpp",
"graphics/Path.h",
"graphics/PathTraversalState.cpp",
"graphics/PathTraversalState.h",
"graphics/Pattern.cpp",
"graphics/Pattern.h",
"graphics/RegionTracker.cpp",
"graphics/RegionTracker.h",
"graphics/StrokeData.cpp",
"graphics/StrokeData.h",
"graphics/ThreadSafeDataTransport.cpp",
"graphics/ThreadSafeDataTransport.h",
"graphics/UnacceleratedImageBufferSurface.cpp",
"graphics/UnacceleratedImageBufferSurface.h",
"graphics/filters/DistantLightSource.cpp",
"graphics/filters/DistantLightSource.h",
"graphics/filters/FEBlend.cpp",
"graphics/filters/FEBlend.h",
"graphics/filters/FEColorMatrix.cpp",
"graphics/filters/FEColorMatrix.h",
"graphics/filters/FEComponentTransfer.cpp",
"graphics/filters/FEComponentTransfer.h",
"graphics/filters/FEComposite.cpp",
"graphics/filters/FEComposite.h",
"graphics/filters/FEConvolveMatrix.cpp",
"graphics/filters/FEConvolveMatrix.h",
"graphics/filters/FEDiffuseLighting.cpp",
"graphics/filters/FEDiffuseLighting.h",
"graphics/filters/FEDisplacementMap.cpp",
"graphics/filters/FEDisplacementMap.h",
"graphics/filters/FEDropShadow.cpp",
"graphics/filters/FEDropShadow.h",
"graphics/filters/FEFlood.cpp",
"graphics/filters/FEFlood.h",
"graphics/filters/FEGaussianBlur.cpp",
"graphics/filters/FEGaussianBlur.h",
"graphics/filters/FELighting.cpp",
"graphics/filters/FELighting.h",
"graphics/filters/FEMerge.cpp",
"graphics/filters/FEMerge.h",
"graphics/filters/FEMorphology.cpp",
"graphics/filters/FEMorphology.h",
"graphics/filters/FEOffset.cpp",
"graphics/filters/FEOffset.h",
"graphics/filters/FESpecularLighting.cpp",
"graphics/filters/FESpecularLighting.h",
"graphics/filters/FETile.cpp",
"graphics/filters/FETile.h",
"graphics/filters/FETurbulence.cpp",
"graphics/filters/FETurbulence.h",
"graphics/filters/Filter.h",
"graphics/filters/FilterEffect.cpp",
"graphics/filters/FilterEffect.h",
"graphics/filters/FilterOperation.cpp",
"graphics/filters/FilterOperation.h",
"graphics/filters/FilterOperations.cpp",
"graphics/filters/FilterOperations.h",
"graphics/filters/LightSource.cpp",
"graphics/filters/LightSource.h",
"graphics/filters/ParallelJobs.h",
"graphics/filters/PointLightSource.cpp",
"graphics/filters/PointLightSource.h",
"graphics/filters/SkiaImageFilterBuilder.cpp",
"graphics/filters/SkiaImageFilterBuilder.h",
"graphics/filters/SourceAlpha.cpp",
"graphics/filters/SourceAlpha.h",
"graphics/filters/SourceGraphic.cpp",
"graphics/filters/SourceGraphic.h",
"graphics/filters/SpotLightSource.cpp",
"graphics/filters/SpotLightSource.h",
"graphics/skia/GaneshUtils.cpp",
"graphics/skia/GaneshUtils.h",
"graphics/skia/NativeImageSkia.cpp",
"graphics/skia/NativeImageSkia.h",
"graphics/skia/SkSizeHash.h",
"graphics/skia/SkiaUtils.cpp",
"graphics/skia/SkiaUtils.h",
"heap/Handle.h",
"image-decoders/ImageDecoder.cpp",
"image-decoders/ImageDecoder.h",
"image-decoders/ImageFrame.cpp",
"image-decoders/ImageFrame.h",
"image-decoders/bmp/BMPImageDecoder.cpp",
"image-decoders/bmp/BMPImageDecoder.h",
"image-decoders/bmp/BMPImageReader.cpp",
"image-decoders/bmp/BMPImageReader.h",
"image-decoders/gif/GIFImageDecoder.cpp",
"image-decoders/gif/GIFImageDecoder.h",
"image-decoders/gif/GIFImageReader.cpp",
"image-decoders/gif/GIFImageReader.h",
"image-decoders/ico/ICOImageDecoder.cpp",
"image-decoders/ico/ICOImageDecoder.h",
"image-decoders/jpeg/JPEGImageDecoder.cpp",
"image-decoders/jpeg/JPEGImageDecoder.h",
"image-decoders/png/PNGImageDecoder.cpp",
"image-decoders/png/PNGImageDecoder.h",
"image-encoders/skia/JPEGImageEncoder.cpp",
"image-encoders/skia/JPEGImageEncoder.h",
"image-encoders/skia/PNGImageEncoder.cpp",
"image-encoders/skia/PNGImageEncoder.h",
"text/BidiCharacterRun.cpp",
"text/BidiCharacterRun.h",
"text/BidiContext.cpp",
"text/BidiContext.h",
"text/BidiResolver.h",
"text/BidiRunList.h",
"text/BidiTextRun.cpp",
"text/BidiTextRun.h",
"text/DateTimeFormat.cpp",
"text/DateTimeFormat.h",
"text/DecodeEscapeSequences.h",
"text/LineEnding.cpp",
"text/LineEnding.h",
"text/LocaleToScriptMapping.cpp",
"text/LocaleToScriptMapping.h",
"text/NonCJKGlyphOrientation.h",
"text/ParserUtilities.h",
"text/QuotedPrintable.cpp",
"text/QuotedPrintable.h",
"text/SegmentedString.cpp",
"text/SegmentedString.h",
"text/StringTruncator.cpp",
"text/StringTruncator.h",
"text/SuffixTree.h",
"text/SurrogatePairAwareTextIterator.cpp",
"text/SurrogatePairAwareTextIterator.h",
"text/TextBoundaries.cpp",
"text/TextBoundaries.h",
"text/TextBreakIterator.cpp",
"text/TextBreakIterator.h",
"text/TextBreakIteratorICU.cpp",
"text/TextBreakIteratorInternalICU.cpp",
"text/TextBreakIteratorInternalICU.h",
"text/TextCheckerClient.h",
"text/TextChecking.h",
"text/TextDecoration.h",
"text/TextDirection.h",
"text/TextPath.h",
"text/TextRun.cpp",
"text/TextRun.h",
"text/TextRunIterator.h",
"text/TextStream.cpp",
"text/TextStream.h",
"text/UnicodeBidi.h",
"text/UnicodeRange.cpp",
"text/UnicodeRange.h",
"text/UnicodeUtilities.cpp",
"text/UnicodeUtilities.h",
"transforms/AffineTransform.cpp",
"transforms/AffineTransform.h",
"transforms/IdentityTransformOperation.h",
"transforms/InterpolatedTransformOperation.cpp",
"transforms/InterpolatedTransformOperation.h",
"transforms/Matrix3DTransformOperation.cpp",
"transforms/Matrix3DTransformOperation.h",
"transforms/MatrixTransformOperation.cpp",
"transforms/MatrixTransformOperation.h",
"transforms/PerspectiveTransformOperation.cpp",
"transforms/PerspectiveTransformOperation.h",
"transforms/RotateTransformOperation.cpp",
"transforms/RotateTransformOperation.h",
"transforms/ScaleTransformOperation.cpp",
"transforms/ScaleTransformOperation.h",
"transforms/SkewTransformOperation.cpp",
"transforms/SkewTransformOperation.h",
"transforms/TransformOperation.h",
"transforms/TransformOperations.cpp",
"transforms/TransformOperations.h",
"transforms/TransformationMatrix.cpp",
"transforms/TransformationMatrix.h",
"transforms/TranslateTransformOperation.cpp",
"transforms/TranslateTransformOperation.h",
"weborigin/KURL.cpp",
"weborigin/KURL.h",
"weborigin/KURLHash.h",
"weborigin/KnownPorts.cpp",
"weborigin/KnownPorts.h",
"weborigin/Referrer.h",
"weborigin/ReferrerPolicy.h",
"weborigin/SecurityPolicy.cpp",
"weborigin/SecurityPolicy.h",
]
if (!is_mac) {
sources += [
"fonts/opentype/OpenTypeVerticalData.cpp",
"fonts/opentype/OpenTypeVerticalData.h",
]
}
if (is_ios || is_mac) {
sources += [ "fonts/apple/FontPlatformDataApple.cpp" ]
}
# Add in the generated files.
sources += get_target_outputs(":font_family_names") +
get_target_outputs(":runtime_enabled_features") +
get_target_outputs(":color_data")
configs += [
"//sky/engine:config",
"//sky/engine:non_test_config",
]
defines = [
"BLINK_PLATFORM_IMPLEMENTATION=1",
"INSIDE_BLINK",
]
include_dirs = [ "$root_build_dir" ]
deps = [
":make_platform_generated",
"//base:base",
"//mojo/application",
"//mojo/environment:chromium",
"//mojo/public/c/system",
"//mojo/public/cpp/bindings",
"//mojo/public/cpp/system",
"//mojo/public/cpp/utility",
"//mojo/services/network/public/interfaces",
"//skia",
"//sky/engine/wtf",
"//third_party/harfbuzz-ng",
"//third_party/iccjpeg",
"//third_party/icu",
"//third_party/libpng",
"//third_party/ots",
"//third_party/qcms",
"//third_party:jpeg",
"//url",
]
forward_dependent_configs_from = [
"//skia",
"//third_party:jpeg",
"//third_party/iccjpeg",
"//third_party/libpng",
"//third_party/ots",
"//third_party/qcms",
"//url",
]
if (is_android) {
# Add in some Linux files also shared with Android.
set_sources_assignment_filter([])
sources += [
"exported/linux/WebFontRenderStyle.cpp",
"fonts/linux/FontPlatformDataLinux.cpp",
]
set_sources_assignment_filter(sources_assignment_filter)
}
if (is_linux) {
direct_dependent_configs = [ "//build/config/linux:fontconfig" ]
}
if (target_cpu == "arm") {
deps += [ ":sky_arm_neon" ]
}
}
test("platform_unittests") {
visibility += [ "//sky/*" ]
output_name = "sky_platform_unittests"
sources = [
"ClockTest.cpp",
"DecimalTest.cpp",
"LayoutUnitTest.cpp",
"PurgeableVectorTest.cpp",
"SharedBufferTest.cpp",
"TestingPlatformSupport.cpp",
"TestingPlatformSupport.h",
"animation/TimingFunctionTest.cpp",
"animation/UnitBezierTest.cpp",
"fonts/FontCacheTest.cpp",
"fonts/FontDescriptionTest.cpp",
"fonts/FontTest.cpp",
"fonts/GlyphPageTreeNodeTest.cpp",
"fonts/android/FontCacheAndroidTest.cpp",
"geometry/FloatBoxTest.cpp",
"geometry/FloatBoxTestHelpers.cpp",
"geometry/FloatRoundedRectTest.cpp",
"geometry/RegionTest.cpp",
"geometry/RoundedRectTest.cpp",
"graphics/GraphicsContextTest.cpp",
"graphics/ThreadSafeDataTransportTest.cpp",
"image-decoders/ImageDecoderTest.cpp",
"testing/RunAllTests.cpp",
"text/BidiResolverTest.cpp",
"text/SegmentedStringTest.cpp",
"text/UnicodeUtilitiesTest.cpp",
"transforms/TransformOperationsTest.cpp",
"transforms/TransformationMatrixTest.cpp",
"weborigin/KURLTest.cpp",
"weborigin/SecurityPolicyTest.cpp",
]
configs += [ "//sky/engine:config" ]
deps = [
":platform",
"//base",
"//base/allocator",
"//base/test:test_support",
"//skia",
"//testing/gmock",
"//testing/gtest",
"//sky/engine/wtf",
"//sky/engine/wtf:test_support",
"//url",
]
# TODO(abarth): This is a lie - this test is not embedded in an environment
# that injects the system thunks, so system calls don't actually work. This
# just tricks the linker into thinking that an implementation of these calls
# will be injected at runtime so the link succeeds.
deps += [ "//mojo/public/platform/native:system" ]
defines = [ "INSIDE_BLINK" ]
include_dirs = [ "$root_build_dir" ]
}
if (target_cpu == "arm") {
source_set("sky_arm_neon") {
sources = [
"graphics/cpu/arm/WebGLImageConversionNEON.h",
"graphics/cpu/arm/filters/FEBlendNEON.h",
"graphics/cpu/arm/filters/FECompositeArithmeticNEON.h",
"graphics/cpu/arm/filters/FEGaussianBlurNEON.h",
"graphics/cpu/arm/filters/NEONHelpers.h",
]
# The *NEON.cpp files fail to compile when -mthumb is passed. Force
# them to build in ARM mode.
# See https://bugs.webkit.org/show_bug.cgi?id=62916.
# TODO(GYP)
#'cflags': ['-marm'],
# 'conditions': [
# ['OS=="android"', {
# 'cflags!': ['-mthumb'],
# }],
# ],
}
}