Setup scripts for building skia on Android, some fixes
diff --git a/renderer/library/build.sh b/renderer/library/build.sh index b7c47f3..1d38da5 100755 --- a/renderer/library/build.sh +++ b/renderer/library/build.sh
@@ -1,7 +1,7 @@ #!/bin/bash - +set -e cd ../.. -./build.sh $@ +./build.sh "$@" cd renderer/library @@ -9,21 +9,17 @@ OPTION=$1 -if [ "$OPTION" = 'help' ] -then +if [ "$OPTION" = 'help' ]; then echo build.sh - build debug library echo build.sh clean - clean the build - echo build.sh release - build release library -elif [ "$OPTION" = "clean" ] -then + echo build.sh release - build release library +elif [ "$OPTION" = "clean" ]; then echo Cleaning renderer_library project ... premake5 clean -elif [ "$OPTION" = "release" ] -then +elif [ "$OPTION" = "release" ]; then premake5 --for-macos gmake && make config=release -j7 -elif [ "$OPTION" = "android" ] -then +elif [ "$OPTION" = "android" ]; then premake5 --for-android gmake && make config=release -j7 else premake5 --for-macos gmake && make -j7 -fi \ No newline at end of file +fi
diff --git a/renderer/library/build/premake5.lua b/renderer/library/build/premake5.lua index f2391b2..1435471 100644 --- a/renderer/library/build/premake5.lua +++ b/renderer/library/build/premake5.lua
@@ -27,17 +27,19 @@ optimize "On" configuration "for-android" - links {"rive"} - defines {"RIVE_HAS_OPENGL", "ANDROID", "GL_SILENCE_DEPRECATION"} - libdirs {"../../../build/bin/%{cfg.buildcfg}"} +links {"rive"} +defines {"RIVE_HAS_OPENGL", "ANDROID", "GL_SILENCE_DEPRECATION"} +libdirs {"../../../build/bin/%{cfg.buildcfg}"} configuration "for-macos" - links {"Cocoa.framework", "rive"} - defines {"RIVE_HAS_METAL", "RIVE_HAS_OPENGL"} - defines {"GL_SILENCE_DEPRECATION"} - includedirs {"../../dependencies/DiligentEngine_build/build/include"} - files {"../src/**.mm"} - libdirs {"../../../build/bin/%{cfg.buildcfg}", "../../dependencies/skia/out/Static"} +links {"Cocoa.framework", "rive"} +defines {"RIVE_HAS_METAL", "RIVE_HAS_OPENGL"} +defines {"GL_SILENCE_DEPRECATION"} +includedirs {"../../dependencies/DiligentEngine_build/build/include"} +files {"../src/**.mm"} +libdirs { + "../../../build/bin/%{cfg.buildcfg}", "../../dependencies/skia/out/Static" +} -- Clean Function -- newaction {
diff --git a/skia/dependencies/make_skia.sh b/skia/dependencies/make_skia.sh index 6927c45..598d04e 100755 --- a/skia/dependencies/make_skia.sh +++ b/skia/dependencies/make_skia.sh
@@ -19,7 +19,7 @@ git clone $SKIA_REPO else echo "Already have Skia, update it." - cd skia && git checkout master && git fetch && git pull + cd skia && git checkout main && git fetch && git pull cd .. fi
diff --git a/skia/dependencies/make_skia_android.sh b/skia/dependencies/make_skia_android.sh new file mode 100755 index 0000000..edffeb2 --- /dev/null +++ b/skia/dependencies/make_skia_android.sh
@@ -0,0 +1,44 @@ +#!/bin/bash + +set -e + +# Requires depot_tools and git: +# https://skia.org/user/download +# Build notes: +# https://skia.org/user/build + +SKIA_REPO=https://github.com/google/skia +# New Skia version is compatible with Android NDK > v19 +SKIA_STABLE_BRANCH=chrome/m95 + +# ----------------------------- +# Get & Build Skia +# ----------------------------- +if [ ! -d skia ]; then + echo "Cloning Skia stable branch." + # TODO:(umberto) --depth 1 + git clone -b $SKIA_STABLE_BRANCH $SKIA_REPO +fi + +cd skia + +python tools/git-sync-deps + +# TODO: Pass these as arguments. +# ARCH=x86 +ARCH=x64 +# ARCH=arm +# ARCH=arm64 + +# Useful for debugging the build process. +# bin/gn args --list out/${ARCH} +bin/gn gen out/${ARCH} --args=" \ + ndk=\"${NDK_PATH}\" \ + target_cpu=\"${ARCH}\" \ + is_official_build=false \ + skia_use_egl=true \ + skia_use_gl=true \ + skia_gl_standard=\"gles\" \ + " +ninja -C out/${ARCH} +cd ..
diff --git a/skia/viewer/build.sh b/skia/viewer/build.sh index e0d0eb5..b247535 100755 --- a/skia/viewer/build.sh +++ b/skia/viewer/build.sh
@@ -6,6 +6,7 @@ # ./build.sh $@ # cd $dir +set -e cd build @@ -24,3 +25,5 @@ else premake5 gmake && make -j7 fi + +set +e \ No newline at end of file
diff --git a/skia/viewer/build/premake5.lua b/skia/viewer/build/premake5.lua index 028e186..17e3869 100644 --- a/skia/viewer/build/premake5.lua +++ b/skia/viewer/build/premake5.lua
@@ -15,21 +15,35 @@ cppdialect "C++17" targetdir "bin/%{cfg.buildcfg}" objdir "obj/%{cfg.buildcfg}" -includedirs {"../include", "../../../include", "../../renderer/include", "../../dependencies/glfw/include", - "../../dependencies/skia", "../../dependencies/skia/include/core", - "../../dependencies/skia/include/effects", "../../dependencies/skia/include/gpu", - "../../dependencies/skia/include/config", "../../dependencies/imgui", "../../dependencies", - "../../dependencies/gl3w/build/include"} +includedirs { + "../include", "../../../include", "../../renderer/include", + "../../dependencies/glfw/include", "../../dependencies/skia", + "../../dependencies/skia/include/core", + "../../dependencies/skia/include/effects", + "../../dependencies/skia/include/gpu", + "../../dependencies/skia/include/config", "../../dependencies/imgui", + "../../dependencies", "../../dependencies/gl3w/build/include" +} -links {"Cocoa.framework", "IOKit.framework", "CoreVideo.framework", "rive", "skia", "rive_skia_renderer", "glfw3"} -libdirs {"../../../build/bin/%{cfg.buildcfg}", "../../dependencies/glfw_build/src", - "../../dependencies/skia/out/Static", "../../renderer/build/bin/%{cfg.buildcfg}"} +links { + "Cocoa.framework", "IOKit.framework", "CoreVideo.framework", "rive", "skia", + "rive_skia_renderer", "glfw3" +} +libdirs { + "../../../build/bin/%{cfg.buildcfg}", "../../dependencies/glfw_build/src", + "../../dependencies/skia/out/Static", + "../../renderer/build/bin/%{cfg.buildcfg}" +} -files {"../src/**.cpp", "../../dependencies/gl3w/build/src/gl3w.c", - "../../dependencies/imgui/backends/imgui_impl_glfw.cpp", - "../../dependencies/imgui/backends/imgui_impl_opengl3.cpp", "../../dependencies/imgui/imgui_widgets.cpp", - "../../dependencies/imgui/imgui.cpp", "../../dependencies/imgui/imgui_tables.cpp", - "../../dependencies/imgui/imgui_draw.cpp"} +files { + "../src/**.cpp", "../../dependencies/gl3w/build/src/gl3w.c", + "../../dependencies/imgui/backends/imgui_impl_glfw.cpp", + "../../dependencies/imgui/backends/imgui_impl_opengl3.cpp", + "../../dependencies/imgui/imgui_widgets.cpp", + "../../dependencies/imgui/imgui.cpp", + "../../dependencies/imgui/imgui_tables.cpp", + "../../dependencies/imgui/imgui_draw.cpp" +} buildoptions {"-Wall", "-fno-exceptions", "-fno-rtti"}