How to build skottie2movie statically linked on linux?

139 views
Skip to first unread message

Marcus Stenbeck

unread,
Mar 16, 2021, 8:04:09 PM3/16/21
to skia-discuss
I'm trying to build a statically linked version of skottie2movie on linux. I get it started but here's the failing build output. I'm using the launcher.gcr.io/google/clang-debian9 docker image as a base.

root@727eae5c743e:/SRC# bin/gn gen out/Skottie2Movie --args='cc="clang" cxx="clang++" is_official_build=true skia_enable_tools=true skia_use_ffmpeg=true'
Done. Made 206 targets from 61 files in 276ms
root@727eae5c743e:/SRC# ninja -C out/Skottie2Movie skottie2movieninja: Entering directory `out/Skottie2Movie'
[305/1045] compile ../../tools/gpu/BackendSurfaceFactory.cpp
FAILED: obj/tools/gpu/gpu_tool_utils.BackendSurfaceFactory.o 
clang++ -MD -MF obj/tools/gpu/gpu_tool_utils.BackendSurfaceFactory.o.d -DSK_ENABLE_DISCRETE_GPU -DNDEBUG -DSK_GAMMA_APPLY_TO_A8 -DSK_GL -DSK_SUPPORT_PDF -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_USE_LIBGIFCODEC -DSK_CODEC_DECODES_PNG -DSK_ENCODE_PNG -DSK_CODEC_DECODES_RAW -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_WEBP -DSK_XML -DSK_R32_SHIFT=16 -I../../include/third_party/vulkan -I../.. -I../../third_party/externals/libgifcodec -I../.. -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -O3 -fdata-sections -ffunction-sections -Wno-sign-conversion -Wno-unused-parameter -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../tools/gpu/BackendSurfaceFactory.cpp -o obj/tools/gpu/gpu_tool_utils.BackendSurfaceFactory.o
../../tools/gpu/BackendSurfaceFactory.cpp:78:44: error: no member named 'createTestingOnlyBackendRenderTarget' in 'GrGpu'
    auto bert = dContext->priv().getGpu()->createTestingOnlyBackendRenderTarget(
                ~~~~~~~~~~~~~~~~~~~~~~~~~  ^
../../tools/gpu/BackendSurfaceFactory.cpp:86:18: error: no member named 'deleteTestingOnlyBackendRenderTarget' in 'GrGpu'
            gpu->deleteTestingOnlyBackendRenderTarget(rc->fRenderTarget);
            ~~~  ^
2 errors generated.
[311/1045] compile ../../tools/gpu/ProxyUtils.cpp
FAILED: obj/tools/gpu/gpu_tool_utils.ProxyUtils.o 
clang++ -MD -MF obj/tools/gpu/gpu_tool_utils.ProxyUtils.o.d -DSK_ENABLE_DISCRETE_GPU -DNDEBUG -DSK_GAMMA_APPLY_TO_A8 -DSK_GL -DSK_SUPPORT_PDF -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_USE_LIBGIFCODEC -DSK_CODEC_DECODES_PNG -DSK_ENCODE_PNG -DSK_CODEC_DECODES_RAW -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_WEBP -DSK_XML -DSK_R32_SHIFT=16 -I../../include/third_party/vulkan -I../.. -I../../third_party/externals/libgifcodec -I../.. -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -O3 -fdata-sections -ffunction-sections -Wno-sign-conversion -Wno-unused-parameter -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../tools/gpu/ProxyUtils.cpp -o obj/tools/gpu/gpu_tool_utils.ProxyUtils.o
In file included from ../../tools/gpu/ProxyUtils.cpp:8:
../../tools/gpu/ProxyUtils.h:36:34: error: unknown type name 'GrGeometryProcessor'; did you mean 'GrXferProcessor'?
                                 GrGeometryProcessor*,
                                 ^~~~~~~~~~~~~~~~~~~
                                 GrXferProcessor
../../src/gpu/GrXferProcessor.h:59:7: note: 'GrXferProcessor' declared here
class GrXferProcessor : public GrProcessor, public GrNonAtomicRef<GrXferProcessor> {
      ^
1 error generated.
[312/1045] compile ../../tools/gpu/GrTest.cpp
FAILED: obj/tools/gpu/gpu_tool_utils.GrTest.o 
clang++ -MD -MF obj/tools/gpu/gpu_tool_utils.GrTest.o.d -DSK_ENABLE_DISCRETE_GPU -DNDEBUG -DSK_GAMMA_APPLY_TO_A8 -DSK_GL -DSK_SUPPORT_PDF -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_USE_LIBGIFCODEC -DSK_CODEC_DECODES_PNG -DSK_ENCODE_PNG -DSK_CODEC_DECODES_RAW -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_WEBP -DSK_XML -DSK_R32_SHIFT=16 -I../../include/third_party/vulkan -I../.. -I../../third_party/externals/libgifcodec -I../.. -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -O3 -fdata-sections -ffunction-sections -Wno-sign-conversion -Wno-unused-parameter -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../tools/gpu/GrTest.cpp -o obj/tools/gpu/gpu_tool_utils.GrTest.o
../../tools/gpu/GrTest.cpp:118:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(AAConvexPathOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:119:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(AAFlatteningConvexPathOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:120:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(AAHairlineOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:121:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(AAStrokeRectOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:122:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(CircleOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:123:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(DashOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:124:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(DefaultPathOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:125:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(DIEllipseOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:126:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(EllipseOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:127:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(FillRectOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:128:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(GrAtlasTextOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:129:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(DrawAtlasOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:130:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(DrawVerticesOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:131:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(NonAALatticeOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:132:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(NonAAStrokeRectOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:133:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(ShadowRRectOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:134:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(SmallPathOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:135:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(RegionOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
../../tools/gpu/GrTest.cpp:136:1: error: unknown type name 'SkRandom'
DRAW_OP_TEST_EXTERN(RRectOp);
^
../../tools/gpu/GrTest.cpp:114:46: note: expanded from macro 'DRAW_OP_TEST_EXTERN'
    extern GrOp::Owner Op##__Test(GrPaint&&, SkRandom*, \
                                             ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
ninja: build stopped: subcommand failed. 

Marcus Stenbeck

unread,
Mar 18, 2021, 5:11:31 AM3/18/21
to skia-discuss
I sorted it out by commenting the gpu-related code in skottie2movie.cpp

Tobias Wood

unread,
Jun 28, 2021, 5:26:54 PM6/28/21
to skia-discuss

Hello,

I've hit the same set of errors:

error: no member named 'createTestingOnlyBackendRenderTarget' in 'GrGpu'

error: no member named 'deleteTestingOnlyBackendRenderTarget' in 'GrGpu'

error: unknown type name 'SkRandom'


However, I'm compiling on Mac. I am also trying to do something very non-standard, which is compile the Skia Tools via the vcpkg port. Hence I'm not sure what other debugging information to provide but I can do so if someone gives me a pointer.


Does anyone have any idea what the underlying cause of these errors is?


Thanks in advance

Tobias Wood

unread,
Jun 28, 2021, 5:39:53 PM6/28/21
to skia-discuss
Okay - one more bit of debugging information - these errors only occur when `is_official_build=true`. If I set that to false, I can compile okay.

Not sure I've figured out the vcpkg install step yet, but at least compilation proceeds.

Any help gratefully received!

Reply all
Reply to author
Forward
0 new messages