1919
2020cmake_minimum_required (VERSION 3.12)
2121
22+ message ("" )
23+ message ("-- Hello Skia!" )
24+
2225include (ExternalProject)
2326include (ProcessorCount)
2427
2528ProcessorCount(N)
2629
30+
2731option (USE_SKIA_SYSTEM_LIBS "Use skia (third-party) system libraries on Linux" ON )
2832option (LINUX_DEPLOY "Linux Deploy" OFF )
2933option (MAC_DEPLOY "Mac Deploy" OFF )
@@ -35,87 +39,20 @@ endif()
3539
3640set (SKIA_SRC "${CMAKE_CURRENT_SOURCE_DIR} /skia" )
3741set (SKIA_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR} /skia" )
42+ message ("-- SKIA_SRC: ${SKIA_SRC} " )
43+ message ("-- SKIA_BUILD_DIR: ${SKIA_BUILD_DIR} " )
3844
39- if (APPLE )
40- set (USE_SKIA_SYSTEM_LIBS OFF )
41- endif ()
42-
43- if (${USE_SKIA_SYSTEM_LIBS} AND UNIX )
44- set (SKIA_ENABLE_EXTERNAL "true" )
45- else ()
46- set (SKIA_ENABLE_EXTERNAL "false" )
47- endif ()
48-
49- if (WIN32 )
50- set (GN_PATH ${SKIA_SRC} /bin/gn.exe)
51- set (SKIA_ARGS_EXTRA --ide=vs)
52- set (SKIA_BUILD_CMD msbuild all .sln)
53- if (${SYNC_SKIA_DEPS} )
54- set (SKIA_UPDATE_CMD python.exe "tools\\ git-sync-deps" )
55- else ()
56- set (SKIA_UPDATE_CMD :)
57- endif ()
58- set (SKIA_ARGS "target_os=\" windows\" host_os=\" win\" current_os=\" win\" target_cpu=\" x64\" is_component_build=true" )
59- set (SKIA_ARGS "${SKIA_ARGS} clang_win=\" C:\\ Program Files\\ LLVM\" cc=\" clang-cl\" cxx=\" clang-cl\" " )
60- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags=[\" -Wno-error\" ,\" /MD\" ,\" /O2\" ]" )
61- else ()
62- set (GN_PATH ${SKIA_SRC} /bin/gn)
63- set (SKIA_BUILD_CMD ninja -j${N} )
64- if (${USE_SKIA_SYSTEM_LIBS} )
65- set (SKIA_UPDATE_CMD true )
66- else ()
67- if (${SYNC_SKIA_DEPS} )
68- set (SKIA_UPDATE_CMD python3 "tools/git-sync-deps" )
69- else ()
70- set (SKIA_UPDATE_CMD true )
71- endif ()
72- endif ()
73- set (SKIA_ARGS "ar=\" ${CMAKE_AR} \" cc=\" ${CMAKE_C_COMPILER} \" cxx=\" ${CMAKE_CXX_COMPILER} \" " )
74- if (UNIX AND NOT APPLE )
75- if (${USE_EGL} )
76- set (SKIA_ARGS "${SKIA_ARGS} skia_use_egl=true" )
77- endif ()
78- set (SKIA_ARGS "${SKIA_ARGS} is_component_build=true" )
79- if (${LINUX_DEPLOY} )
80- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags=[\" -Wno-error\" ]" )
81- else ()
82- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags=[\" -Wno-error\" , \" -Wno-psabi\" ]" )
83- endif ()
84- endif ()
85- if (APPLE )
86- set (GN_PATH ${SKIA_SRC} /bin/macOS/gn-${CMAKE_HOST_SYSTEM_PROCESSOR} )
87- set (SKIA_UPDATE_CMD python3 "tools/git-sync-deps" )
88- set (SKIA_ARGS "${SKIA_ARGS} target_cpu=\" ${CMAKE_HOST_SYSTEM_PROCESSOR} \" " )
89- if (${MAC_DEPLOY} )
90- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags=[\" -Wno-error\" , \" -Wno-psabi\" , \" -mmacosx-version-min=12.7\" ]" )
91- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags_cc=[\" -frtti\" , \" -mmacosx-version-min=12.7\" ]" )
92- else ()
93- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags=[\" -Wno-error\" , \" -Wno-psabi\" ]" )
94- set (SKIA_ARGS "${SKIA_ARGS} extra_cflags_cc=[\" -frtti\" ]" )
95- endif ()
96- endif ()
97- endif ()
9845
99- set (SKIA_ARGS "${SKIA_ARGS} is_official_build=true is_debug=false" )
100- set (SKIA_ARGS "${SKIA_ARGS} skia_enable_pdf=false skia_enable_skottie=false skia_enable_tools=false skia_use_dng_sdk=false" )
101- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_expat=${SKIA_ENABLE_EXTERNAL} " )
102- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_libjpeg_turbo=${SKIA_ENABLE_EXTERNAL} " )
103- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_libpng=${SKIA_ENABLE_EXTERNAL} " )
104- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_libwebp=${SKIA_ENABLE_EXTERNAL} " )
105- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_icu=${SKIA_ENABLE_EXTERNAL} " )
106- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_harfbuzz=${SKIA_ENABLE_EXTERNAL} " )
107- if (WIN32 OR NOT ${USE_SKIA_SYSTEM_LIBS} )
108- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_zlib=${SKIA_ENABLE_EXTERNAL} " )
109- endif ()
110- if (UNIX AND NOT APPLE )
111- set (SKIA_ARGS "${SKIA_ARGS} skia_use_system_freetype2=${SKIA_ENABLE_EXTERNAL} " )
112- endif ()
113- if (APPLE )
114- set (SKIA_ARGS "${SKIA_ARGS} skia_use_libgifcodec=false" )
115- endif ()
46+ message ("-- Setting up variables to pass to ExternalProject_Add" )
47+ include (SetupSkiaVariables)
48+ message (" source code directory: ${SKIA_SRC} " )
49+ message (" build directory: ${SKIA_BUILD_DIR} " )
50+ message (" update command: ${SKIA_UPDATE_CMD} " )
51+ message (" build command: ${SKIA_BUILD_CMD} " )
52+ message (" skia argumentss: ${SKIA_ARGS} " )
11653
117- message ("-- skia args: ${SKIA_ARGS} " )
11854
55+ message ("-- Building skia as ExternalProject Engine" )
11956ExternalProject_Add(
12057 Engine
12158 SOURCE_DIR ${SKIA_SRC}
@@ -131,16 +68,12 @@ ExternalProject_Add(
13168 USES_TERMINAL_BUILD true
13269)
13370
71+
13472if (UNIX AND NOT APPLE )
135- include (GNUInstallDirs)
136- install (
137- FILES
138- ${SKIA_BUILD_DIR} /libskia.friction.so
139- DESTINATION
140- ${CMAKE_INSTALL_LIBDIR}
141- )
73+ #include(CopySkiaLibraryToInstallDir)
14274endif ()
14375
76+
14477if (WIN32 )
14578 add_custom_command (TARGET Engine POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${SKIA_BUILD_DIR} /skia.dll.lib ${SKIA_BUILD_DIR} /skia.lib)
14679endif ()
0 commit comments